OsmoSGSN (also spelled osmo-sgsn when referring to the program name) is a Free Software implementation of the GPRS Serving GPRS Support Node (SGSN). As such it implements the GPRS Mobility Management (GMM) and SM (Session Management).

The SGSN connects via the Gb-Interface to the BSS (e.g. the ip.access nanoBTS), and it connects via the GTP protocol to a Gateway GPRS Support Node (GGSN) like OpenGGSN.

It is currently still a bit experimental. The Gb protocol stack and the LLC implementation are quite robust, and signalling for GMM and SM seems to run pretty fine. However, the user plane including SNDCP fragmentation is in beta-testing stage. Also, no authentication is yet done, i.e. your GPRS network will simply allow every IMSI to attach to it as far as it has the same MCC/MNC as your network.

OsmoSGSN is part of the openbsc git repository. In order to build it, you will need a libgtp installation from the OpenGGSN project.

Setup / Configuration

For more information regarding the setup + configuration, refer to OpenBSC_GPRS


There has been a mailing list post in January 2011 about the current OsmoSGSN state.

TODO list

  • use the HLR to identify (and possibly authenticate) subscribers
  • secondary PDP contexts
  • support for multiple GGSNs
  • persistent storage of GMM and SM state
  • recovery from GGSN outages
  • SNDCP header and data compression
  • use proper XID exchange and actually use the results to configure the LLC SAPIs
  • GEA3 encryption
  • SMS delivery via GPRS
  • network-initiated PDP context activation
Last modified 4 years ago Last modified on Jul 6, 2011, 5:18:01 AM