| [[chapter_introduction]] |
| == Overview |
| |
| [[intro_overview]] |
| === About OsmoSGSN |
| |
| OsmoSGSN is the Osmocom implementation of the GPRS SGSN (Serving Gprs |
| Support Node) element inside the GPRS network. The SGSN plays a similar |
| central function to the GPRS network as the MSC plays in the GSM |
| network. |
| |
| The SGSN is connected on the downlink side to Gb interfaces of the BSS, |
| specifically the PCU inside the BSS. The SGSN is further connected by |
| the GTP protocol to the GGSN which terminates the tunnels towards the |
| external packet data network (e.g. IPv4). |
| |
| OsmoSGSN supports both a PCU that is co-located with(in) the BTS, as |
| well as a PCU that is co-located with(in) the BSC. In combination with |
| OsmoNITB/OsmoBSC/OsmoBTS, the PCU is co-located within the BTS. |
| |
| [[fig-gprs-pcubts]] |
| .GPRS network architecture with PCU in BTS |
| [graphviz] |
| ---- |
| digraph G { |
| rankdir=LR; |
| MS0 [label="MS"] |
| MS1 [label="MS"] |
| MS0->BTS [label="Um"] |
| MS1->BTS [label="Um"] |
| BTS->BSC [label="Abis"] |
| BSC->MSC [label="A"] |
| BTS->PCU [label="pcu_sock"] |
| PCU->SGSN [label="Gb"] |
| SGSN->GGSN [label="GTP"] |
| } |
| ---- |
| |
| === Software Components |
| |
| OsmoNITB contains a variety of different software components, which |
| we'll quickly describe in this section. |
| |
| ==== Gb Implementation |
| |
| OsmoSGSN implements the ETSI/3GPP specified Gb interface, including TS |
| 08.16 (NS), TS 08.18 (BSSGP) and TS 08.64 (LLC) protocols. As transport |
| layers for NS, it supports NS/IP (NS encapsulated in UDP/IP), as well as |
| NS/FR/GRE/IP. The latter is provided in order to use a Router with |
| Ethernet and Frame Relay interface to convert to actual physical Frame |
| Relay medium, which is not directly supported by OsmoSGSN. |
| |
| The actual Gb Implementation is part of the libosmogb library, which is |
| in turn part of the libosmocore software package. This allows the same |
| Gb implementation to be used from osmo-pcu, osmo-gbproxy as well as |
| OsmoSGSN. |
| |
| |
| ==== GTP Implementation |
| |
| OsmoSGSN uses the libgtp implementation originating from OpenGGSN. It |
| supports both GTPv0 and GTPv1. |
| |
| |
| ==== GMM Implementation |
| |
| The GPRS Mobility Management implementation is quite simplistic at this |
| point. It supports the GPRS ATTACH and GPRS ROUTING AREA UPDATE |
| procedures, as well as GPRS ATTACH and GPRS DETACH. |
| |
| However, as the SGSN currently does not implement any type of HLR |
| access, it is not able to authenticate a subscriber or even check if the |
| subscriber exists at all. As such, all non-roaming subscribes are |
| allowed to attach to OsmoSGSN. Non-roaming means that the first 5 |
| digits of the IMSI must match the MCC and MNC of the cell that the |
| subscriber is registering to. |
| |
| |
| ==== LLC Implementation |
| |
| The LLC (Logical Link Control) implementation of OsmoSGSN only supports |
| non-acknowledged mode, as this is the most common use case in real-world |
| GPRS networks. |
| |
| Furthermore, it does not support IP header nor payload compression at |
| this point. Addition of those features is subject to customer demand or |
| user/customer contributions. |
| |
| The LLC implementation does support LLC encryption. However, as no HLR |
| access is implemented yet, there is no way to enable/configure |
| per-subscriber specific keys. |
| |
| |
| ==== Session Management Implementation |
| |
| The session management procedures ACTIVATE PDP CONTEXT and DEACTIVATE |
| PDP CONTEXT are supported. However, no MODIFY PDP CONTEXT and no |
| Network-initiated PDP context activation is possible. This is again |
| covering the predominant use cases and configurations in GPRS real-world |
| networks while skipping the more esoteric features. |
| |
| Multiple PDP contexts can be attached by a single MS. |
| |
| Currently, all PDP contexts are routed to the same GGSN, irrespective of |
| the APN used/configured in the MS. This is sufficient (and actually |
| desirable) for small autonomous networks, but of course not suitable for |
| real networks in roaming scenarios. Please contact sysmocom in case you |
| require additional features such as DNS-based APN resolving. |
| |
| === Limitations |
| |
| At the time of writing, OsmoSGSN still has a number of limitations, |
| which are a result of the demand-driven Open Source development model. |
| If you require any of those features, please consider implementing and |
| contributing them, or contracting the existing OsmoSGSN developers for |
| performing that work. |
| |
| Known Limitations include: |
| |
| * No LLC encryption support |
| * No interface to the OsmoNITB HLR |
| * No paging coordination between SGSN and MSC |
| * No SMS over Ps support |
| * No IuPS interface for 3G (in progress) |
| * No IP header compression |
| * No payload compression |