Question about basic usage of GTP kernel module

Michał Siuda michael.siuda at
Fri Dec 7 18:57:14 UTC 2018


I'm trying to build a simple node that would encap/decap between IP and GTP
in the user plane. For this I have been using gtp-link and gtp-tunnel tools
of the libgtpnl, but with no luck so far. Could anyone please review my
setup and let me know what I'm doing wrong?

node1 - DUT, I would like to be able to send a ping from this node such
that it is encapsulated into GTP tunnel towards node2.
2 interfaces:
- ens6 - represents interface towards MS, has address
- ens7 - represents interface towards GGSN, has address

Just a single interface towards node1, address

On node2, I'm following these steps:
- creating a GTP device:
# ./gtp-link add gtp-u
- adding a GTP tunnel:
# ./gtp-tunnel add gtp-u v1 20 10
# ./gtp-tunnel list
version 1 tei 20/10 ms_addr sgsn_addr
- adding a route to an address representing APN to use the GTP device:
# ip route add src dev gtp-u
- Trying to ping

I was expecting to see ECMP packets to to be sent out via ens7
towards node2 and encapsulated in GTP. However, I can only see that these
packets appear on the gtp-u interface, but are not forwarded. Looking at
interface stats on gtp-u, I can see that the ping hits "tx_error" counter.

Is there anything I'm missing here? Are any parameters wrong? Or am I
misunderstanding the function of the GTP-U kernel support entirely?

Any help would be appreciated.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the osmocom-net-gprs mailing list