1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: gtp
protocol: genetlink-legacy
doc: |
GPRS Tunnelling Protocol, user plane (GTP-U).
The gtp netdevice encapsulates and decapsulates user plane packets in
GTP-U tunnels (GTPv0 and GTPv1-U, see 3GPP TS 29.060 and TS 29.281).
This family manages the PDP contexts that describe the tunnels and
triggers GTP-U echo requests. It is driven by user space control planes
such as those built on libgtpnl.
The kernel registers the family with version 0, which the
genetlink-legacy schema cannot express.
The notifications multicast on the "gtp" group are not described: PDP
context additions and deletions, and GTP-U echo responses, reuse the
NEWPDP, DELPDP and ECHOREQ command values of the requests.
kernel-policy: global
definitions:
-
type: enum
name: version
name-prefix: gtp-
enum-name: gtp-version
header: linux/gtp.h
entries: [v0, v1]
attribute-sets:
-
name: gtp
name-prefix: gtpa-
attributes:
-
name: link
type: u32
doc: ifindex of the gtp netdevice the context is attached to.
-
name: version
type: u32
enum: version
doc: GTP version of the context, GTPv0 or GTPv1-U.
-
name: tid
type: u64
doc: Tunnel identifier, GTPv0 only.
-
name: peer-address
type: u32
byte-order: big-endian
display-hint: ipv4
doc: |
IPv4 address of the remote GSN peer (GGSN or SGSN). Also known
as GTPA_SGSN_ADDRESS, kept for legacy user space.
-
name: ms-address
type: u32
byte-order: big-endian
display-hint: ipv4
doc: IPv4 address of the mobile subscriber served by the context.
-
name: flow
type: u16
doc: Flow label, GTPv0 only.
-
name: net-ns-fd
type: u32
doc: File descriptor of the network namespace of the gtp netdevice.
-
name: i-tei
type: u32
doc: Ingress Tunnel Endpoint Identifier, GTPv1-U only.
-
name: o-tei
type: u32
doc: Egress Tunnel Endpoint Identifier, GTPv1-U only.
-
name: pad
type: pad
-
name: peer-addr6
type: binary
checks:
min-len: 16
byte-order: big-endian
display-hint: ipv6
doc: IPv6 address of the remote GSN peer (GGSN or SGSN).
-
name: ms-addr6
type: binary
checks:
min-len: 16
byte-order: big-endian
display-hint: ipv6
doc: |
IPv6 prefix of the mobile subscriber served by the context: a /64
prefix, with the lower 64 bits set to zero.
-
name: family
type: u8
doc: |
Address family (AF_INET or AF_INET6) of ms-address or ms-addr6,
AF_INET when absent. The peer address uses the family of the
tunnel socket.
operations:
list:
-
name: newpdp
doc: Create or update a PDP context.
attribute-set: gtp
value: 0
dont-validate: [strict, dump]
flags: [admin-perm]
do:
request: &pdp-attrs
attributes:
- link
- version
- tid
- peer-address
- peer-addr6
- ms-address
- ms-addr6
- flow
- i-tei
- o-tei
- family
- net-ns-fd
-
name: delpdp
doc: Delete a PDP context.
attribute-set: gtp
dont-validate: [strict, dump]
flags: [admin-perm]
do:
request: &pdp-find
attributes:
- link
- version
- tid
- ms-address
- ms-addr6
- i-tei
- family
- net-ns-fd
-
name: getpdp
doc: Get or dump one or more PDP contexts.
attribute-set: gtp
dont-validate: [strict, dump]
flags: [admin-perm]
do:
request: *pdp-find
reply: &pdp-reply
attributes:
- link
- version
- tid
- peer-address
- peer-addr6
- ms-address
- ms-addr6
- flow
- i-tei
- o-tei
- family
dump:
reply: *pdp-reply
-
name: echoreq
doc: |
Send a GTP-U echo request to a peer. ms-address is not a mobile
subscriber address here, but the local IPv4 address used as source
of the request.
attribute-set: gtp
dont-validate: [strict, dump]
flags: [admin-perm]
do:
request:
attributes:
- link
- version
- peer-address
- ms-address
- net-ns-fd
mcast-groups:
list:
-
name: gtp
flags: [uns-admin-perm]
|