blob: e2c01071249d379aa9a8679f7b36f39ffcc19675 [file] [log] [blame]
Harald Welte9f1331b2016-02-20 10:56:10 +01001[[chapter_introduction]]
2== Overview
3
4[[intro_overview]]
5=== About OsmoSGSN
6
7OsmoSGSN is the Osmocom implementation of the GPRS SGSN (Serving Gprs
8Support Node) element inside the GPRS network. The SGSN plays a similar
9central function to the GPRS network as the MSC plays in the GSM
10network.
11
12The SGSN is connected on the downlink side to Gb interfaces of the BSS,
13specifically the PCU inside the BSS. The SGSN is further connected by
14the GTP protocol to the GGSN which terminates the tunnels towards the
15external packet data network (e.g. IPv4).
16
17OsmoSGSN supports both a PCU that is co-located with(in) the BTS, as
18well as a PCU that is co-located with(in) the BSC. In combination with
19OsmoNITB/OsmoBSC/OsmoBTS, the PCU is co-located within the BTS.
20
21[[fig-gprs-pcubts]]
22.GPRS network architecture with PCU in BTS
23[graphviz]
24----
25digraph G {
ikostovaa6629f2017-01-06 14:34:45 +010026 rankdir=LR;
27 MS0 [label="MS"];
28 MS1 [label="MS"];
29 MS0->BTS [label="Um"];
30 MS1->BTS [label="Um"];
31 BTS->BSC [label="Abis"];
32 BSC->MSC [label="A"];
33 BTS->PCU [label="pcu_sock"];
34 PCU->SGSN [label="Gb"];
35 SGSN->GGSN [label="GTP"];
Harald Welte9f1331b2016-02-20 10:56:10 +010036}
37----
38
39=== Software Components
40
Pau Espin Pedrol0b81a2f2018-03-06 14:46:19 +010041OsmoSGSN contains a variety of different software components, which
Harald Welte9f1331b2016-02-20 10:56:10 +010042we'll quickly describe in this section.
43
44==== Gb Implementation
45
46OsmoSGSN implements the ETSI/3GPP specified Gb interface, including TS
4708.16 (NS), TS 08.18 (BSSGP) and TS 08.64 (LLC) protocols. As transport
48layers for NS, it supports NS/IP (NS encapsulated in UDP/IP), as well as
49NS/FR/GRE/IP. The latter is provided in order to use a Router with
50Ethernet and Frame Relay interface to convert to actual physical Frame
51Relay medium, which is not directly supported by OsmoSGSN.
52
53The actual Gb Implementation is part of the libosmogb library, which is
54in turn part of the libosmocore software package. This allows the same
55Gb implementation to be used from osmo-pcu, osmo-gbproxy as well as
56OsmoSGSN.
57
58
59==== GTP Implementation
60
Pau Espin Pedrol0b81a2f2018-03-06 14:46:19 +010061OsmoSGSN uses the libgtp implementation originating from OsmoGGSN. It
Harald Welte9f1331b2016-02-20 10:56:10 +010062supports both GTPv0 and GTPv1.
63
64
65==== GMM Implementation
66
67The GPRS Mobility Management implementation is quite simplistic at this
68point. It supports the GPRS ATTACH and GPRS ROUTING AREA UPDATE
69procedures, as well as GPRS ATTACH and GPRS DETACH.
70
Harald Welte9f1331b2016-02-20 10:56:10 +010071==== LLC Implementation
72
73The LLC (Logical Link Control) implementation of OsmoSGSN only supports
74non-acknowledged mode, as this is the most common use case in real-world
75GPRS networks.
76
Daniel Willmann33ab4442019-07-26 12:05:12 +020077It does support both TCP/IP header compression according to RFC1144 and
78payload compression according to V.42bis
Harald Welte9f1331b2016-02-20 10:56:10 +010079
Daniel Willmann33ab4442019-07-26 12:05:12 +020080The LLC implementation does support LLC encryption with ciphers GEA3 and GEA4.
81For encryption to work the auth policy needs to be set to remote and the SGSN
82connected to an HLR containing the subscriber data including key material.
83Other auth policys will not work with encryption.
Harald Welte9f1331b2016-02-20 10:56:10 +010084
85==== Session Management Implementation
86
87The session management procedures ACTIVATE PDP CONTEXT and DEACTIVATE
88PDP CONTEXT are supported. However, no MODIFY PDP CONTEXT and no
89Network-initiated PDP context activation is possible. This is again
90covering the predominant use cases and configurations in GPRS real-world
91networks while skipping the more esoteric features.
92
93Multiple PDP contexts can be attached by a single MS.
94
Daniel Willmann33ab4442019-07-26 12:05:12 +020095Multiple GGSNs can be configured and routing to a GGSN can be configured based
96on APN. Dynamic lookup of GGSNs though DNS-based APN resolving is also possible.
Harald Welte9f1331b2016-02-20 10:56:10 +010097
98=== Limitations
99
100At the time of writing, OsmoSGSN still has a number of limitations,
101which are a result of the demand-driven Open Source development model.
102If you require any of those features, please consider implementing and
103contributing them, or contracting the existing OsmoSGSN developers for
104performing that work.
105
106Known Limitations include:
107
Harald Welte9f1331b2016-02-20 10:56:10 +0100108* No paging coordination between SGSN and MSC
109* No SMS over Ps support