Logo of The Linux Kernel

The Linux Kernel

7.3.0

Quick search

Contents

Working with the development community

  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs

Internal API manuals

  • Core API
  • Driver APIs
  • Subsystems
    • Core subsystems
    • Human interfaces
    • Networking interfaces
      • Networking
      • NetLabel
      • InfiniBand
      • MHI
    • Storage interfaces
    • Other subsystems
  • Locking

Development tools and processes

  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust

User-oriented documentation

  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API

Firmware-related documentation

  • Firmware
  • Firmware and Devicetree

Architecture-specific documentation

  • CPU architectures

Other documentation

  • Unsorted documentation

Translations

  • Translations

This Page

  • Show Source

Family gtp netlink specification¶

Contents

  • Family gtp netlink specification

    • Summary

    • Operations

      • newpdp

      • delpdp

      • getpdp

      • echoreq

    • Multicast groups

    • Definitions

      • version

    • Attribute sets

      • gtp

Summary¶

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.

Operations¶

newpdp¶

Create or update a PDP context.

attribute-set:

gtp

value:

0

dont-validate:

[‘strict’, ‘dump’]

flags:

[admin-perm]

do:
request
attributes:

[link, version, tid, peer-address, peer-addr6, ms-address, ms-addr6, flow, i-tei, o-tei, family, net-ns-fd]

delpdp¶

Delete a PDP context.

attribute-set:

gtp

dont-validate:

[‘strict’, ‘dump’]

flags:

[admin-perm]

do:
request
attributes:

[link, version, tid, ms-address, ms-addr6, i-tei, family, net-ns-fd]

getpdp¶

Get or dump one or more PDP contexts.

attribute-set:

gtp

dont-validate:

[‘strict’, ‘dump’]

flags:

[admin-perm]

do:
request
attributes:

[link, version, tid, ms-address, ms-addr6, i-tei, family, net-ns-fd]

reply
attributes:

[link, version, tid, peer-address, peer-addr6, ms-address, ms-addr6, flow, i-tei, o-tei, family]

dump:
reply
attributes:

[link, version, tid, peer-address, peer-addr6, ms-address, ms-addr6, flow, i-tei, o-tei, family]

echoreq¶

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]

Multicast groups¶

  • gtp

Definitions¶

version¶

type:

enum

name-prefix:

gtp-

enum-name:

gtp-version

header:

linux/gtp.h

entries:
  • v0

  • v1

Attribute sets¶

gtp¶

link (u32)¶

doc:

ifindex of the gtp netdevice the context is attached to.

version (u32)¶

enum:

version

doc:

GTP version of the context, GTPv0 or GTPv1-U.

tid (u64)¶

doc:

Tunnel identifier, GTPv0 only.

peer-address (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.

ms-address (u32)¶

byte-order:

big-endian

display-hint:

ipv4

doc:

IPv4 address of the mobile subscriber served by the context.

flow (u16)¶

doc:

Flow label, GTPv0 only.

net-ns-fd (u32)¶

doc:

File descriptor of the network namespace of the gtp netdevice.

i-tei (u32)¶

doc:

Ingress Tunnel Endpoint Identifier, GTPv1-U only.

o-tei (u32)¶

doc:

Egress Tunnel Endpoint Identifier, GTPv1-U only.

pad (pad)¶

peer-addr6 (binary)¶

byte-order:

big-endian

display-hint:

ipv6

doc:

IPv6 address of the remote GSN peer (GGSN or SGSN).

ms-addr6 (binary)¶

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.

family (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.

©The kernel development community. | Powered by Sphinx 9.1.0 & Alabaster 0.7.16 | Page source