GTP-C v2 in open grps

Harald Welte laforge at
Mon Sep 4 10:30:31 UTC 2017

Hi Andreas and Tom,

On Mon, Sep 04, 2017 at 11:57:22AM +0200, Andreas Schultz wrote:
> >> 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.

Sorry, this is a misunderstanding, there are two orthogonal concepts:
* control plane is GTPv2-C
* user plane is GTPv1-U

But then, the user plane has two layers:
1) outer (transport) layer, i.e. IP addresses of the outer IP packet
2) inner (user) layer, i.e. the IP addresses of the inner IP packet

So my comment was referring to the fact that those latter two are
treated separately. Current OpenGGSN is now capable of doing IPv6 on
the inner (user) IP layer, but not on the outer (transport) layer.

> > 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.

Yes, this is rather hairy, you can see my recent implementatin on
OpenGGSN.  It's a complete mix of modified stateless auto-configuration
combined with 3GPP specific signaling in terms of PCO (protocol config

- Harald Welte <laforge at> 
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)

More information about the osmocom-net-gprs mailing list