Wiki » History » Version 2

laforge, 07/28/2016 07:01 PM

1 1 laforge
h1. Linux Kernel GTP-U Implementation
2 1 laforge
3 1 laforge
The GTP (GPRS Tunneling Protocol) is split into a control plane and a user plane.  While the control plane is concerned with the signalling, i.e. the establishment and tear-down of tunnels for PDP-contexts, the user plane is carrying all the user IP data inside the tunnel.
4 1 laforge
5 1 laforge
As such, the control plane has to process only few signalling messages, while the user plane is facing multi-gigabit speeds even in small 3.5G or 3G networks.
6 1 laforge
7 1 laforge
The user plane of many other IP tunneling protocols had been implemented in the Linux kernel before, including IPIP, SIT, GRE, PPPoE, L2TP, etc.
8 1 laforge
9 1 laforge
h2. Short History
10 1 laforge
11 1 laforge
In 2012, Harald Welte at sysmocom started a kernel-level GTP-U implementation, but got side-tracked due to changing priorities. Pablo Neira was brought in to continue, but again got side-tracked.  In 2015, Andreas Schultz of Travelping came to the rescue and finally fixed the known remaining bugs, extended it with more features, facilitating mainline Linux inclusion.  Linux kernel versions from 4.7.0 onwards include the module.
12 1 laforge
13 2 laforge
h2. osmo-gtp-kernel
14 2 laforge
15 2 laforge
Originally, the code was developed as osmo-gtp-kernel.git on However, since Linux kernel v4.7.0, the code is developed and maintained in the mainline Linux repositories on
16 2 laforge
17 1 laforge
h2. libgtpnl
18 1 laforge
19 1 laforge
In order to control the kernel-side GTP-U plane, a netlink based control interface between GTP-C in userspace and GTP-U in kernelspace was invented.
20 1 laforge
21 1 laforge
The encoding and decoding of these control messages is implemented in the @libgtpnl@ (library for GTP netlink).  The library is available from
22 1 laforge
23 1 laforge
h2. known users
24 1 laforge
25 1 laforge
* [[OpenGGSN:]] - a small, compact GGSN implemented within Osmocom
26 1 laforge
* ergw, an erlang implementation of P-GW and GGSN functionality, see
27 1 laforge
* OpenAirInterface support is upcoming
28 2 laforge
29 2 laforge
h2. Contact / Mailing list
30 2 laforge
31 2 laforge
Please use the mailing list ( for any questions/feedback/patches.
Add picture from clipboard (Maximum size: 48.8 MB)