Skip to main content

Module pmsi

Module pmsi 

Source
Expand description

PMSI Tunnel path attribute (RFC 6514 §5) — used by EVPN Type 3 IMET for ingress-replication BUM. P-Multicast Service Interface (PMSI) Tunnel attribute — RFC 6514 §5.

This is BGP path attribute type 22 (RFC 6514 §11.1, IANA-managed). It tells receivers how to forward BUM (broadcast / unknown unicast / multicast) traffic for the EVI a Type 3 IMET route advertises.

§Wire format (RFC 6514 §5)

+---------------------------------+
|  Flags (1 octet)                |
+---------------------------------+
|  Tunnel Type (1 octet)          |
+---------------------------------+
|  MPLS Label (3 octets)          |
+---------------------------------+
|  Tunnel Identifier (variable)   |
+---------------------------------+
  • Flags — RFC 6514 §5 defines bit 0 (“Leaf Information Required”) only. EVPN ingress replication does not use it.
  • Tunnel Type — IANA registry, RFC 7385. Values 0–7 are well- known; unknown values must round-trip without loss for forward compatibility.
  • MPLS Label — 3 octets. For pure-MPLS deployments the high-order 20 bits carry the MPLS label value (RFC 6514 §5). For EVPN-VXLAN deployments the full 24-bit field is the VNI, not VNI << 4 — RFC 8365 §5.1.3 explicitly redefines the field semantics to “the VNI” when EVPN routes ride VXLAN encap. This matches EvpnMacIp.label1 (also a raw 24-bit VNI per RFC 8365) and what FRR/Cumulus emit on the wire. A label of 0 still means “no label present” in either case.
  • Tunnel Identifier — variable-length, semantics depend on Tunnel Type. For Ingress Replication (type 6) it is the unicast tunnel endpoint IP — 4 octets for IPv4, 16 octets for IPv6 (RFC 6514 §5; ipv6 form per RFC 8365). Other tunnel types carry opaque bytes that the codec preserves without interpretation.

§Why a typed PmsiTunnelType

Validating the tunnel type at decode time catches the most common interop bug (operator misconfigures FRR with the wrong tunnel type and the wire becomes nonsensical) without forcing the daemon to reject otherwise-legal future tunnel types — PmsiTunnelType::Other preserves any unknown value the IANA registry adds later.

§Gate 7b+1 scope

Only PmsiTunnelType::IngressReplication is exercised by rustbgpd origination today. Decode handles all variants; encode round-trips all variants. Phase F (Type 3 IMET) emits Ingress Replication with the raw 24-bit VNI in the label field (RFC 8365 §5.1.3) and the local VTEP IP as the tunnel identifier.

Structs§

PmsiTunnel
Decoded PMSI Tunnel attribute.

Enums§

PmsiTunnelIdentifier
Tunnel Identifier — variable-length, semantics keyed by tunnel type.
PmsiTunnelType
PMSI tunnel type (RFC 6514 §11.1, IANA registry RFC 7385).