GTP-C v2 in open grps

Andreas Schultz aschultz at
Mon Sep 4 09:57:22 UTC 2017

Hi Tom,

----- On Sep 2, 2017, at 6:51 PM, Tom Herbert tom at wrote:

> On Sat, Sep 2, 2017 at 1:29 AM, Harald Welte <laforge at> wrote:
>> Hi Tom,
>> On Fri, Sep 01, 2017 at 04:27:22PM -0700, Tom Herbert wrote:
>>> > * nwGTPv2c which is originally from
>>> >   and has also been used in OAI at
>>> >
>>> >
>>> I looked at that, it's pretty minimal for our purposed.
>> Welcom to the (cellular) telecom world.  Feels like the state of Linux in the
>> mid-1990ies:  Some minimal FOSS implementations exist, but most of the work
>> still
>> has to be done.  We've been trying hard since 2008 inside Osmocom, but as
>> indicated
>> so far no 4G related contributions (financially or in terms of code).
>>> My user requires GTPv2 (i.e. this is for 4G network). My interest here
>>> is really to do development on the user plane,
>> Are we talking about FOSS development here?
> Yes.
>>> but we need a GTP-C to at least prototype something for their network.
>> What exactly do you want to prototype? Which of the many GTPv2-C
>> transactions do you need?  I guess if you can deal e.g. without
>> relocation, then the complexity is quite reduced.
> I need the control plane to be able to develop the data path. The
> ultimate goal of our project is to an implement and ILA data path;
> that is use it instead of GTP-U tunneling but still have the GTP-C
> control plane. The support we need starts out simple, just create a
> data path and demonstrate the benefits (maybe as much that is in
> nwgtpv2). As we proceed, obviously we'll want to prototype more of the
> capabilities such as handover. That being said, this is just a
> prototype for now!

GTPv2 control plane including GGSN/PGW handover works in erGW [1].
A more ready to run packaged solution it at [2].
It does support the kernel module for the data path and I would be
willing to help with getting a GGSN/PGW up and running, and implement
the IPv6 support in the control path (Erlang world).

I don't have the time right now to get into the data path implementation.

> How much effort do you think it would be to implement GTPv2-C?

As always, the problems are in the details and they are not obvious
from reading the specification.
>>> Also, we'd like the kernel support for GTP-U (including IPv6 which I
>>> suppose is still outstanding).
>> correct.  We've just added user-plane IPv6 support to openggsn in
>> userspace, v6 user plane (or even transport plane) in kernel GTP is
>> still another area looking for contributions.
> What is the difference between user plane and transport plane?

Control plane of GTPv2, data/transport plane is GTPv1. There is
no GTPv2 for the data/transport plane.
> I'm looking at the GTP kernel code, it seems to be pretty
> straightforward to add IPv6, and the common offloads and I could look
> at that once I figure out a solution for using GTP-C v2.

The tricky parts might be the handling to IPv6 address delegations. But
I haven't really looked at it, yet.



More information about the osmocom-net-gprs mailing list