libgtpnl/src
Harald Welte 03cb4c2d66 gtp_build_payload(): Support absent peer and SGSN address
When deleting a PDP context via "gtp-tunnel delete", we specify only
the gtp netdevice, the gtp version and the TID/TEI.  However, the
gtp_build_payload() function unconditionally created the netlink
attributes for GTPA_PEER_ADDRESS and GTPA_MS_ADDRESS, having their
addresses set to zero.  The kernel then tried to find a PDP context with
MS and PEER address of 0.0.0.0, and always failed with ENOENT.

The same problem also occurred with OsmoGGSN and OpenGGSN: PDP contexts
could be added but never removed.

The corresponding kernel change that requires this userland change
is the following commit introduced in 4.12-rc1:

commit d9e2dd122637034a0697bf268eed9233701b9dca
Author: Andreas Schultz <aschultz@tpip.net>
Date:   Thu Mar 9 17:43:00 2017 +0100

    gtp: unify genl_find_pdp and prepare for per socket lookup

Older kernels will work with libgtpnl both before and after this commit,
as they internally will simply disregard any attributes beyond TID/TEI.

Change-Id: Ie2ceb2cd6d2fb009bba01a05b5480c1ad775d619
2017-11-12 22:48:15 +09:00
..
Makefile.am fix 'make distcheck': Add internal.h to noinst_HEADERS 2016-07-28 20:39:24 +02:00
genl.c Add genl_socket_close() function 2017-11-08 16:15:59 +09:00
gtp-genl.c gtp_build_payload(): Support absent peer and SGSN address 2017-11-12 22:48:15 +09:00
gtp-rtnl.c Add support for SGSN role via IFLA_GTP_ROLE 2017-03-24 15:39:17 +01:00
gtp.c Re-license the library as LGPLv2-or-later 2016-07-28 20:34:45 +02:00
internal.h gtp-rtnl: Split TID handling for GTPv0 and GTPv1 2016-05-08 18:33:48 +02:00
libgtpnl.map Add genl_socket_close() function 2017-11-08 16:15:59 +09:00