Label Switched Path Ping for Segment Routing Path Segment Identifier with MPLS Data Plane
Extracted elements (25)
LSP Traceroute is explicitly excluded from this document because transit nodes are not involved in PSID processing; only the egress endpoint processes the PSID label, making traceroute inapplicable.
Six distinct sub-TLVs are required because a PSID can have three different scopes of identification—all segment lists in an SR Policy, all segment lists in a Candidate Path, or a specific segment list—and each scope requires a different set of identifying fields, necessitating separate sub-TLV types for IPv4 and IPv6.
This document appends a new step 4b to step 4a of Section 7.4 of RFC 8287 (LSP Ping for SR-MPLS) to handle PSID validation, rather than defining a completely new procedure, ensuring backward compatibility with existing SR-MPLS OAM mechanisms.
For PSID echo request processing, the responder nodes that receive an echo request and send an echo reply MUST be the endpoint of the SR path.
If a malformed Target FEC Stack sub-TLV is received, a return code of 1 ('Malformed echo request received') MUST be sent.
If an unsupported Protocol-Origin value is used in any of the Candidate Path or Segment List PSID sub-TLVs, validation at the responder MUST fail.
If more than one of the six new PSID sub-TLVs is present in a single message, only the first sub-TLV will be processed per the validation rules in Section 4.
PSID FEC validation uses Label-stack-depth == 1 as a precondition; on successful validation the return code is set to 3 ('Replying router is an egress for the FEC at stack-depth <RSC>') and FEC-Status to 1.
The headend MUST perform validity checks on PSID sub-TLVs received in echo replies without setting a return code; if any validation fails, the headend MUST drop the echo reply and SHOULD log and/or report an error.
The Reserved field in Candidate Path and Segment List sub-TLVs MUST be set to zero when sent and MUST be ignored upon receipt.
When a PSID identifies a single or some segment lists, the 'SR Segment List Associated PSID' sub-TLV MUST be used. For the 'some segment lists' case, multiple LSP Ping messages MUST be sent, each carrying one such sub-TLV.
When a PSID identifies all segment lists in an SR Candidate Path, the 'SR Candidate Path Associated PSID' sub-TLV (IPv4 or IPv6) MUST be used for PSID checks.
When an endpoint receives an LSP echo request with the top FEC being the PSID, it MUST perform validity checks on the PSID Target FEC Stack sub-TLV content.
When any PSID sub-TLV is carried in a Reverse-Path Target FEC Stack TLV (Type 16) or Reply Path TLV (Type 21), it MUST be sent by an endpoint in the echo reply.
Six new Target FEC Stack sub-TLVs are defined (sub-types 49–54) for use in LSP Ping to support connectivity verification of SR paths that include Path Segment Identifiers (PSIDs). They apply to TLV Types 1 (Target FEC Stack), 16 (Reverse-Path Target FEC Stack), and 21 (Reply Path).
The Segment-List-ID is a 4-octet identifier that uniquely identifies a segment list within the context of the candidate path of an SR Policy. It is used as a key field in the SR Segment List Associated PSID sub-TLVs and can be signaled via BGP, PCEP, or BGP-LS.
IANA has assigned six sub-TLV entries (sub-types 49–54) in the 'Sub-TLVs for TLV Types 1, 16, and 21' registry within the MPLS LSP Ping Parameters registry group, using the Standards Action range (0–16383) that requires an error if unrecognized.
This document follows all security mechanisms defined in RFC 8029 (Section 5). The new PSID sub-TLVs do not impose any additional security challenges beyond those already covered by RFC 8029.
PSID FEC validation at the responder: if Label-stack-depth is 1 and the FEC sub-TLV type is 49–54, validate the sub-TLV fields against control-plane state. On success, return code 3 and FEC-Status 1; on failure, set Best-return-code to 10 ('Mapping for this FEC is not the given label at stack-depth').
SR Candidate Path Associated PSID - IPv4 sub-TLV (Type=50): fixed-length payload of 40 octets encoding Headend (4), Color (4), Endpoint (4), Protocol-Origin (1), Reserved (3), Originator (20), and Discriminator (4). The Length field MUST be set to 40.
SR Candidate Path Associated PSID - IPv6 sub-TLV (Type=53): payload of 64 octets encoding Headend (16), Color (4), Endpoint (16), Protocol-Origin (1), Reserved (3), Originator (20), Discriminator (4). The Length field MUST be set to 64.
SR Policy Associated PSID - IPv4 sub-TLV (Type=49): fixed-length payload of 12 octets encoding Headend (4 octets, IPv4), Color (4 octets), and Endpoint (4 octets, IPv4). The Length field MUST be set to 12.
SR Policy Associated PSID - IPv6 sub-TLV (Type=52): fixed-length payload of 36 octets encoding Headend (16 octets, IPv6), Color (4 octets), and Endpoint (16 octets, IPv6). The Length field MUST be set to 36.
SR Segment List Associated PSID - IPv4 sub-TLV (Type=51): payload of 44 octets, extending the Candidate Path format with an additional Segment-List-ID (4 octets). The Length field MUST be set to 44.
SR Segment List Associated PSID - IPv6 sub-TLV (Type=54): payload of 68 octets, extending the IPv6 Candidate Path format with Segment-List-ID (4 octets). The Length field MUST be set to 68.