summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJonas Bonn <jonas@southpole.se>2017-03-24 23:23:21 +0100
committerDavid S. Miller <davem@davemloft.net>2017-03-25 20:11:19 -0700
commit91ed81f9abc76d5a61b07cb8286c680c9330b7a1 (patch)
tree73165e856fe64a2bf64a20fc256b8161b3a66f3e /include
parentae6336b57ede8cdf801b04e6d943617bb945e3f9 (diff)
downloadlinux-stable-91ed81f9abc76d5a61b07cb8286c680c9330b7a1.tar.gz
linux-stable-91ed81f9abc76d5a61b07cb8286c680c9330b7a1.tar.bz2
linux-stable-91ed81f9abc76d5a61b07cb8286c680c9330b7a1.zip
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>
Diffstat (limited to 'include')
-rw-r--r--include/uapi/linux/if_link.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 320fc1e747ee..8b405afb2376 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -538,11 +538,18 @@ enum {
#define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1)
/* GTP section */
+
+enum ifla_gtp_role {
+ GTP_ROLE_GGSN = 0,
+ GTP_ROLE_SGSN,
+};
+
enum {
IFLA_GTP_UNSPEC,
IFLA_GTP_FD0,
IFLA_GTP_FD1,
IFLA_GTP_PDP_HASHSIZE,
+ IFLA_GTP_ROLE,
__IFLA_GTP_MAX,
};
#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)