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