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