rfc9884v1.txt | rfc9884.txt | |||
---|---|---|---|---|
skipping to change at line 13 ¶ | skipping to change at line 13 ¶ | |||
Request for Comments: 9884 S. Peng | Request for Comments: 9884 S. Peng | |||
Category: Standards Track ZTE Corp. | Category: Standards Track ZTE Corp. | |||
ISSN: 2070-1721 L. Gong | ISSN: 2070-1721 L. Gong | |||
China Mobile | China Mobile | |||
R. Gandhi | R. Gandhi | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
C. Pignataro | C. Pignataro | |||
Blue Fern Consulting | Blue Fern Consulting | |||
October 2025 | October 2025 | |||
A Label Switched Path Ping for the Segment Routing Path Segment | Label Switched Path Ping for Segment Routing Path Segment Identifier | |||
Identifier with an MPLS Data Plane | with MPLS Data Plane | |||
Abstract | Abstract | |||
Segment Routing (SR) leverages source routing to steer packets | Segment Routing (SR) leverages source routing to steer packets | |||
through an ordered list of instructions called "segments". SR can be | through an ordered list of instructions called "segments". SR can be | |||
instantiated over the MPLS data plane. Path Segment Identifiers | instantiated over the MPLS data plane. Path Segment Identifiers | |||
(PSIDs) are used to identify and correlate bidirectional or end-to- | (PSIDs) are used to identify and correlate bidirectional or end-to- | |||
end paths in Segment Routing networks. This document defines | end paths in SR networks. This document defines procedures (i.e., | |||
procedures (i.e., six new Target Forwarding Equivalence Class (FEC) | six new Target Forwarding Equivalence Class (FEC) Stack sub-TLVs) for | |||
Stack sub-TLVs) for the use of LSP Ping to support connectivity | the use of LSP Ping to support connectivity verification and fault | |||
verification and fault isolation for SR paths that include Path | isolation for SR paths that include PSIDs. The mechanisms described | |||
Segment Identifiers. The mechanisms described enable the validation | enable the validation and tracing of SR paths with Path SIDs in MPLS | |||
and tracing of SR paths with Path SIDs in MPLS networks, | networks, complementing existing SR-MPLS Operations, Administration, | |||
complementing existing SR-MPLS Operations, Administration, and | and Maintenance (OAM) capabilities. | |||
Maintenance (OAM) capabilities. | ||||
Status of This Memo | Status of This Memo | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
skipping to change at line 87 ¶ | skipping to change at line 86 ¶ | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
7.2. Informative References | 7.2. Informative References | |||
Acknowledgements | Acknowledgements | |||
Authors' Addresses | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
A Path Segment is a local segment [RFC9545] that uniquely identifies | A Path Segment is a local segment [RFC9545] that uniquely identifies | |||
an SR path on the egress node. A Path Segment Identifier (PSID) is a | an SR path on the egress node. A Path Segment Identifier (PSID) is a | |||
single label that is assigned from the Segment Routing Local Block | single label that is assigned from the SR Local Block (SRLB) | |||
(SRLB) [RFC8402] of the egress node of an SR path. | [RFC8402] of the egress node of an SR path. | |||
As specified in [RFC9545], PSID is a single label inserted by the | As specified in [RFC9545], PSID is a single label inserted by the | |||
ingress node of the SR path and then processed by the egress node of | ingress node of the SR path and then processed by the egress node of | |||
the SR path. The PSID is placed within the MPLS label stack as a | the SR path. The PSID is placed within the MPLS label stack as a | |||
label immediately following the last label of the SR path. The | label immediately following the last label of the SR path. The | |||
egress node pops the PSID. | egress node pops the PSID. | |||
The procedure for LSP Ping [RFC8029] as defined in Section 7.4 of | The procedure for LSP Ping [RFC8029] as defined in Section 7.4 of | |||
[RFC8287] is also applicable to PSID; this document appends the | [RFC8287] is also applicable to PSID; this document appends the | |||
existing step 4a with a new step 4b specific to PSID. Concretely, | existing step 4a with a new step 4b specific to PSID. Concretely, | |||
skipping to change at line 138 ¶ | skipping to change at line 137 ¶ | |||
This document introduces the following additional term: | This document introduces the following additional term: | |||
Segment-List-ID | Segment-List-ID | |||
The Segment-List-ID field is a 4-octet identifier that uniquely | The Segment-List-ID field is a 4-octet identifier that uniquely | |||
identifies a segment list within the context of the candidate path | identifies a segment list within the context of the candidate path | |||
of an SR Policy. Although not defined in [RFC9256], the Segment- | of an SR Policy. Although not defined in [RFC9256], the Segment- | |||
List-ID is the same identifier as the one that can be signaled | List-ID is the same identifier as the one that can be signaled | |||
through control plane protocols including Border Gateway Protocol | through control plane protocols including Border Gateway Protocol | |||
(BGP) (Section 2.1 of [SR-SEGLIST-ID], Path Computation Element | (BGP) (Section 2.1 of [SR-SEGLIST-ID], Path Computation Element | |||
Communication Protocol (PCEP) (Section 5.2 of [PCE-MULTIPATH]), | Communication Protocol (PCEP) (Section 4.2 of [PCE-MULTIPATH]), | |||
and Border Gateway Protocol - Link State (BGP-LS) (Section 5.7.4 | and Border Gateway Protocol - Link State (BGP-LS) (Section 5.7.4 | |||
of [RFC9857]). | of [RFC9857]). | |||
3. Path Segment ID Sub-TLVs | 3. Path Segment ID Sub-TLVs | |||
Analogous to what's defined in Section 5 of [RFC8287] and Section 4 | Analogous to what's defined in Section 5 of [RFC8287] and Section 4 | |||
of [RFC9703], six new sub-TLVs are defined for the Target FEC Stack | of [RFC9703], six new sub-TLVs are defined for the Target FEC Stack | |||
TLV (Type 1), the Reverse-Path Target FEC Stack TLV (Type 16), and | TLV (Type 1), the Reverse-Path Target FEC Stack TLV (Type 16), and | |||
the Reply Path TLV (Type 21). Note that the structures of the six | the Reply Path TLV (Type 21). Note that the structures of the six | |||
new sub-TLVs follow the TLV's structure defined in Section 3 of | new sub-TLVs follow the TLV's structure defined in Section 3 of | |||
skipping to change at line 416 ¶ | skipping to change at line 415 ¶ | |||
| | | | | | |||
| Endpoint (16 octets) | | | Endpoint (16 octets) | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: SR Policy Associated PSID - IPv6 Sub-TLV Format | Figure 4: SR Policy Associated PSID - IPv6 Sub-TLV Format | |||
Type (length: 2 octets) | Type (length: 2 octets) | |||
The Type field identifies the sub-TLV as an SR Policy Associated | The Type field identifies the sub-TLV as an SR Policy Associated | |||
PSID - IPv6 Sub-TLV. The value is set to 52. | PSID - IPv6 sub-TLV. The value is set to 52. | |||
Length (length: 2 octets) | Length (length: 2 octets) | |||
The Length field indicates the length of the sub-TLV in octets, | The Length field indicates the length of the sub-TLV in octets, | |||
excluding the first 4 octets (Type and Length fields). The value | excluding the first 4 octets (Type and Length fields). The value | |||
MUST be set to 36. | MUST be set to 36. | |||
Headend (length: 16 octets) | Headend (length: 16 octets) | |||
The Headend field encodes the headend IPv6 address of the SR | The Headend field encodes the headend IPv6 address of the SR | |||
Policy. This field is defined in Section 2.1 of [RFC9256]. | Policy. This field is defined in Section 2.1 of [RFC9256]. | |||
skipping to change at line 600 ¶ | skipping to change at line 599 ¶ | |||
This field is defined in Section 2.5 of [RFC9256]. | This field is defined in Section 2.5 of [RFC9256]. | |||
Segment-List-ID (length: 4 octets) | Segment-List-ID (length: 4 octets) | |||
The Segment-List-ID field is a 4-octet identifier that uniquely | The Segment-List-ID field is a 4-octet identifier that uniquely | |||
identifies a segment list within the context of the candidate path | identifies a segment list within the context of the candidate path | |||
of an SR Policy. This field is defined in Section 2.2. | of an SR Policy. This field is defined in Section 2.2. | |||
4. PSID FEC Validation | 4. PSID FEC Validation | |||
The MPLS LSP Ping procedures may be initiated by the headend of the | The MPLS LSP Ping procedures may be initiated by the headend of the | |||
Segment Routing path or a centralized topology-aware data plane | SR path or a centralized topology-aware data plane monitoring system | |||
monitoring system as described in [RFC8403]. For the PSID, the | as described in [RFC8403]. For the PSID, the responder nodes that | |||
responder nodes that receive an echo request and sends an echo reply | receive an echo request and send an echo reply MUST be the endpoint | |||
MUST be the endpoint of the SR path. | of the SR path. | |||
When an endpoint receives the LSP echo request packet with the top | When an endpoint receives the LSP echo request packet with the top | |||
FEC being the PSID, it MUST perform validity checks on the content of | FEC being the PSID, it MUST perform validity checks on the content of | |||
the PSID FEC Stack sub-TLV. | the PSID Target FEC Stack sub-TLV. | |||
If a malformed FEC Stack sub-TLV is received, then a return code of | If a malformed Target FEC Stack sub-TLV is received, then a return | |||
1, "Malformed echo request received" as defined in [RFC8029] MUST be | code of 1, "Malformed echo request received" as defined in [RFC8029] | |||
sent. The section below is appended to step 4a of Section 7.4 of | MUST be sent. The section below is appended to step 4a of | |||
[RFC8287]. | Section 7.4 of [RFC8287]. | |||
4.1. PSID FEC Validation Rules | 4.1. PSID FEC Validation Rules | |||
4b. Segment Routing PSID Validation: | 4b. Segment Routing PSID Validation: | |||
If the Label-stack-depth is 1 and the Target FEC Stack sub-TLV at | If the Label-stack-depth is 1 and the Target FEC Stack sub-TLV at | |||
FEC-stack-depth is 49 (SR Policy Associated PSID - IPv4 sub-TLV), { | FEC-stack-depth is 49 (SR Policy Associated PSID - IPv4 sub-TLV), { | |||
Set the Best-return-code to 10 "Mapping for this FEC is not the | Set the Best-return-code to 10 "Mapping for this FEC is not the | |||
given label at stack-depth <RSC>" if any below conditions fail | given label at stack-depth <RSC>" if any below conditions fail | |||
skipping to change at line 681 ¶ | skipping to change at line 680 ¶ | |||
at FEC-stack-depth is 51 (SR Segment List Associated PSID - IPv4 | at FEC-stack-depth is 51 (SR Segment List Associated PSID - IPv4 | |||
sub-TLV), { | sub-TLV), { | |||
Set the Best-return-code to 10 "Mapping for this FEC is not the | Set the Best-return-code to 10 "Mapping for this FEC is not the | |||
given label at stack-depth <RSC>" if any below conditions fail: | given label at stack-depth <RSC>" if any below conditions fail: | |||
- Validate that the PSID is signaled or provisioned for the SR | - Validate that the PSID is signaled or provisioned for the SR | |||
Segment List { | Segment List { | |||
* Validate that the signaled or provisioned headend, color, | * Validate that the signaled or provisioned headend, color, | |||
endpoint, originator, discriminator, and segment-list-id, | endpoint, originator, discriminator, and segment-list-id | |||
for the PSID match with the corresponding fields in the | for the PSID match with the corresponding fields in the | |||
received SR Segment List Associated PSID - IPv4 sub-TLV. | received SR Segment List Associated PSID - IPv4 sub-TLV. | |||
} | } | |||
} | } | |||
If all the above validations have passed, set the return code to 3, | If all the above validations have passed, set the return code to 3, | |||
"Replying router is an egress for the FEC at stack-depth <RSC>". | "Replying router is an egress for the FEC at stack-depth <RSC>". | |||
Set the FEC-Status to 1 and return. | Set the FEC-Status to 1 and return. | |||
} | } | |||
Else, if the Label-stack-depth is 1 and the Target FEC Stack sub-TLV | Else, if the Label-stack-depth is 1 and the Target FEC Stack sub-TLV | |||
at FEC-stack-depth is 52 (SR Policy Associated PSID - IPv6 | at FEC-stack-depth is 52 (SR Policy Associated PSID - IPv6 | |||
sub-TLV), { | sub-TLV), { | |||
Set the Best-return-code to 10 "Mapping for this FEC is not the | Set the Best-return-code to 10 "Mapping for this FEC is not the | |||
given label at stack-depth <RSC>" if any below conditions fail | given label at stack-depth <RSC>" if any below conditions fail | |||
(the notation <RSC> refers to the Return Subcode): | ||||
- Validate that the PSID is signaled or provisioned for the SR | - Validate that the PSID is signaled or provisioned for the SR | |||
Policy { | Policy { | |||
* Validate that the signaled or provisioned headend, color, | * Validate that the signaled or provisioned headend, color, | |||
and endpoint for the PSID match with the corresponding | and endpoint for the PSID match with the corresponding | |||
fields in the received SR Policy Associated PSID - IPv6 sub- | fields in the received SR Policy Associated PSID - IPv6 sub- | |||
TLV. | TLV. | |||
} | } | |||
End of changes. 10 change blocks. | ||||
25 lines changed or deleted | 23 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |