Hi,
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?
Topology:
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 20.1.1.1/24
- ens7 - represents interface towards GGSN, has address 10.1.1.1/24
node2
Just a single interface towards node1, address 10.1.1.2/24
Test:
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 20.1.1.1 10.1.1.2
# ./gtp-tunnel list
version 1 tei 20/10 ms_addr 20.1.1.1 sgsn_addr 10.1.1.2
- adding a route to an address representing APN to use the GTP device:
# ip route add 8.8.8.8 src 20.1.1.1 dev gtp-u
- Trying to ping 8.8.8.8
Result:
I was expecting to see ECMP packets to 8.8.8.8 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.
Thanks,
Michael
Show replies by date