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 | |
| 41 | OsmoNITB contains a variety of different software components, which |
| 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 | |
| 61 | OsmoSGSN uses the libgtp implementation originating from OpenGGSN. It |
| 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 | |
| 77 | Furthermore, it does not support IP header nor payload compression at |
| 78 | this point. Addition of those features is subject to customer demand or |
| 79 | user/customer contributions. |
| 80 | |
| 81 | The LLC implementation does support LLC encryption. However, as no HLR |
| 82 | access is implemented yet, there is no way to enable/configure |
| 83 | per-subscriber specific keys. |
| 84 | |
| 85 | |
| 86 | ==== Session Management Implementation |
| 87 | |
| 88 | The session management procedures ACTIVATE PDP CONTEXT and DEACTIVATE |
| 89 | PDP CONTEXT are supported. However, no MODIFY PDP CONTEXT and no |
| 90 | Network-initiated PDP context activation is possible. This is again |
| 91 | covering the predominant use cases and configurations in GPRS real-world |
| 92 | networks while skipping the more esoteric features. |
| 93 | |
| 94 | Multiple PDP contexts can be attached by a single MS. |
| 95 | |
| 96 | Currently, all PDP contexts are routed to the same GGSN, irrespective of |
| 97 | the APN used/configured in the MS. This is sufficient (and actually |
| 98 | desirable) for small autonomous networks, but of course not suitable for |
| 99 | real networks in roaming scenarios. Please contact sysmocom in case you |
| 100 | require additional features such as DNS-based APN resolving. |
| 101 | |
| 102 | === Limitations |
| 103 | |
| 104 | At the time of writing, OsmoSGSN still has a number of limitations, |
| 105 | which are a result of the demand-driven Open Source development model. |
| 106 | If you require any of those features, please consider implementing and |
| 107 | contributing them, or contracting the existing OsmoSGSN developers for |
| 108 | performing that work. |
| 109 | |
| 110 | Known Limitations include: |
| 111 | |
| 112 | * No LLC encryption support |
| 113 | * No interface to the OsmoNITB HLR |
| 114 | * No paging coordination between SGSN and MSC |
| 115 | * No SMS over Ps support |
| 116 | * No IuPS interface for 3G (in progress) |
| 117 | * No IP header compression |
| 118 | * No payload compression |