Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS Data Plane
Extracted elements (25)
BGP Confederation member AS numbers are used in the Local AS and Remote AS fields rather than the Confederation Identifier, because EPE-SIDs within a confederation operate between Member-ASes, not between a member and the confederation as a whole.
For multi-hop EBGP sessions with PeerNode SIDs where traffic may be load-balanced across multiple interfaces, the advertising node sends a Downstream Detailed Mapping (DDMAP) TLV specifying next-hop interface details, allowing a controller to verify actual forwarding state against topology information. Discrepancies between controller state and forwarding state are not detected by the OAM procedures alone.
The EPE-SID FEC sub-TLVs are defined for the Target FEC Stack TLV to enable control plane to forwarding plane synchronization validation for inter-AS EPE SIDs; without this, mismatches (e.g., a PeerAdj SID bound to the wrong adjacency in the data plane) could go unnoticed by network operators.
During AS migration scenarios using procedures from RFC 7705, if the local and remote AS fields in the FEC carry the globally configured AS Number rather than the 'local AS', the FEC validation procedures may fail.
If a ping or traceroute packet enters a non-cooperating AS domain it might be dropped; while complete path validation cannot be done across non-cooperating domains, the mechanism still provides useful information that the packet entered a non-cooperating domain.
Unnumbered interfaces, anycast and multicast addresses, and scenarios involving EPE-SIDs in ingress SR policies for remote ASes of completely different ownership are explicitly out of scope for this document.
For PeerSet SID, the remote AS number and the Router ID of each associated PeerNode SID and PeerAdj SID MUST be included in the FEC.
If a malformed FEC sub-TLV is received, a return code of 1 ('Malformed echo request received') as defined in RFC 8029 MUST be sent.
It is RECOMMENDED to send the optional local and remote interface address descriptors in PeerAdj SID sub-TLV and use them to validate incoming interfaces; when unavailable, an ingress node can send 0 in those fields.
MPLS Ping and Traceroute procedures MAY be initiated by the head-end of the SR path or a centralized topology-aware data plane monitoring system as described in RFC 8403.
The receiver SHOULD skip the incoming interface validation for PeerAdj SID if the local or remote interface address field contains 0.
The RESERVED field in the PeerAdj SID Sub-TLV (3 octets) and the Reserved field in the PeerSet SID Sub-TLV (2 octets) MUST be zero when sent and ignored on receiving.
When a remote ASBR receives an MPLS OAM packet with the top FEC being an EPE-SID, it MUST perform validity checks on the content of the EPE-SID FEC sub-TLV, including basic length checks.
PeerAdj SID Sub-TLV (Type 38) identifies a specific inter-AS adjacency link, carrying Adj type (1 octet; 1=IPv4, 2=IPv6), 3 reserved octets, Local/Remote AS Numbers (4 octets each), Local/Remote BGP Router IDs (4 octets each), and Local/Remote Interface Addresses (4 octets each for IPv4, 16 octets each for IPv6), yielding a length of 28 (IPv4) or 52 (IPv6) octets.
PeerNode SID Sub-TLV (Type 39) is a new sub-TLV for the Target FEC Stack TLV that identifies a multi-hop EBGP session between two ASBRs using Local AS Number, Remote AS Number, Local BGP Router ID, and Remote BGP Router ID, each 4 octets, for a fixed length of 16 octets.
PeerSet SID Sub-TLV (Type 40) represents a set of peer nodes/links over which load-balancing occurs, carrying Local AS Number (4 octets), Local BGP Router ID (4 octets), No. of elements in set (2 octets), Reserved (2 octets), followed by one or more Remote AS Number / Remote BGP Router ID pairs (8 octets each).
IANA allocated three new sub-TLVs in the 'Sub-TLVs for TLV Types 1, 16, and 21' registry within the MPLS LSP Ping Parameters registry group: sub-type 38 (PeerAdj SID), sub-type 39 (PeerNode SID), and sub-type 40 (PeerSet SID).
If an initiator does not remove FECs belonging to a previously traversed AS from the Target FEC Stack TLV in subsequent traceroute requests, it may expose internal AS topology information to subsequent ASes being traversed.
When EPE-SIDs are created for egress TE links where the neighbor AS is an independent entity, the neighboring AS may not allow OAM packets from the external world to reach its control plane, causing MPLS OAM packets to be dropped at the AS boundary.
PeerAdj SID FEC validation (sub-TLV type 38): when label-stack-depth is 0, validate that the receiving node's BGP Local AS matches the FEC's remote AS, BGP Router-ID matches the Remote Router ID, and an EBGP session exists with the specified peer; if remote interface address is non-zero, also validate the incoming interface. Set return code 3 on full success, 10 on AS/Router-ID mismatch, 35 on interface mismatch.
PeerNode SID FEC validation (sub-TLV type 39): validate that the receiving node's BGP Local AS matches the FEC's remote AS, BGP Router-ID matches the Remote Router ID, and an EBGP session exists with the specified peer. Set Best-return-code to 10 initially; if all conditions pass, set return code to 3.
PeerSet SID FEC validation (sub-TLV type 40): validate that the receiving node's BGP Local AS matches one of the remote AS fields, BGP Router-ID matches one of the Remote Router ID fields, and an EBGP session exists with the specified local AS/Router-ID. Set Best-return-code to 10 initially; set to 3 if all conditions pass.
PeerAdj SID Sub-TLV encoding: Type=38 (2 octets), Length variable (28 for IPv4, 52 for IPv6); fields are Adj type (1 octet), RESERVED (3 octets), Local AS Number (4), Remote AS Number (4), Local BGP Router ID (4), Remote BGP Router ID (4), Local Interface Address (4 or 16), Remote Interface Address (4 or 16).
PeerNode SID Sub-TLV encoding: Type=39 (2 octets), Length=16 (2 octets), Local AS Number (4 octets), Remote AS Number (4 octets), Local BGP Router ID (4 octets), Remote BGP Router ID (4 octets). Total payload is exactly 16 octets.
PeerSet SID Sub-TLV encoding: Type=40 (2 octets), Length variable based on the number of set elements; each element in the set consists of Remote AS Number (4 octets) and Remote BGP Router ID (4 octets); the No. of elements field (2 octets) specifies how many such element pairs follow.