| 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 169 ¶ | skipping to change at line 168 ¶ | |||
| +----------+------------------------------------------+ | +----------+------------------------------------------+ | |||
| | 52 | SR Policy Associated PSID - IPv6 | | | 52 | SR Policy Associated PSID - IPv6 | | |||
| +----------+------------------------------------------+ | +----------+------------------------------------------+ | |||
| | 53 | SR Candidate Path Associated PSID - IPv6 | | | 53 | SR Candidate Path Associated PSID - IPv6 | | |||
| +----------+------------------------------------------+ | +----------+------------------------------------------+ | |||
| | 54 | SR Segment List Associated PSID - IPv6 | | | 54 | SR Segment List Associated PSID - IPv6 | | |||
| +----------+------------------------------------------+ | +----------+------------------------------------------+ | |||
| Table 1: Sub-TLVs for PSID Checks | Table 1: Sub-TLVs for PSID Checks | |||
| As specified in Section 2 of [RFC9545], a PSID is used to identify a | As specified in Section 2 of [RFC9545], a PSID is used to identify | |||
| segment list and/or some or all segment lists in a Candidate path or | the following: | |||
| an SR policy, so six different Target FEC Stack sub-TLVs need to be | ||||
| defined for PSID. The ordered list of selection rules for the six | * a single segment list, some segment lists, or all segment lists in | |||
| Target FEC Stack sub-TLVs are defined as follows: | a candidate path of an SR policy, | |||
| * some segment lists across multiple candidate paths of an SR | ||||
| policy, or | ||||
| * all segment lists in all candidate paths of an SR policy. | ||||
| Therefore, six different Target FEC Stack sub-TLVs need to be defined | ||||
| for PSID. The ordered list of selection rules for the six Target FEC | ||||
| Stack sub-TLVs are defined as follows: | ||||
| * When a PSID is used to identify all segment lists in an SR Policy, | * When a PSID is used to identify all segment lists in an SR Policy, | |||
| the Target FEC Stack sub-TLV of the type "SR Policy Associated | the Target FEC Stack sub-TLV of the type "SR Policy Associated | |||
| PSID" (for IPv4 or IPv6) MUST be used for PSID checks. | PSID" (for IPv4 or IPv6) MUST be used for PSID checks. | |||
| * When a PSID is used to identify all segment lists in an SR | * When a PSID is used to identify all segment lists in an SR | |||
| Candidate Path, the Target FEC Stack sub-TLV of the type "SR | Candidate Path, the Target FEC Stack sub-TLV of the type "SR | |||
| Candidate Path Associated PSID" (for IPv4 or IPv6) MUST be used | Candidate Path Associated PSID" (for IPv4 or IPv6) MUST be used | |||
| for PSID checks. | for PSID checks. | |||
| skipping to change at line 416 ¶ | skipping to change at line 424 ¶ | |||
| | | | | | | |||
| | 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 608 ¶ | |||
| 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 689 ¶ | |||
| 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. | |||
| } | } | |||
| skipping to change at line 976 ¶ | skipping to change at line 983 ¶ | |||
| Email: gongliyan@chinamobile.com | Email: gongliyan@chinamobile.com | |||
| Rakesh Gandhi | Rakesh Gandhi | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Canada | Canada | |||
| Email: rgandhi@cisco.com | Email: rgandhi@cisco.com | |||
| Carlos Pignataro | Carlos Pignataro | |||
| Blue Fern Consulting | Blue Fern Consulting | |||
| United States of America | United States of America | |||
| Email: carlos@bluefern.consulting, cpignata@gmail.com | Email: carlos@bluefern.consulting | |||
| End of changes. 12 change blocks. | ||||
| 30 lines changed or deleted | 37 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||