| # 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] |