diff options
author | Jonas Bonn <jonas@southpole.se> | 2017-03-24 23:23:21 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-25 20:11:19 -0700 |
commit | 91ed81f9abc76d5a61b07cb8286c680c9330b7a1 (patch) | |
tree | 73165e856fe64a2bf64a20fc256b8161b3a66f3e /include | |
parent | ae6336b57ede8cdf801b04e6d943617bb945e3f9 (diff) | |
download | linux-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.h | 7 |
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) |