Skip to content

Commit 459aa66

Browse files
ummakynesdavem330
authored andcommitted
gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U)
This is an initial implementation of a netdev driver for GTP datapath (GTP-U) v0 and v1, according to the GSM TS 09.60 and 3GPP TS 29.060 standards. This tunneling protocol is used to prevent subscribers from accessing mobile carrier core network infrastructure. This implementation requires a GGSN userspace daemon that implements the signaling protocol (GTP-C), such as OpenGGSN [1]. This userspace daemon updates the PDP context database that represents active subscriber sessions through a genetlink interface. For more context on this tunneling protocol, you can check the slides that were presented during the NetDev 1.1 [2]. Only IPv4 is supported at this time. [1] http://git.osmocom.org/openggsn/ [2] http://www.netdevconf.org/1.1/proceedings/slides/schultz-welte-osmocom-gtp.pdf Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent c047c3b commit 459aa66

File tree

8 files changed

+1462
-1
lines changed

8 files changed

+1462
-1
lines changed

drivers/net/Kconfig

+17
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,23 @@ config GENEVE
192192
To compile this driver as a module, choose M here: the module
193193
will be called geneve.
194194

195+
config GTP
196+
tristate "GPRS Tunneling Protocol datapath (GTP-U)"
197+
depends on INET && NET_UDP_TUNNEL
198+
select NET_IP_TUNNEL
199+
---help---
200+
This allows one to create gtp virtual interfaces that provide
201+
the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
202+
is used to prevent subscribers from accessing mobile carrier core
203+
network infrastructure. This driver requires a userspace software that
204+
implements the signaling protocol (GTP-C) to update its PDP context
205+
base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
206+
tunneling protocol is implemented according to the GSM TS 09.60 and
207+
3GPP TS 29.060 standards.
208+
209+
To compile this drivers as a module, choose M here: the module
210+
wil be called gtp.
211+
195212
config MACSEC
196213
tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
197214
select CRYPTO

drivers/net/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ obj-$(CONFIG_VETH) += veth.o
2525
obj-$(CONFIG_VIRTIO_NET) += virtio_net.o
2626
obj-$(CONFIG_VXLAN) += vxlan.o
2727
obj-$(CONFIG_GENEVE) += geneve.o
28+
obj-$(CONFIG_GTP) += gtp.o
2829
obj-$(CONFIG_NLMON) += nlmon.o
2930
obj-$(CONFIG_NET_VRF) += vrf.o
3031

0 commit comments

Comments
 (0)