osmo-ggsn(8)

πŸ’– osmo-ggsn β€” the manual page, but make it make sense πŸ’–

okay bestie, gather round, because we're talking about osmo-ggsn β€” it's a System Manager's Manual situation, section 8, and it's literally the Gateway GPRS Support Node. yes that's a lot of letters. we'll get there. 🫢


✨ NAME ✨

osmo-ggsn β€” Gateway GPRS Support Node. that's the whole vibe. πŸ‘‘


✨ SYNOPSIS ✨

osmo-ggsn --help

osmo-ggsn --version

osmo-ggsn [ --help ] [ --daemonize ] [ --config-file file ] [ --version ]

like, three whole ways to summon it. pick your fighter. πŸ’…


✨ DESCRIPTION ✨

so osmo-ggsn is part of the OsmoGGSN project, and it implements a Gateway GPRS Support Node. mobile operators use it as the interface between the Internet and the rest of the mobile network infrastructure. it's giving border control but for packets. πŸ›‚

the GPRS functionality and protocols were standardised by the Third Generation Partnership Project (3GPP). and according to the 3GPP specifications, a GGSN has exactly two interfaces:

  • the Gn/Gp interface
  • the Gi interface

think of Gn/Gp as the downlink interface of the GGSN. it's the one that talks to the Serving GPRS Support Node (SGSN), which in turn interfaces to the radio access network. Gn/Gp uses the GPRS tunneling protocol (GTP). user data packets β€” typically IP packets β€” get tunneled over GTP, and GTP itself uses UDP over IP. tunnels within tunnels, no cap. πŸŒ€

the other one is basically the uplink interface, and it connects the GGSN to an external data network. Gi is most often an interface to the Internet. osmo-ggsn uses the TUN/TAP driver for the Gi interface. a tun network interface gets established when osmo-ggsn is started. ✨

πŸ’« what it actually does all day

osmo-ggsn will accept incoming connections from mobile stations through the radio access network and the SGSN. when a connection request comes in, the ggsn will allocate a dynamic IP address for the mobile station, and allow the mobile station to access the Gi interface. connections are terminated by either the mobile station or the SGSN. runtime errors are reported using the Osmocom logging framework. πŸ“‹

πŸŽ€ deployment tea

typically osmo-ggsn gets deployed with two Ethernet interfaces. one for the Gn/Gp interface, and one for the Gi interface. and listen β€” policy routing and firewall rules should be used in order to separate Gi traffic from Gn/Gp traffic. don't skip that part, bestie. 🚧


✨ OPTIONS ✨

  • --help β€” print help and exit. the classic "what do i even do here" button. πŸ™ˆ
  • --version β€” print version and exit. cute lil flex. πŸ’β€β™€οΈ
  • --daemonize β€” run in background as a daemon. default = off.
  • --config-file file β€” read configuration file. default = ./openggsn.cfg.

✨ FILES ✨

  • ./osmo-ggsn.cfg β€” the configuration file for osmo-ggsn. πŸ“
  • /var/run/osmo-ggsn.pid β€” process ID file. that's where the pid lives, rent free. 🏠
  • /var/lib/osmo-ggsn β€” directory holding nonvolatile data. πŸ’Ύ

✨ BUGS ✨

report all bugs to the OsmoGGSN bug tracking list at:

https://osmocom.org/projects/openggsn

also, real talk: osmo-ggsn has very limited management support. currently both SNMP as well as billing mechanisms are missing. not me being honest about my shortcomings. 😭


✨ SEE ALSO ✨

  • sgsnemu(8) β€” go read that one too, bestie. 🫢

✨ NOTES ✨

besides the long options documented in this man page, osmo-ggsn also accepts a number of short options with the same functionality. use osmo-ggsn --help for a full list of all the available options. iykyk. πŸ‘€

the TUN/TAP driver is required for proper operation of osmo-ggsn. for linux kernels later than 2.4.7 the TUN/TAP driver is included in the kernel, but typically needs to be loaded manually with:

modprobe tun

for automatic loading, this line:

alias char-major-10-200 tun

can be added to /etc/modules.conf. for other platforms, see:

http://vtun.sourceforge.net/tun/

for information on how to install and configure the tun driver. 🧚

osmo-ggsn uses the GPRS Tunneling Protocol (GTP) as specified by the Third Generation Partnership Project (3GPP). 3GPP protocols specifications can be found at:

http://www.3gpp.org

Copyright (C) 2002, 2003 by Mondru AB. Copyright (C) 2017 Harald Welte.

the contents of this file may be used under the terms of the GNU General Public License Version 2, provided that the above copyright notice and this permission notice is included in all copies or substantial portions of the software. periodt. πŸ’œ


✨ AUTHORS ✨

  • Jens Jakobsen <jj@openggsn.org>
  • Harald Welte <laforge@gnumonks.org>

so this whole thing was last touched August 2017, it lives in the System Manager's Manual corner of the world as osmo-ggsn(8), and that's the vibe check β€” completed. slay, go tunnel something. πŸŒˆπŸ’…βœ¨