gtp: support SGSN-side tunnels
authorJonas Bonn <jonas@southpole.se>
Fri, 24 Mar 2017 22:23:21 +0000 (23:23 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 26 Mar 2017 03:11:19 +0000 (20:11 -0700)
commit91ed81f9abc76d5a61b07cb8286c680c9330b7a1
tree73165e856fe64a2bf64a20fc256b8161b3a66f3e
parentae6336b57ede8cdf801b04e6d943617bb945e3f9
gtp: support SGSN-side tunnels

The GTP-tunnel driver is explicitly GGSN-side as it searches for PDP
contexts based on the incoming packets _destination_ address.  If we
want to place ourselves on the SGSN side of the  tunnel, then we want
to be identifying PDP contexts based on _source_ address.

Let it be noted that in a "real" configuration this module would never
be used:  the SGSN normally does not see IP packets as input.  The
justification for this functionality is for PGW load-testing applications
where the input to the SGSN is locally generally IP traffic.

This patch adds a "role" argument at GTP-link creation time to specify
whether we are on the GGSN or SGSN side of the tunnel; this flag is then
used to determine which part of the IP packet to use in determining
the PDP context.

Signed-off-by: Jonas Bonn <jonas@southpole.se>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: Harald Welte <laforge@gnumonks.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/gtp.c
include/uapi/linux/if_link.h