Internet-Draft | LSP Ping/Trace for SR Path SID | October 2020 |
Min & Shaofu | Expires 3 May 2021 | [Page] |
Path Segment is a type of SR segment, which is used to identify an SR path. This document provides Target Forwarding Equivalence Class (FEC) stack TLV definitions for Path Segment Identifiers.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 3 May 2021.¶
Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.¶
Path Segment is a type of SR segment, which is used to identify an SR path. Path Segment in MPLS based segment routing network is defined in [I-D.ietf-spring-mpls-path-segment].¶
When Path Segment is used, it's inserted by the ingress node of the SR path, and then processed by the egress node of the SR path. The position of Path Segment Label within the MPLS label stack is immediately following the segment list of the SR path. Note that the Path Segment would not be popped up until it reaches the egress node.¶
This document provides Target Forwarding Equivalence Class (FEC) stack TLV definitions for Path-SIDs. Procedures for LSP Ping and Traceroute as defined in [RFC8287] and [RFC8690] are applicable to Path-SIDs as well.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document uses the terminology defined in [RFC8402] and [RFC8029], readers are expected to be familiar with those terms.¶
Analogous to what's defined in Section 5 of [RFC8287] and Section 4 of [I-D.ietf-mpls-sr-epe-oam], two new sub-TLVs are defined for the Target FEC Stack TLV (Type 1), the Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path TLV (Type 21).¶
Sub-Type Sub-TLV Name -------- ----------------------------- TBD1 SR Candidate Path's Path SID TBD2 SR Segment List's Path SID¶
As specified in Section 3 of [I-D.ietf-idr-sr-policy-path-segment], the Path Segment can be used to identify an SR path (specified by SID list) or an SR candidate path, so two different Target FEC sub-TLVs need to be defined for Path Segment ID. When a Path Segment is used to identify an SR path, then the Target FEC sub-TLV of SR Segment List's Path SID would be used to validate the control plane to forwarding plane synchronization for this Path-SID; When a Path Segment is used to identify an SR candidate path, then the Target FEC sub-TLV of SR Candidate Path's Path SID would be used to validate the control plane to forwarding plane synchronization for this Path-SID.¶
The format of SR Candidate Path's Path SID sub-TLV is as specified below:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = TBD1 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Headend (4/16 octets) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Color (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Endpoint (4/16 octets) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Protocol-Origin| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | Originator (20 octets) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type¶
Length¶
Headend¶
Color¶
Endpoint¶
Protocol-Origin¶
Originator¶
Discriminator¶
The format of SR Segment List's Path SID sub-TLV is as specified below:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = TBD2 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Headend (4/16 octets) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Color (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Endpoint (4/16 octets) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Protocol-Origin| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | Originator (20 octets) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Segment-List-ID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type¶
Length¶
Headend¶
Color¶
Endpoint¶
Protocol-Origin¶
Originator¶
Discriminator¶
Segment-List-ID¶
The MPLS LSP Ping/Traceroute procedures MAY be initiated by the headend of the Segment Routing path or a centralized topology-aware data plane monitoring system as described in [RFC8403]. For the Path-SID, the responder nodes that receive echo request and send echo reply MUST be the endpoint of the Segment Routing path.¶
When an endpoint receives the LSP echo request packet with top FEC being the Path-SID, it SHOULD perform validity checks on the content of the Path-SID FEC sub-TLV. The basic length check should be performed on the received FEC.¶
SR Candidate Path's Path SID ------------------ Length = 40 or 64 SR Segment List's Path SID ------------------ Length = 44 or 68¶
If a malformed FEC sub-TLV is received, then a return code of 1, "Malformed echo request received" as defined in [RFC8029] SHOULD be sent. The below section augments the section 7.4 of [RFC8287].¶
If the Label-stack-depth is 0 and the Target FEC Stack sub-TLV at FEC-stack-depth is TBD1 (SR Candidate Path's Path SID sub-TLV), {¶
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:¶
Validate that the Path Segment ID is signaled or provisioned for the SR Candidate Path {¶
When the Protocol-Origin field in the received SR Candidate Path's Path SID sub-TLV is 10, "PCEP" is used as the signaling protocol. And then validate that the Path Segment ID matches with the tuples identifying the SR Candidate Path within PCEP {¶
}¶
When the Protocol-Origin field in the received SR Candidate Path's Path SID sub-TLV is 20, "BGP SR Policy" is used as the signaling protocol. And then validate that the Path Segment ID matches with the tuples identifying the SR Candidate Path within BGP SR Policy {¶
}¶
When the Protocol-Origin field in the received SR Candidate Path's Path SID sub-TLV is 30, "Via Configuration" is used. And then validate that the Path Segment ID matches with the tuples identifying the SR Candidate Path within Configuration {¶
}¶
}¶
}¶
Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV at FEC-stack-depth is TBD2 (SR Segment List's Path SID sub-TLV), {¶
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:¶
Validate that the Path Segment ID is signaled or provisioned for the SR Segment List {¶
When the Protocol-Origin field in the received SR Segment List's Path SID sub-TLV is 10, "PCEP" is used as the signaling protocol. And then validate that the Path Segment ID matches with the tuples identifying the SR Segment List within PCEP {¶
}¶
When the Protocol-Origin field in the received SR Segment List's Path SID sub-TLV is 20, "BGP SR Policy" is used as the signaling protocol. And then validate that the Path Segment ID matches with the tuples identifying the SR Segment List within BGP SR Policy {¶
}¶
When the Protocol-Origin field in the received SR Segment List's Path SID sub-TLV is 30, "Via Configuration" is used. And then validate that the Path Segment ID matches with the tuples identifying the SR Segment List within Configuration {¶
}¶
}¶
}¶
This document does not raise any additional security issues beyond those of the specifications referred to in the list of normative references.¶
IANA is requested to assign two new sub-TLVs from the "sub-TLVs for TLV Types 1, 16, and 21" subregistry of the "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry [IANA].¶
Sub-Type Sub-TLV Name Reference -------- ----------------------------- ------------ TBD1 SR Candidate Path's Path SID Section 3.1 TBD2 SR Segment List's Path SID Section 3.2¶
The authors would like to acknowledge Zhao Detao for his thorough review and very helpful comments.¶