[PATCH iproute2-next 0/6] seg6: SRv6 Mobile User Plane (RFC 9433)

Yuya Kusakabe
2026-05-03T15:30:29Z

This series adds the iproute2 frontend for the SRv6 Mobile User Plane
(MUP) endpoint behaviors of RFC 9433. It is sent in parallel with the
matching kernel net-next series; each commit here is self-contained
and brings in the seg6local UAPI bits it needs from the in-progress
kernel UAPI header (include/uapi/linux/seg6_local.h):

Section 6.2 End.MAP
Section 6.3 End.M.GTP6.D
Section 6.4 End.M.GTP6.D.Di
Section 6.5 End.M.GTP6.E
Section 6.6 End.M.GTP4.E
Section 6.7 H.M.GTP4.D

The series adds these seg6local CLI keywords:

src IPv6 source-address template
v4_mask_len length of the IPv4 DA portion of the SID, in
bits (1..32)
sr_prefix_len locator length of the egress End.M.GTP*.E SID,
in bits (1..88, leaving 40 bits for the
Args.Mob.Session field)
v6_src_prefix_len Source UPF Prefix length P in the IPv6 SA
template (1..127, defaults to 64); requires
P + v4_mask_len <= 128
pdu_type GTP-U PDU Session Container PDU Type (3GPP
TS 38.415 Section 5.5.2): downlink|dl|uplink|ul
or 0..15. When omitted, the egress emits a
short GTPv1-U header (no PDU Session Container)
regardless of the QFI in the SID; 5G N3
deployments must set pdu_type explicitly.

A small per-action attribute validator (introduced in patch 1 and
extended by each subsequent behavior) rejects obvious typos in the
seg6local block at the userspace layer instead of leaving the
operator with an opaque kernel EINVAL.

Link: https://datatracker.ietf.org/doc/html/rfc9433

Yuya Kusakabe (6):
seg6: add support for the End.MAP behavior
seg6: add support for the End.M.GTP4.E behavior
seg6: add support for the End.M.GTP6.E behavior
seg6: add support for the End.M.GTP6.D behavior
seg6: add support for the End.M.GTP6.D.Di behavior
seg6: add support for the H.M.GTP4.D behavior

include/uapi/linux/seg6_local.h | 17 +++
ip/ip_common.h | 2 +-
ip/ipnexthop.c | 2 +-
ip/iproute.c | 14 +-
ip/iproute_lwtunnel.c | 263 +++++++++++++++++++++++++++++++-
man/man8/ip-route.8.in | 154 +++++++++++++++++++
6 files changed, 442 insertions(+), 10 deletions(-)

base-commit: 4f5de57e2ff11a5925dacdf3deeeabee7ba9502a
--
2.50.1