| rfc9703xml2.original.xml | rfc9703.xml | |||
|---|---|---|---|---|
| <?xml version="1.0"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | <!DOCTYPE rfc [ | |||
| RFC.2119.xml"> | <!ENTITY nbsp " "> | |||
| <!ENTITY RFC8287 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | <!ENTITY zwsp "​"> | |||
| RFC.8287.xml"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY RFC8029 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | <!ENTITY wj "⁠"> | |||
| RFC.8029.xml"> | ||||
| <!ENTITY RFC7705 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.7705.xml"> | ||||
| <!ENTITY RFC8690 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.8690.xml"> | ||||
| <!ENTITY RFC8174 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.8174.xml"> | ||||
| <!ENTITY RFC8403 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.8403.xml"> | ||||
| <!ENTITY RFC8664 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.8664.xml"> | ||||
| <!ENTITY RFC4271 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.4271.xml"> | ||||
| <!ENTITY RFC5065 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.5065.xml"> | ||||
| <!ENTITY RFC6286 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.6286.xml"> | ||||
| <!ENTITY RFC9086 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.9086.xml"> | ||||
| <!ENTITY RFC9087 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.9087.xml"> | ||||
| <!ENTITY RFC7942 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.7942.xml"> | ||||
| <!ENTITY RFC9256 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.9256.xml"> | ||||
| <!ENTITY RFC6793 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.6793.xml"> | ||||
| ]> | ]> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocompact="yes"?> | ||||
| <?rfc tocdepth="3"?> | ||||
| <?rfc tocindent="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-mpls-sr-epe-oam-19" ipr="trust200902"> | ||||
| <front> | ||||
| <title abbrev="EPE-OAM">Label Switched Path (LSP) Ping/Traceroute for Segment | ||||
| Routing (SR) | ||||
| Egress Peer Engineering Segment Identifiers (SIDs) | ||||
| with MPLS Data Plane</title> | ||||
| <author initials="S." surname="Hegde" fullname="Shraddha Hegde"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie | |||
| <organization>Juniper Networks Inc.</organization> | tf-mpls-sr-epe-oam-19" number="9703" consensus="true" ipr="trust200902" obsolete | |||
| <address> | s="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth=" | |||
| <postal> | 3" symRefs="true" sortRefs="true" version="3"> | |||
| <street>Exora Business Park</street> | ||||
| <city>Bangalore</city> | ||||
| <region>KA</region> | ||||
| <code>560103</code> | ||||
| <country>India</country> | ||||
| </postal> | ||||
| <email>shraddha@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="M." surname="Srivastava" fullname="Mukul Srivastava"> | ||||
| <organization>Juniper Networks Inc.</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>msri@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="K." surname="Arora" fullname="Kapil Arora"> | <front> | |||
| <organization>Individual Contributor</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>kapil.it@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="S." surname="Ninan" fullname="Samson Ninan"> | <!--[rfced] We updated "MPLS Data Plane" to "MPLS Data Planes" in the | |||
| <organization>Ciena</organization> | document title. If that is not correct and it should be singular, | |||
| <address> | please let us know. We also added a hyphen to "EPE SIDs" in the | |||
| <postal> | abbreviated title that spans the PDF to match the running text. | |||
| <street></street> | ||||
| <city></city> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>samson.cse@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="X." surname="Xu" fullname="Xiaohu Xu"> | ||||
| <organization>China Mobile</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city>Beijing</city> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <email>xuxiaohu_ietf@hotmail.com </email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2024"/> | ||||
| <area>Routing</area> | ||||
| <workgroup>Routing area</workgroup> | ||||
| <keyword>OAM</keyword> | ||||
| <keyword>EPE</keyword> | ||||
| <keyword>BGP-LS</keyword> | ||||
| <keyword>BGP</keyword> | ||||
| <keyword>SPRING</keyword> | ||||
| <keyword>SDN</keyword> | ||||
| <keyword>SID</keyword> | ||||
| <abstract> | Original: | |||
| <t>Egress Peer Engineering (EPE) is an application of Segment Routing to | (title) | |||
| solve the problem of egress peer selection. The Segment Routing based | Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) | |||
| BGP-EPE solution allows a centralized controller, e.g. a Software | Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS | |||
| Defined Network (SDN) controller to program any egress peer. | Data Plane | |||
| The EPE solution requires the node or the SDN controller to program | ||||
| the PeerNode Segment | ||||
| Identifier(SID) describing a session between two nodes, the PeerAdj SID | ||||
| describing the link (one or more) that is used by sessions between peer nodes | ||||
| , | ||||
| and the PeerSet SID describing any connected interface to any peer in the rel | ||||
| ated group. | ||||
| This document provides new sub-TLVs for EPE Segment | ||||
| Identifiers (SID) that would be used in | ||||
| the MPLS Target stack TLV (Type 1), in MPLS Ping and Traceroute procedures. | ||||
| </t> | (short title) | |||
| </abstract> | LSP for SR EPE SIDs with MPLS | |||
| </front> | Current: | |||
| (title) | ||||
| Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) | ||||
| Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS | ||||
| Data Planes | ||||
| <middle> | (short title) | |||
| <section title="Introduction" anchor='intro'> | LSP for SR EPE-SIDs with MPLS | |||
| <t> Egress Peer Engineering (EPE) as defined in | --> | |||
| <xref target ='RFC9087'/> is | ||||
| an effective mechanism to select the egress peer link based on different criteri | ||||
| a. | ||||
| In this scenario, egress peers may belong to a completely different ownership. | ||||
| The EPE-SIDs provide means to represent egress peer nodes, links, sets of links | ||||
| and sets of nodes. | ||||
| Many network | <title abbrev="LSP for SR EPE-SIDs with MPLS">Label Switched Path (LSP) Ping | |||
| deployments have built their networks consisting of multiple Autonomous | /Traceroute for | |||
| Systems, either for the ease of operations or as a result of network mergers and | Segment Routing (SR) Egress Peer Engineering (EPE) Segment Identifiers (SIDs | |||
| acquisitions. | ) | |||
| The inter-AS links connecting any two Autonomous Systems could be traffic-engine | with MPLS Data Planes</title> | |||
| ered | <seriesInfo name="RFC" value="9703"/> | |||
| using EPE-SIDs in this case, where there is single ownership but different AS | <author initials="S." surname="Hegde" fullname="Shraddha Hegde"> | |||
| numbers. | <organization>Juniper Networks Inc.</organization> | |||
| It is important to validate | <address> | |||
| the control plane to forwarding plane synchronization for these SIDs so | <postal> | |||
| that any anomaly can be detected easily by the network operator. | <street>Exora Business Park</street> | |||
| <city>Bangalore</city> | ||||
| <region>Karnataka</region> | ||||
| <code>560103</code> | ||||
| <country>India</country> | ||||
| </postal> | ||||
| <email>shraddha@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="M." surname="Srivastava" fullname="Mukul Srivastava"> | ||||
| <organization>Juniper Networks Inc.</organization> | ||||
| <address> | ||||
| <email>msri@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="K." surname="Arora" fullname="Kapil Arora"> | ||||
| <organization>Individual Contributor</organization> | ||||
| <address> | ||||
| <email>kapil.it@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="S." surname="Ninan" fullname="Samson Ninan"> | ||||
| <organization>Ciena</organization> | ||||
| <address> | ||||
| <email>samson.cse@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="X." surname="Xu" fullname="Xiaohu Xu"> | ||||
| <organization>China Mobile</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <city>Beijing</city> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <email>xuxiaohu_ietf@hotmail.com </email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2024" month="December"/> | ||||
| <area>RTG</area> | ||||
| <workgroup>mpls</workgroup> | ||||
| <keyword>OAM</keyword> | ||||
| <keyword>EPE</keyword> | ||||
| <keyword>BGP-LS</keyword> | ||||
| <keyword>BGP</keyword> | ||||
| <keyword>SPRING</keyword> | ||||
| <keyword>SDN</keyword> | ||||
| <keyword>SID</keyword> | ||||
| <abstract> | ||||
| <t>Egress Peer Engineering (EPE) is an application of Segment Routing | ||||
| (SR) that solves the problem of egress peer selection. The SR-based | ||||
| BGP-EPE solution allows a centralized controller, e.g., a | ||||
| Software-Defined Network (SDN) controller, to program any egress peer. | ||||
| The EPE solution requires the node or the SDN controller to program 1) the | ||||
| PeerNode Segment Identifier (SID) describing a session between two | ||||
| nodes, 2) the PeerAdj SID describing the link or links that are | ||||
| used by the sessions between peer nodes, and 3) the PeerSet SID | ||||
| describing any connected interface to any peer in the related group. | ||||
| This document provides new sub-TLVs for EPE-SIDs that are used in | ||||
| the MPLS Target stack TLV (Type 1) in MPLS Ping and Traceroute | ||||
| procedures.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <middle> | ||||
| <section anchor="intro" numbered="true" toc="default"> | ||||
| <name>Introduction</name> | ||||
| <t> Egress Peer Engineering (EPE), as defined in <xref target="RFC9087" | ||||
| format="default"/>, is an effective mechanism that is used to select the e | ||||
| gress peer | ||||
| link based on different criteria. In this scenario, egress peers may | ||||
| belong to a completely different ownership. The EPE-SIDs provide the | ||||
| means to represent egress peer nodes, links, sets of links, and sets of | ||||
| nodes. Many network deployments have built their networks consisting of | ||||
| multiple Autonomous Systems (ASes) either for the ease of operations or as | ||||
| a | ||||
| result of network mergers and acquisitions. The inter-AS links | ||||
| connecting any two ASes could be traffic-engineered using | ||||
| EPE-SIDs in this case, where there is single ownership but different | ||||
| AS numbers. It is important to validate the control | ||||
| plane to forwarding plane synchronization for these SIDs so that any | ||||
| anomaly can be easily detected by the network operator. EPE-SIDs may | ||||
| also be used in an ingress Segment Routing (SR) policy <xref target="RFC92 | ||||
| 56" | ||||
| format="default"/> to choose exit points where the remote AS has | ||||
| a completely different ownership. This scenario is out of scope for this | ||||
| document. | ||||
| </t> | ||||
| <figure anchor="reference_diagram"> | ||||
| <name>Reference Diagram</name> | ||||
| EPE-SIDs may also be used in ingress SR policy <xref target ='RFC9256'/>to choos | <!-- [rfced] FYI - In Figure 1, we updated "AS 2", "AS 3", and "AS 4" | |||
| e exit points | to have no spaces in order to match "AS1" in the diagram and | |||
| where the remote AS belongs to completely different | "AS2" and "AS3" in the subsequent text. Please let us know if | |||
| ownership. This scenario is out of scope of this document. | there is any objection. | |||
| </t> | ||||
| <t> | AS 2 > AS2 | |||
| <figure anchor="reference_diagram" title="Reference Diagram"> | AS 3 > AS3 | |||
| <artwork> | AS 4 > AS4 | |||
| --> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +---------+ +------+ | +---------+ +------+ | |||
| | | | | | | | | | | |||
| | H B------D G | | H B------D G | |||
| | | +---/| AS 2 |\ +------+ | | | +---/| AS2 |\ +------+ | |||
| | |/ +------+ \ | |---L/8 | | |/ +------+ \ | |---L/8 | |||
| A AS1 C---+ \| | | A AS1 C---+ \| | | |||
| | |\\ \ +------+ /| AS 4 |---M/8 | | |\\ \ +------+ /| AS4 |---M/8 | |||
| | | \\ +-E |/ +------+ | | | \\ +-E |/ +------+ | |||
| | X | \\ | K | | X | \\ | K | |||
| | | +===F AS 3 | | | | +===F AS3 | | |||
| +---------+ +------+ | +---------+ +------+]]></artwork> | |||
| </figure> | ||||
| <t>In <xref target="reference_diagram" format="default"/>, EPE-SIDs are | ||||
| configured on AS1 towards AS2 and AS3 and advertised in the Border | ||||
| Gateway Protocol - Link State (BGP-LS) <xref target="RFC9086" | ||||
| format="default"/>. In certain cases, the EPE-SIDs advertised by the | ||||
| control plane may not be in synchronization with the label programmed in | ||||
| the data plane. For example, on C, a PeerAdj SID could be advertised to | ||||
| indicate it is for the link C->D. Due to some software anomaly, the | ||||
| actual data forwarding on this PeerAdj SID could be happening over the | ||||
| C->E link. If E had relevant data paths for further forwarding the | ||||
| packet, this kind of anomaly would go unnoticed by the network operator. | ||||
| A detailed example of a correctly programmed state and an incorrectly | ||||
| programmed state along with a description of how the incorrect state can | ||||
| be detected is described in <xref target="Appendix" format="default"/>. | ||||
| A Forwarding Equivalence Class (FEC) definition for the EPE-SIDs will | ||||
| detail the control plane association of the SID. The | ||||
| data plane validation of the SID will be done during the MPLS traceroute | ||||
| procedure. When there is a multi-hop External BGP (EBGP) session | ||||
| between the ASBRs, a PeerNode SID is advertised, and the traffic | ||||
| <bcp14>MAY</bcp14> be load-balanced between the interfaces connecting | ||||
| the two nodes. In <xref target="reference_diagram" format="default"/>, | ||||
| C and F could have a PeerNode SID advertised. When the Operations, | ||||
| Administration, and Maintenance (OAM) packet is received on F, it needs | ||||
| to be validated that the packet came from one of the two interfaces | ||||
| connected to C. | ||||
| </t> | ||||
| <t> This document provides Target Forwarding Equivalence Class (FEC) | ||||
| Stack TLV definitions for EPE-SIDs. This solution requires the | ||||
| node constructing the target FEC stack to determine the types of | ||||
| SIDs along the path of the LSP. Other procedures for MPLS Ping and | ||||
| Traceroute, as defined in <xref target="RFC8287" sectionFormat="of" | ||||
| section="7"/> and clarified in <xref target="RFC8690" format="default"/>, | ||||
| are applicable for EPE-SIDs as well.</t> | ||||
| </section> | ||||
| <section anchor="operation" numbered="true" toc="default"> | ||||
| <name>Theory of Operation</name> | ||||
| <t><xref target="RFC9086" format="default"/> provides mechanisms to | ||||
| advertise the EPE-SIDs in BGP-LS. | ||||
| </artwork> | <!--[rfced] Please clarify this sentence. Are SR paths built using either | |||
| </figure> | EPE-SIDs or PCEP extensions? Please let us know which option is preferred. | |||
| In this reference diagram, EPE-SIDs are | ||||
| configured on AS1 towards AS2 and AS3 and | ||||
| advertised in BGP-LS <xref target="RFC9086"/>. | ||||
| In certain cases the EPE-SIDs advertised by the control plane may not be in | ||||
| synchronization with the label programmed in the data plane. For example, | ||||
| on C a PeerAdj SID could be advertised to indicate it is for the link C->D. | ||||
| Due to some software anomaly, the actual data forwarding on this PeerAdj SID | ||||
| could be happening over the C->E link. If E had relevant data paths for fur | ||||
| ther | ||||
| forwarding the packet, this kind of anomaly will go unnoticed by the network | ||||
| operator. | ||||
| A detailed example of a correctly programmed state and an incorrectly progra | ||||
| mmed | ||||
| state along with a description of how the incorrect state can be detected | ||||
| is | ||||
| described in <xref target="APPENDIX"/>. | ||||
| A FEC definition for the EPE-SIDs will define the details of the control | ||||
| plane association of the SID. The data plane validation of the SID will | ||||
| be done during the MPLS traceroute procedure. When there is a multi-hop EBG | ||||
| P | ||||
| session between the ASBRs, PeerNode SID is advertised, and the traffic MAY b | ||||
| e | ||||
| load-balanced between the interfaces connecting the two nodes. In the refer | ||||
| ence | ||||
| diagram, C and F could have a PeerNode-SID advertised. When the OAM packet | ||||
| is | ||||
| received on F, it needs to be validated that the packet came from one of | ||||
| the two interfaces connected to C. | ||||
| </t> | ||||
| <t> This document provides Target Forwarding Equivalence Class (FEC) | ||||
| stack TLV definitions for EPE-SIDs. This solution requires that the node | ||||
| constructing the target FEC stack can | ||||
| determine the type of the SIDs along the path of the | ||||
| LSP. Other procedures for MPLS Ping and Traceroute | ||||
| as defined in <xref target="RFC8287"/> section 7 and clarified by <xref target | ||||
| ="RFC8690"/> | ||||
| are applicable for EPE-SIDs as well.</t> | ||||
| </section> | Original: | |||
| These EPE-SIDs may be used to build Segment Routing paths as described | ||||
| in [I-D.ietf-idr-segment-routing-te-policy] or using Path Computation | ||||
| Element Protocol (PCEP) extensions as defined in [RFC8664]. | ||||
| <section title="Theory of Operation" anchor='operation'> | Perhaps A: | |||
| <t><xref target ='RFC9086'/> provides | These EPE-SIDs may be used to build SR paths as described | |||
| mechanisms to advertise the EPE-SIDs in BGP-LS. These EPE-SIDs | in [SR-TE-POLICY]], or Path Computation Element Protocol (PCEP) | |||
| may be used to build Segment Routing paths as | extensions as defined in [RFC8664] may be used. | |||
| described in | or | |||
| <xref target ='I-D.ietf-idr-segment-routing-te-policy'/> or | ||||
| using Path Computation Element Protocol (PCEP) extensions as defined | ||||
| in <xref target="RFC8664"/>. Data plane monitoring for such paths which | ||||
| consist of EPE-SIDs will use extensions defined in this document to | ||||
| build the Target FEC stack TLV. The MPLS Ping and Traceroute procedures | ||||
| MAY be initiated by the head-end of the Segment Routing path or a centralized | ||||
| topology-aware data plane monitoring system as described in | ||||
| <xref target="RFC8403"/>. The extensions in | ||||
| <xref target ='I-D.ietf-idr-segment-routing-te-policy'/> and | ||||
| <xref target="RFC8664"/> do not define how to carry the details | ||||
| of the SID that can be used to construct the FEC. Such | ||||
| extensions are out of the scope for this document. | ||||
| The node initiating the data plane monitoring | ||||
| may acquire the details of EPE-SIDs through BGP-LS advertisements as | ||||
| described in <xref target ='RFC9086'/>. There may be other | ||||
| possible mechanisms to learn the definition of the SID | ||||
| from controller. Details of such mechanisms are | ||||
| out of scope for this document.</t> | ||||
| <t>The EPE-SIDs are advertised for inter-AS links which run EBGP sessions. | ||||
| <xref target ='RFC9086'/> | ||||
| does not define the detailed procedures to operate EBGP sessions in a scenario w | ||||
| ith | ||||
| unnumbered interfaces. Therefore, these scenarios are | ||||
| out of scope for this document. | ||||
| Anycast and multicast addresses are not in the scope of this document. | ||||
| During AS migration scenario procedures | Perhaps B: | |||
| described in <xref target="RFC7705"/> may be in force. In these scenarios, | SR paths are built using these EPE-SIDs as described in [SR-TE-POLICY] | |||
| if the local and remote AS fields in the FEC | or Path Computation Element Protocol (PCEP) extensions as defined in | |||
| as described in <xref target="FEC_definitions"/> carries the | [RFC8664]. | |||
| globally configured ASN and not the "local AS" as defined in <xref target="RFC77 | --> | |||
| 05"/>, | ||||
| the FEC validation procedures may fail. </t> | ||||
| <t> As described in <xref target="intro"/>, this document defines FEC stack TLVs | ||||
| for EPE-SIDs, that can be used in detecting MPLS data plane | ||||
| failures <xref target="RFC8029"/>. This mechanism applies to paths created acros | ||||
| s | ||||
| across ASes of co-operating administrations. If the ping or traceroute packet | ||||
| enters a non co-operating AS domain, it might be dropped by the routers in the | ||||
| non co-operating domain. Although complete path validation cannot be done across | ||||
| , | ||||
| non co-operating domains, it still provides useful information that the | ||||
| ping/traceroute packet entered a non co-operating domain.</t> | ||||
| </section> | These EPE-SIDs may be used to build | |||
| <section title="Requirements Language"> | SR paths as described in <xref | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | target="I-D.ietf-idr-segment-routing-te-policy" format="default"/> or | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | using Path Computation Element Protocol (PCEP) extensions as defined in | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14, | <xref target="RFC8664" format="default"/>. Data plane monitoring for | |||
| <xref target="RFC2119"/>, <xref target="RFC8174"/> when, and | such paths that consist of EPE-SIDs will use extensions defined in this | |||
| only when, they appear in all capitals, as shown here. </t> | document to build the Target FEC stack TLV. The MPLS Ping and | |||
| </section> | Traceroute procedures <bcp14>MAY</bcp14> be initiated by the head-end of | |||
| the SR path or a centralized topology-aware data plane | ||||
| monitoring system, as described in <xref target="RFC8403" | ||||
| format="default"/>. | ||||
| <section anchor='FEC_definitions' title='FEC Definitions'> | <!--[rfced] Would it be correct to say that the extensions do not | |||
| define how to "acquire" or "acquire and carry" the details of the | ||||
| SID, or is the intension to only mention "carry"? We ask because | ||||
| the next few sentences discuss how the node can "acquire the | ||||
| details". | ||||
| <t> | Original: | |||
| Three new sub-TLVs are defined for the Target FEC Stack TLV (Type 1), | The extensions in [I-D.ietf-idr-segment-routing-te-policy] and | |||
| the Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path | [RFC8664] do not define how to carry the details of the SID | |||
| TLV (Type 21).</t> | that can be used to construct the FEC. | |||
| <figure anchor="sub_tlv" title="New sub-TLV types"> | ||||
| <artwork> | ||||
| Sub-Type Sub-TLV Name | ||||
| -------- --------------- | ||||
| TBD1 PeerAdj SID Sub-TLV | ||||
| TBD2 PeerNode SID Sub-TLV | ||||
| TBD3 PeerSet SID Sub-TLV | ||||
| </artwork> | Perhaps: | |||
| </figure> | The extensions in [SR-TE-POLICY] and [RFC8664] do not define how | |||
| to acquire and carry the details of the SID that can be used to | ||||
| construct the FEC. | ||||
| --> | ||||
| <section anchor='peer_node_sid' title='PeerNode SID Sub-TLV'> | The extensions in <xref | |||
| target="I-D.ietf-idr-segment-routing-te-policy" format="default"/> and | ||||
| <xref target="RFC8664" format="default"/> do not define how to carry the | ||||
| details of the SID that can be used to construct the FEC. Such | ||||
| extensions are out of scope for this document. The node initiating | ||||
| the data plane monitoring may acquire the details of EPE-SIDs through | ||||
| BGP-LS advertisements, as described in <xref target="RFC9086" | ||||
| format="default"/>. There may be other possible mechanisms that can be us | ||||
| ed to learn the | ||||
| definition of the SID from the controller. Details of such mechanisms are | ||||
| out of scope for this document.</t> | ||||
| <t>The EPE-SIDs are advertised for inter-AS links that run EBGP | ||||
| sessions. <xref target="RFC9086" format="default"/> does not define the | ||||
| detailed procedures of how to operate EBGP sessions in a scenario with | ||||
| unnumbered interfaces. Therefore, these scenarios are out of scope for | ||||
| this document. Anycast and multicast addresses are not in the scope of | ||||
| this document. During the AS migration scenario, procedures described in | ||||
| <xref target="RFC7705" format="default"/> may be in force. In these | ||||
| scenarios, if the local and remote AS fields in the FEC (as described in | ||||
| <xref target="FEC_definitions" format="default"/>) carry the globally | ||||
| configured Access Service Network (ASN) and not the "local AS" (as defined | ||||
| in <xref | ||||
| target="RFC7705" format="default"/>), then the FEC validation procedures m | ||||
| ay | ||||
| fail. </t> | ||||
| <t>As described in <xref target="intro" format="default"/>, this | ||||
| document defines FEC stack TLVs for EPE-SIDs that can be used in | ||||
| detecting MPLS data plane failures <xref target="RFC8029" | ||||
| format="default"/>. This mechanism applies to paths created across | ||||
| ASes of cooperating administrations. If the ping or traceroute | ||||
| packet enters a non-cooperating AS domain, it might be dropped by the | ||||
| routers in the non-cooperating domain. Although a complete path | ||||
| validation cannot be done across non-cooperating domains, it still | ||||
| provides useful information that the ping or traceroute packet entered a | ||||
| non-cooperating domain.</t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Requirements Language</name> | ||||
| <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
| "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | ||||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | ||||
| to be interpreted as described in BCP 14, <xref target="RFC2119" | ||||
| format="default"/>, <xref target="RFC8174" format="default"/> when, and | ||||
| only when, they appear in all capitals, as shown here. </t> | ||||
| </section> | ||||
| <section anchor="FEC_definitions" numbered="true" toc="default"> | ||||
| <name>FEC Definitions</name> | ||||
| <t> In this document, three new sub-TLVs are defined for the Target FEC St | ||||
| ack TLV (Type | ||||
| 1), the Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path | ||||
| TLV (Type 21).</t> | ||||
| <figure anchor="peer_node_sid_tlv" title="PeerNode SID Sub-TLV"> | <!--[rfced] It appears that Table 1 (Section 4) and Table 2 (Section 6) | |||
| are the same. Would you like to remove Table 1 and add a link to | ||||
| Table 2 (which would then become Table 1) as shown below? | ||||
| <artwork> | Current: | |||
| In this document, three 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). | ||||
| 0 1 2 3 | - Table 1 - | |||
| 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 | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local BGP router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| </artwork> | Perhaps: | |||
| </figure> | In this document, three new sub-TLVs are defined for the Target FEC | |||
| <t>Type : 2 octets </t> | Stack TLV (Type 1), the Reverse-Path Target FEC Stack TLV (Type 16), | |||
| <t> Value:TBD2</t> | and the Reply Path TLV (Type 21); see Table 1. | |||
| <t>Length : 2 octets </t> | --> | |||
| <t> Value: 16 | ||||
| </t> | ||||
| <t>Local AS Number : 4 octets</t> | <table anchor="sub_tlv" align="center"> | |||
| <name>New Sub-TLV Types</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Sub-Type</th> | ||||
| <th>Sub-TLV Name</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>38</td> | ||||
| <td>PeerAdj SID</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>39</td> | ||||
| <td>PeerNode SID</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>40</td> | ||||
| <td>PeerSet SID</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>The unsigned integer representing the AS number <xref | <section anchor="peer_node_sid" numbered="true" toc="default"> | |||
| target ='RFC6793'/> | <name>PeerNode SID Sub-TLV</name> | |||
| of the AS to which the PeerNode SID advertising | <figure anchor="peer_node_sid_tlv"> | |||
| node belongs. If Confederations <xref target ='RFC5065'/> are in | <name>PeerNode SID Sub-TLV</name> | |||
| use, and if the | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| remote node is a member of a different Member-AS within the local | 0 1 2 3 | |||
| Confederation, this is the Member-AS Number inside the Confederat | 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 | |||
| ion | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| and not the Confederation Identifier.</t> | |Type = 39 | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | ||||
| </figure> | ||||
| <t>Remote AS Number : 4 octets</t> | <dl> | |||
| <dt>Type:</dt><dd>2 octets</dd> | ||||
| <dt>Value:</dt><dd>39</dd> | ||||
| <dt>Length:</dt><dd>2 octets</dd> | ||||
| <dt>Value:</dt><dd>16</dd> | ||||
| <dt>Local AS Number:</dt><dd>4 octets. The unsigned integer | ||||
| representing the AS number <xref target="RFC6793" format="default"/> | ||||
| of the AS to which the PeerNode SID advertising node belongs. If | ||||
| Confederations <xref target="RFC5065" format="default"/> are in use, | ||||
| and if the remote node is a member of a different Member-AS within | ||||
| the local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</dd> | ||||
| <dt>Remote AS Number:</dt><dd>4 octets. The unsigned integer | ||||
| representing the AS number <xref target="RFC6793" format="default"/> | ||||
| of the AS of the remote node for which the PeerNode SID is | ||||
| advertised. If Confederations <xref target="RFC5065" | ||||
| format="default"/> are in use, and if the remote node is a member of | ||||
| a different Member-AS within the local Confederation, this is the | ||||
| Member-AS Number inside the Confederation and not the Confederation | ||||
| Identifier.</dd> | ||||
| <dt>Local BGP Router ID:</dt><dd>4 octets. Unsigned integer | ||||
| representing the BGP Identifier of the PeerNode SID advertising node | ||||
| as defined in <xref target="RFC4271" format="default"/> and <xref | ||||
| target="RFC6286" format="default"/>. </dd> | ||||
| <dt>Remote BGP Router ID:</dt><dd>4 octets. Unsigned integer | ||||
| representing the BGP Identifier of the remote node as defined in | ||||
| <xref target="RFC4271" format="default"/> and <xref target="RFC6286" | ||||
| format="default"/>. </dd> | ||||
| </dl> | ||||
| <t>The unsigned integer representing the AS number <xref | <t>When there is a multi-hop EBGP session between two ASBRs, a | |||
| target ='RFC6793'/> | PeerNode SID is advertised for this session, and traffic can be | |||
| of the AS of the remote node for which the | load-balanced across these interfaces. An EPE controller that performs | |||
| PeerNode SID is advertised. If Confederations <xref target ='RFC5 | bandwidth management for these links should be aware of the links on | |||
| 065'/> are in use, | which the traffic will be load-balanced. | |||
| and if the remote node is a member of a different Member-AS withi | ||||
| n | ||||
| the local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</t> | ||||
| <t>Local BGP Router ID : 4 octets </t> | <!--[rfced] Is "the OAM packet will be sent out" an example of what is | |||
| <t>unsigned integer representing the BGP Identifier | specified? We updated this sentence as reflected below; if that | |||
| of the PeerNode SID advertising node as defined in | is not correct, please let us know. | |||
| <xref target ='RFC4271'/> and <xref target ='RFC6286'/>. | ||||
| </t> | ||||
| <t>Remote BGP Router ID : 4 octets</t> | ||||
| <t>unsigned integer representing | ||||
| the BGP Identifier of the remote node as defined in | ||||
| <xref target ='RFC4271'/> and <xref target ='RFC6286'/>. | ||||
| </t> | ||||
| <t>When there is a multi-hop EBGP session between two ASBRs, PeerNode SID i | Original: | |||
| s | As per [RFC8029], the node advertising the EPE SIDs will send | |||
| advertised for this session and traffic can be | Downstream Detailed Mapping (DDMAP TLV) specifying the details | |||
| load balanced across these interfaces. | of nexthop interfaces, the OAM packet will be sent out. | |||
| An EPE controller that does bandwidth management for these links should be | ||||
| aware of the links on which the traffic will be load-balanced. As per | ||||
| <xref target ='RFC8029'/>, the node advertising the EPE SIDs will send | ||||
| Downstream Detailed Mapping TLV (DDMAP TLV) specifying the details of nextho | ||||
| p | ||||
| interfaces, the OAM packet will be sent out. Based on this information | ||||
| controller MAY choose to verify the actual forwarding state with the topolog | ||||
| y | ||||
| information controller has. On the router, the validation procedures will i | ||||
| nclude, | ||||
| received DDMAP validation as specified in <xref target ='RFC8029'/> to verif | ||||
| y the | ||||
| control and forwarding state synchronization on the two routers. Any discrep | ||||
| ancies | ||||
| between controller's state and forwarding state will not be detected by the | ||||
| procedures described in the document.</t> | ||||
| </section> | Current: | |||
| As per [RFC8029], the node advertising the EPE-SIDs will send a | ||||
| Downstream Detailed Mapping (DDMAP) TLV specifying the details | ||||
| of the next-hop interfaces, e.g., when the OAM packet will be | ||||
| sent out. | ||||
| --> | ||||
| <section anchor='peer_adj_sid' title='PeerAdj SID Sub-TLV'> | As per <xref | |||
| target="RFC8029" format="default"/>, the node advertising the EPE-SIDs | ||||
| will send a Downstream Detailed Mapping (DDMAP) TLV specifying the | ||||
| details of the next-hop interfaces, e.g, when the OAM packet will be sen | ||||
| t | ||||
| out. Based on this information, the controller <bcp14>MAY</bcp14> | ||||
| choose to verify the actual forwarding state with the topology | ||||
| information that the controller has. On the router, the validation | ||||
| procedures will include the received DDMAP validation, as specified in | ||||
| <xref target="RFC8029" format="default"/>, to verify the control state | ||||
| and the forwarding state synchronization on the two routers. Any | ||||
| discrepancies between the controller's state and the forwarding state | ||||
| will not be detected by the procedures described in this document.</t> | ||||
| </section> | ||||
| <section anchor="peer_adj_sid" numbered="true" toc="default"> | ||||
| <name>PeerAdj SID Sub-TLV</name> | ||||
| <figure anchor="peer_adj_sid_tlv"> | ||||
| <name>PeerAdj SID Sub-TLV</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| 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 = 38 | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Adj-Type | RESERVED | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local Interface Address (4/16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote Interface Address (4/16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | ||||
| </figure> | ||||
| <figure anchor="peer_adj_sid_tlv" title="PeerAdj SID Sub-TLV"> | <dl> | |||
| <artwork> | <dt>Type:</dt><dd>2 octets </dd> | |||
| <dt>Value:</dt><dd>38</dd> | ||||
| <dt>Length:</dt><dd>2 octets</dd> | ||||
| <dt>Value:</dt><dd>Variable based on the IPv4/IPv6 interface | ||||
| address. Length excludes the length of the Type and Length fields. For | ||||
| IPv4 interface addresses, the length will be 28 octets. In the case of | ||||
| an | ||||
| IPv6 address, the length will be 52 octets.</dd> | ||||
| <dt>Adj-Type:</dt><dd>1 octet</dd> | ||||
| <dt>Value:</dt><dd>Set to 1 when the Adjacency Segment is IPv4. Set to | ||||
| 2 when the Adjacency Segment is IPv6.</dd> | ||||
| <dt>RESERVED:</dt><dd>3 octets. <bcp14>MUST</bcp14> be zero when | ||||
| sending and ignored on receiving.</dd> | ||||
| <dt>Local AS Number:</dt><dd>4 octets. The unsigned integer | ||||
| representing the AS number <xref target="RFC6793" format="default"/> | ||||
| of the AS to which the PeerAdj SID advertising node belongs. If | ||||
| Confederations <xref target="RFC5065" format="default"/> are in use, | ||||
| and if the remote node is a member of a different Member-AS within the | ||||
| local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</dd> | ||||
| <dt>Remote AS Number:</dt><dd>4 octets. The unsigned integer | ||||
| representing the AS number <xref target="RFC6793" format="default"/> of | ||||
| the remote node's AS for which the PeerAdj SID is advertised. If | ||||
| Confederations <xref target="RFC5065" format="default"/> are in use, | ||||
| and if the remote node is a member of a different Member-AS within the | ||||
| local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</dd> | ||||
| <dt>Local BGP Router ID:</dt><dd>4 octets. The unsigned integer | ||||
| representing the BGP Identifier of the PeerAdj SID advertising node as | ||||
| defined in <xref target="RFC4271" format="default"/> and <xref | ||||
| target="RFC6286" format="default"/>.</dd> | ||||
| <dt>Remote BGP Router ID:</dt><dd>4 octets. Unsigned integer | ||||
| representing the BGP Identifier of the remote node as defined in <xref | ||||
| target="RFC4271" format="default"/> and <xref target="RFC6286" | ||||
| format="default"/>.</dd> | ||||
| 0 1 2 3 | <!--[rfced] We believe that the slash indicates "or" in these | |||
| 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 | instances, so we updated accordingly for clarity. If that is not | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | correct or desired, please let us know. | |||
| |Type = TBD1 | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Adj-Type | RESERVED | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local BGP router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local Interface address (4/16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote Interface address (4/16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| </artwork> | Original: | |||
| </figure> | Local Interface Address :4 octets/16 octets | |||
| <t>Type : 2 octets </t> | ||||
| <t> Value: TBD1</t> | ||||
| <t>Length : 2 octets</t> | Remote Interface Address :4 octets/16 octets | |||
| <t> Value: variable based on IPv4/IPv6 interfac | ||||
| e address. | ||||
| Length excludes the length of Type and Length | ||||
| fields.For IPv4 interface addresses length will | ||||
| be 28 octets. In case of IPv6 address length will | ||||
| be | ||||
| 52 octets.</t> | ||||
| <t>Adj-Type : 1 octet</t> | ||||
| <t> Value: Set to 1 when the Adjacency Segment | ||||
| is IPv4 | ||||
| Set to 2 when the Adjacency Segment is IPv6 | ||||
| </t> | ||||
| <t> RESERVED : 3 octets. MUST be zero when sending, and ig | ||||
| nored on receiving.</t> | ||||
| <t>Local AS Number : 4 octets</t> | ||||
| <t>The unsigned integer representing the AS number <xref target ='RFC679 | ||||
| 3'/> of the AS to which the PeerAdj SID advertising | ||||
| node belongs. If Confederations <xref target ='RFC5065'/> are in | ||||
| use, and if the | ||||
| remote node is a member of a different Member-AS within the local | ||||
| Confederation, this is the Member-AS Number inside the Confederat | ||||
| ion | ||||
| and not the Confederation Identifier.</t> | ||||
| <t>Remote AS Number : 4 octets</t> | ||||
| <t>The unsigned integer representing the AS number<xref target ='RFC | ||||
| 6793'/> of the AS of the remote node for which the | ||||
| PeerAdj SID is advertised. If Confederations <xref target ='RFC50 | ||||
| 65'/> are in use, | ||||
| and if the remote node is a member of a different Member-AS withi | ||||
| n | ||||
| the local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</t> | ||||
| <t>Local BGP Router ID : 4 octets </t> | ||||
| <t> unsigned integer representing the | ||||
| BGP Identifier of the PeerAdj SID advertising node as def | ||||
| ined in | ||||
| <xref target ='RFC4271'/> and <xref target ='RFC6286'/>. | ||||
| </t> | ||||
| <t>Remote BGP Router ID : 4 octets </t> | ||||
| <t> unsigned integer representing | ||||
| the BGP Identifier of the remote node | ||||
| as defined in <xref target ='RFC4271'/> and <xref target ='RFC628 | ||||
| 6'/>. </t> | ||||
| <t>Local Interface Address :4 octets/16 octets</t> | ||||
| <t>In case of PeerAdj SID, Local interface address corresponding | ||||
| to the PeerAdj SID should be specified in this field. | ||||
| For IPv4,this field is 4 octets; for IPv6, this field is 16 | ||||
| octets. | ||||
| Link-local IPv6 addresses are not in the scope of this d | ||||
| ocument.</t> | ||||
| <t>Remote Interface Address :4 octets/16 octets</t> | Current: | |||
| <t>In case of PeerAdj SID Remote interface address corresponding | Local Interface Address: 4 octets or 16 octets | |||
| to the PeerAdj SID should be apecified in this field. For IPv4, | ||||
| this field is 4 octets; for IPv6, this field is 16 | ||||
| octets. | ||||
| Link-local IPv6 addresses are not in the scope of this d | ||||
| ocument..</t> | ||||
| <t><xref target ='RFC9086'/> mandates sending | Remote Interface Address: 4 octets or 16 octets | |||
| local interface ID and remote interface ID in the Link Descriptors and a | --> | |||
| llows | ||||
| a value of 0 in the remote descriptors. It is useful to validate the | ||||
| incoming interface for an OAM packet and if the remote descriptor is 0 | ||||
| this validation is not possible. | ||||
| <xref target ='RFC9086'/> allows optional | ||||
| link descriptors of local and remote interface addresses as | ||||
| described in section 4.2. This document RECOMMENDs sending these option | ||||
| al | ||||
| descriptors and using them to validate incoming interface. When these | ||||
| local and remote interface addresses are not available, an ingress | ||||
| node can send 0 in the local and/or remote interface address field. | ||||
| The receiver SHOULD skip the validation for the incoming interface | ||||
| if the address field contains 0.</t> | ||||
| </section> | <dt>Local Interface Address:</dt><dd>4 octets or 16 octets. In the case | |||
| of | ||||
| PeerAdj SID, the Local interface address corresponding to the PeerAdj SI | ||||
| D | ||||
| should be specified in this field. For IPv4, this field is 4 octets; | ||||
| for IPv6, this field is 16 octets. Link-local IPv6 addresses are not | ||||
| in the scope of this document.</dd> | ||||
| <dt>Remote Interface Address:</dt><dd>4 octets or 16 octets. In the | ||||
| case of PeerAdj SID, the Remote interface address corresponding to the | ||||
| PeerAdj SID should be specified in this field. For IPv4, this field | ||||
| is 4 octets; for IPv6, this field is 16 octets. Link-local IPv6 | ||||
| addresses are not in the scope of this document.</dd> | ||||
| </dl> | ||||
| <section anchor='peer_set_sid' title='PeerSet SID Sub-TLV'> | <t><xref target="RFC9086" format="default"/> mandates sending a local | |||
| <figure anchor="peer_set_sid_tlv" title="PeerSet SID Sub-TLV"> | interface ID and remote interface ID in the Link Descriptors and | |||
| allows a value of 0 in the remote descriptors. It is useful to | ||||
| validate the incoming interface for an OAM packet, but if the remote | ||||
| descriptor is 0, this validation is not possible. | ||||
| <artwork> | <!-- [rfced] FYI - For conciseness, we updated this sentence as | |||
| follows. Please let us know if there is any objection. | ||||
| 0 1 2 3 | Original: | |||
| 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 | [RFC9086] allows optional link descriptors of local and | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | remote interface addresses as described in section 4.2. | |||
| |Type = TBD3 | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local BGP router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | No.of elements in set | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | ||||
| One element in set consists of below details | Current: | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Optional link descriptors of local and remote interface | |||
| | Remote AS Number (4 octets) | | addresses are allowed as described in Section 4.2 of [RFC9086]. | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | --> | |||
| | Remote BGP Router ID (4 octets) | | ||||
| ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | ||||
| </artwork> | Optional link descriptors | |||
| </figure> | of local and remote interface addresses are allowed as described in <xre | |||
| <t>Type : 2 octets </t> | f | |||
| <t> Value: TBD3</t> | target="RFC9086" sectionFormat="of" section="4.2"/>. | |||
| <t>Length : 2 octets </t> | ||||
| <t> Value: Expressed in octets and variable base | ||||
| d on the number of | ||||
| elements in the set. The length field | ||||
| does not include the length of | ||||
| Type and Length fields.</t> | ||||
| <t>Local AS Number :4 octets </t> | <!-- [rfced] FYI - Since "RECOMMENDED", not "RECOMMENDS", is a BCP 14 | |||
| <t>The unsigned integer representing the AS number <xref target ='RFC | key word, we rephrased the text as shown below. | |||
| 6793'/> of the AS to which the PeerSet SID advertising | ||||
| node belongs. If Confederations <xref target ='RFC5065'/> are in | ||||
| use, and if the | ||||
| remote node is a member of a different Member-AS within the local | ||||
| Confederation, this is the Member-AS Number inside the Confederat | ||||
| ion | ||||
| and not the Confederation Identifier.</t> | ||||
| <t>Local BGP Router ID : 4 octets </t> | ||||
| <t> unsigned integer representing | ||||
| the BGP Identifier of the PeerSet SID advertising node as defined in | ||||
| <xref target ='RFC4271'/> and <xref target ='RFC6286'/>. | ||||
| </t> | ||||
| <t>No.of elements in set: 2 octets</t> | ||||
| <t> The number of remote ASes over | ||||
| which the set SID performs load balancin | ||||
| g.</t> | ||||
| <t> Reserved : 2 octets. MUST be zero when sent and ignored when | ||||
| received.</t> | ||||
| <t>Remote AS Number : 4 octets </t> | Original: | |||
| <t>The unsigned integer representing the AS number <xref target ='RF | This document RECOMMENDs sending these optional descriptors and using | |||
| C6793'/> of the AS of the remote node for which the | them to validate incoming interface. | |||
| PeerSet SID is advertised. If Confederations <xref target ='RFC50 | ||||
| 65'/> are in use, | ||||
| and if the remote node is a member of a different Member-AS withi | ||||
| n | ||||
| the local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</t> | ||||
| <t>Remote BGP Router ID : 4 octets </t> | Current: | |||
| <t>unsigned integer representing | In this document, it is RECOMMENDED to send these optional descriptors | |||
| the BGP Identifier of the remote node | and use them to validate incoming interfaces. | |||
| as defined in <xref target ='RFC4271'/> and <xref target | --> | |||
| ='RFC6286'/>. </t> | ||||
| <t>PeerSet SID may be associated with a number of PeerNode | In this document, it is | |||
| SIDs and PeerAdj SIDs. The remote AS number and the Router ID of each o | <bcp14>RECOMMENDED</bcp14> to send these optional descriptors and use th | |||
| f these PeerNode SIDs | em to | |||
| PeerAdj SIDs MUST be included in the FEC.</t> | validate incoming interfaces. When these local and remote interface | |||
| addresses are not available, an ingress node can send 0 in the local | ||||
| and/or remote interface address field. The receiver | ||||
| <bcp14>SHOULD</bcp14> skip the validation for the incoming interface | ||||
| if the address field contains 0.</t> | ||||
| </section> | ||||
| <section anchor="peer_set_sid" numbered="true" toc="default"> | ||||
| </section> | <!--[rfced] Is it intentional that instances of "No.of" do not contain | |||
| a space? Please let us know if this should remain as is or if a | ||||
| space can be added (e.g., "No. of"). Note that there are seven | ||||
| occurrences. | ||||
| </section> | Two examples (see the text for more): | |||
| <section anchor="validation" title="EPE-SID FEC validation"> | Original: | |||
| <t> | No.of elements in set | |||
| When a remote ASBR of the EPE-SID advertisement receives the MPLS | ||||
| OAM packet with top FEC being the EPE-SID, | ||||
| it MUST perform validity checks on the | ||||
| content of the EPE-SID FEC sub-TLV. | ||||
| The basic length check should be performed on the received FEC. | ||||
| <figure anchor="length_check" title="Length Validation"> | Length = (20 + No.of IPv4 interface pairs * 8 | |||
| <artwork> | Perhaps: | |||
| No. of elements in set | ||||
| Length = (20 + No. of IPv4 interface pairs * 8 | ||||
| --> | ||||
| <name>PeerSet SID Sub-TLV</name> | ||||
| <figure anchor="peer_set_sid_tlv"> | ||||
| <name>PeerSet SID Sub-TLV</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| 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 = 40 | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local BGP Router ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | No.of elements in set | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| One element in set consists of the details below | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote AS Number (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote BGP Router ID (4 octets) | | ||||
| </figure> | ||||
| <dl> | ||||
| <dt>Type:</dt><dd>2 octets</dd> | ||||
| <dt>Value:</dt><dd>40</dd> | ||||
| <dt>Length:</dt><dd>2 octets</dd> | ||||
| <!--[rfced] Should "variable" be singular (option A) or plural | ||||
| (option B) in the following sentence? | ||||
| Original: | ||||
| Value: Expressed in octets and variable based on the number of | ||||
| elements in the set. | ||||
| Perhaps A: | ||||
| Value: Expressed in octets and a variable based on the number of | ||||
| elements in the set. | ||||
| or | ||||
| Perhaps B: | ||||
| Value: Expressed in octets and variables based on the number of | ||||
| elements in the set. | ||||
| --> | ||||
| <dt>Value:</dt><dd>Expressed in octets and variable based on the | ||||
| number of elements in the set. The length field does not include the | ||||
| length of Type and Length fields.</dd> | ||||
| <dt>Local AS Number:</dt><dd>4 octets. The unsigned integer | ||||
| representing the AS number <xref target="RFC6793" format="default"/> | ||||
| of the AS to which the PeerSet SID advertising node belongs. If | ||||
| Confederations <xref target="RFC5065" format="default"/> are in use, | ||||
| and if the remote node is a member of a different Member-AS within the | ||||
| local Confederation, this is the Member-AS Number inside the | ||||
| Confederation and not the Confederation Identifier.</dd> | ||||
| <dt>Local BGP Router ID:</dt><dd>4 octets. The unsigned integer | ||||
| representing the BGP Identifier of the PeerSet SID advertising node, as | ||||
| defined in <xref target="RFC4271" format="default"/> and <xref | ||||
| target="RFC6286" format="default"/>. </dd> | ||||
| <dt>No.of elements in set:</dt><dd>2 octets. The number of remote | ||||
| ASes over which the set SID performs load-balancing.</dd> | ||||
| <dt>Reserved:</dt><dd>2 octets. <bcp14>MUST</bcp14> be zero when sent | ||||
| and ignored when received.</dd> | ||||
| <dt>Remote AS Number:</dt><dd>4 octets. The unsigned integer | ||||
| representing the AS number <xref target="RFC6793" format="default"/> | ||||
| of the remote node's AS for which the PeerSet SID is | ||||
| advertised. If Confederations <xref target="RFC5065" | ||||
| format="default"/> are in use, and if the remote node is a member of a | ||||
| different Member-AS within the local Confederation, this is the | ||||
| Member-AS Number inside the Confederation and not the Confederation | ||||
| Identifier.</dd> | ||||
| <dt>Remote BGP Router ID:</dt><dd>4 octets. The unsigned integer | ||||
| representing the BGP Identifier of the remote node as defined in <xref | ||||
| target="RFC4271" format="default"/> and <xref target="RFC6286" | ||||
| format="default"/>. </dd> | ||||
| </dl> | ||||
| <t>PeerSet SID may be associated with a number of PeerNode | ||||
| SIDs and PeerAdj SIDs. The remote AS number and the Router ID of each o | ||||
| f these PeerNode SIDs and PeerAdj SIDs <bcp14>MUST</bcp14> be included in the FE | ||||
| C.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="validation" numbered="true" toc="default"> | ||||
| <name>EPE-SID FEC Validation</name> | ||||
| <t>When a remote ASBR of the EPE-SID advertisement receives the MPLS OAM | ||||
| packet with the top FEC being the EPE-SID, it <bcp14>MUST</bcp14> | ||||
| perform validity checks on the content of the EPE-SID FEC sub-TLV. The | ||||
| basic length check should be performed on the received FEC.</t> | ||||
| <figure anchor="length_check"> | ||||
| <name>Length Validation</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| PeerAdj SID | PeerAdj SID | |||
| ----------- | ----------- | |||
| if Adj type = 1 Length should be 28 octets | If Adj type = 1, Length should be 28 octets | |||
| If Adj type =2 Length should be 52 octets | If Adj type = 2, Length should be 52 octets | |||
| PeerNode SID | PeerNode SID | |||
| ------------- | ------------- | |||
| Length = ( 20 + No.of IPv4 interface pairs * 8 + | Length = (20 + No.of IPv4 interface pairs * 8 + | |||
| No.of IPv6 interface pairs * 32 ) octets | No.of IPv6 interface pairs * 32) octets | |||
| PeerSet SID | PeerSet SID | |||
| ----------- | ----------- | |||
| Length = (9 + No.of elements in the set * | Length = (9 + No.of elements in the set * | |||
| (8 + No.of IPv4 interface pairs * 8 + | (8 + No.of IPv4 interface pairs * 8 + | |||
| No.of IPv6 interface pairs * 32)) octets | No.of IPv6 interface pairs * 32) octets]]></artwork> | |||
| </figure> | ||||
| </artwork> | <t>If a malformed FEC sub-TLV is received, then a return code of 1, | |||
| </figure> | "Malformed echo request received", as defined in <xref target="RFC8029" | |||
| </t> | format="default"/> <bcp14>MUST</bcp14> be sent. The section below is | |||
| <t> | appended to the procedure given in step 4a of <xref target="RFC8287" | |||
| If a malformed FEC sub-TLV | sectionFormat="of" section="7.4"/>. | |||
| is received, then a return code of | </t> | |||
| 1, "Malformed echo request received" as defined in <xref target="RFC8029"/> | ||||
| MUST be sent. The below section is appended to the procedure given in Secti | ||||
| on 7.4 | ||||
| point 4a of <xref target="RFC8287"/>. | ||||
| </t> | ||||
| <section anchor="fec_validation" title="EPE-SID FEC validiation"> | ||||
| <t> | ||||
| <t> Segment Routing IGP-Prefix, IGP-Adjacency SID and EPE-SID Validation | <!-- [rfced] We notice that the titles of Sections 5 and 5.1 are the | |||
| : | same. How may we update these to avoid confusion? Is Section 5.1 | |||
| Receiving node term used in this section implies the node that receives | perhaps the example validation, e.g., "EPE-SID FEC Validation | |||
| OAM message | Examples" (option A) or "Segment Routing IGP-Prefix, IGP-Adjacency | |||
| with the FEC stack TLV.</t> | SID, and EPE-SID Validation Examples (option B)? | |||
| <artwork> | ||||
| Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV | ||||
| at FEC-stack-depth is TBD1 (PeerAdj SID sub-TLV), { | ||||
| Set the Best-return-code to 10, "Mapping for this FEC is not | Original: | |||
| the given label at stack-depth if any below | 5. EPE-SID FEC validation | |||
| conditions fail: | 5.1. EPE-SID FEC validation | |||
| - Validate that the receiving node's BGP Local AS matches | Perhaps A: | |||
| with the remote AS field in the received PeerAdj SID | 5. EPE-SID FEC Validation | |||
| FEC sub-TLV. | 5.1. EPE-SID FEC Validation Examples | |||
| - Validate that the receiving node's BGP Router-ID | or | |||
| matches with the Remote Router ID field in the | ||||
| received PeerAdj SID FEC. | ||||
| - Validate that there is a EBGP session with a peer | Perhaps B: | |||
| having local AS number and BGP Router-ID as | 5. EPE-SID FEC Validation | |||
| specified in the Local AS number and Local Router-ID | 5.1. Segment Routing IGP-Prefix, IGP-Adjacency SID, | |||
| field in the received PeerAdj SID FEC sub-TLV. | and EPE-SID Validation Examples | |||
| --> | ||||
| If the Remote interface address is not zero, validate the | <!--[rfced] Section 5.1. | |||
| incoming interface. | ||||
| Set the Best-return-code to 35 "Mapping for this FEC is not | ||||
| associated with the incoming interface" [RFC8287] if any below | ||||
| conditions fail: | ||||
| - Validate the incoming interface on which the OAM | a) Please let us know how we may clarify the first sentence | |||
| packet was receieved, matches with the remote | in this section. Are Segment Routing IGP-Prefix, IGP-Adjacency | |||
| interface specified in the PeerAdj SID FEC sub-TLV | SID, and EPE-SID being validated, and is the term "receiving node" | |||
| implying that the node received the OAM message as shown below? | ||||
| If all above validations have passed, set the return code to 3 | Original: | |||
| "Replying router is an egress for the FEC at stack-depth" | Segment Routing IGP-Prefix, IGP-Adjacency SID and EPE-SID Validation: | |||
| } | Receiving node term used in this section implies the node that | |||
| receives OAM message with the FEC stack TLV. | ||||
| Else, if the Target FEC sub-TLV at FEC-stack-depth is TBD2 | Perhaps: | |||
| (PeerNode SID sub-TLV), { | This is an example of Segment Routing IGP-Prefix, IGP-Adjacency SID, and | |||
| EPE-SID validations. Note that the term "receiving node" in this section | ||||
| implies that the node receives the OAM message with the FEC stack TLV. | ||||
| Set the Best-return-code to 10, "Mapping for this FEC is not | b) For clarity, may we update "If any below conditions fail" to "Check if any | |||
| the given label at stack-depth if any below | conditions below fail" (note that there are 4 instances)? | |||
| conditions fail: | ||||
| Original: | ||||
| If any below conditions fail: | ||||
| - Validate that the receiving node's BGP... | ||||
| Perhaps: | ||||
| Check if any conditions below fail: | ||||
| - Validate that the receiving node's BGP... | ||||
| c) Should the text reflect "the receiving node's BGP" or | ||||
| "the Receiving Node BGP" for consistency (note that there | ||||
| are multiple instances)? | ||||
| d) Should "the remote AS field" or "one of the remote AS | ||||
| fields" be used for consistency? | ||||
| Original: | ||||
| - Validate that the receiving node's BGP Local AS matches | ||||
| with the remote AS field in the received PeerNode SID | ||||
| FEC sub-TLV. | ||||
| - Validate that the Receiving Node BGP Local AS matches | ||||
| with one of the remote AS field in the received | ||||
| PeerSet SID FEC sub-TLV. | ||||
| e) Should citations be included for return codes 3 and 10? Should | ||||
| "<RSC>" be added to the descriptions to match how they appear in | ||||
| RFC 8029? | ||||
| Original: | ||||
| Set the Best-return-code to 10, "Mapping for this FEC is not | ||||
| the given label at stack-depth". If any below conditions fail: | ||||
| If all above validations have passed, set the return code to 3, | ||||
| "Replying router is an egress for the FEC at stack-depth". | ||||
| Perhaps: | ||||
| Set the Best-return-code to 10, "Mapping for this FEC is not | ||||
| the given label at stack-depth <RSC>" [RFC8029]. If any below | ||||
| conditions fail: | ||||
| If all above validations have passed, set the return code to 3, | ||||
| "Replying router is an egress for the FEC at stack-depth <RSC>" | ||||
| [RFC8029]. | ||||
| --> | ||||
| <section anchor="fec_validation" numbered="true" toc="default"> | ||||
| <name>EPE-SID FEC Validation</name> | ||||
| <t>Segment Routing IGP-Prefix, IGP-Adjacency SID, and EPE-SID Validatio | ||||
| n: | ||||
| Receiving node term used in this section implies the node that receives | ||||
| OAM message | ||||
| with the FEC stack TLV.</t> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV | ||||
| at FEC-stack-depth is 38 (PeerAdj SID sub-TLV), { | ||||
| Set the Best-return-code to 10, "Mapping for this FEC is not | ||||
| the given label at stack-depth". If any below conditions fail: | ||||
| - Validate that the receiving node's BGP Local AS matches | - Validate that the receiving node's BGP Local AS matches | |||
| with the remote AS field in the | with the remote AS field in the received PeerAdj SID | |||
| received PeerNode SID FEC sub-TLV. | FEC sub-TLV. | |||
| - Validate that the receiving node's BGP Router-ID matches | - Validate that the receiving node's BGP Router-ID | |||
| with the Remote Router ID field in the received | matches with the Remote Router ID field in the | |||
| PeerNode SID FEC. | received PeerAdj SID FEC. | |||
| - Validate that there is a EBGP session with a peer | - Validate that there is an EBGP session with a peer | |||
| having local AS number and BGP Router-ID as | having a local AS number and BGP Router-ID as | |||
| specified in the Local AS number and Local Router-ID | specified in the Local AS number and Local Router-ID | |||
| field in the received PeerNode SID FEC sub-TLV. | field in the received PeerAdj SID FEC sub-TLV. | |||
| If all above validations have passed, set the return code to 3 | If the Remote interface address is not zero, validate the | |||
| "Replying router is an egress for the FEC at stack-depth". | incoming interface. Set the Best-return-code to 35, | |||
| "Mapping for this FEC is not associated with the incoming | ||||
| interface" [RFC8287]. If any below conditions fail: | ||||
| - Validate that the incoming interface on which the | ||||
| OAM packet was received matches with the remote | ||||
| interface specified in the PeerAdj SID FEC sub-TLV. | ||||
| If all above validations have passed, set the return code to 3, | ||||
| "Replying router is an egress for the FEC at stack-depth". | ||||
| } | } | |||
| Else, if the Target FEC sub-TLV at FEC-stack-depth is TBD3 | ||||
| (PeerSet SID sub-TLV), { | ||||
| Set the Best-return-code to 10, "Mapping for this FEC is not | Else, if the Target FEC sub-TLV at FEC-stack-depth is 39 | |||
| the given label at stack-depth" if any below | (PeerNode SID sub-TLV), { | |||
| conditions fail: | ||||
| - Validate that the Receiving Node BGP Local AS matches | Set the Best-return-code to 10, "Mapping for this FEC is not | |||
| with one of the remote AS field in the received PeerSet | the given label at stack-depth". If any below conditions | |||
| SID FEC sub-TLV. | fail: | |||
| - Validate that the Receiving Node BGP Router-ID matches | - Validate that the receiving node's BGP Local AS matches | |||
| with one of the Remote Router ID field in the received | with the remote AS field in the received PeerNode SID | |||
| PeerSet SID FEC sub-TLV. | FEC sub-TLV. | |||
| - Validate that there is a EBGP session with a peer having | - Validate that the receiving node's BGP Router-ID matches | |||
| local AS number and BGP Router-ID as | with the Remote Router ID field in the received | |||
| specified in the Local AS number and Local Router-ID | PeerNode SID FEC. | |||
| field in the received PeerSet SID FEC sub-TLV. | ||||
| If all above validations have passed, set the return code to 3 | - Validate that there is an EBGP session with a peer | |||
| "Replying router is an egress for the FEC at stack-depth" | having a local AS number and BGP Router-ID as | |||
| } | specified in the Local AS number and Local Router-ID | |||
| </artwork> | field in the received PeerNode SID FEC sub-TLV. | |||
| </t> | If all above validations have passed, set the return code to 3, | |||
| </section> | "Replying router is an egress for the FEC at stack-depth". | |||
| } | ||||
| Else, if the Target FEC sub-TLV at FEC-stack-depth is 40 | ||||
| (PeerSet SID sub-TLV), { | ||||
| </section> | Set the Best-return-code to 10, "Mapping for this FEC is not | |||
| <section anchor="IANA" title="IANA Considerations"> | the given label at stack-depth". If any below conditions | |||
| <t>IANA is requested to allocate three new Target FEC stack sub-TLVs | fail: | |||
| from the "Sub-TLVs for TLV types 1,16 and 21" subregistry in the | ||||
| "TLVs" registry of the "Multi-Protocol Label switching (MPLS) | ||||
| Label Switched Paths (LSPs) Ping parameters" namespace. | ||||
| <list> | - Validate that the Receiving Node BGP Local AS matches | |||
| <t>PeerAdj SID Sub-TLV : TBD1</t> | with one of the remote AS fields in the received | |||
| <t>PeerNode SID Sub-TLV: TBD2</t> | PeerSet SID FEC sub-TLV. | |||
| <t>PeerSet SID Sub-TLV : TBD3</t> | ||||
| </list> | ||||
| The three lowest free values from the Standard Tracks range should be | ||||
| allocated if possible. | ||||
| </t> | - Validate that the Receiving Node BGP Router-ID matches | |||
| with one of the Remote Router ID fields in the | ||||
| received PeerSet SID FEC sub-TLV. | ||||
| </section> | - Validate that there is an EBGP session with a peer having | |||
| <section title='Security Considerations' anchor='sec-con'> | a local AS number and BGP Router-ID as specified in the | |||
| <t>The EPE-SIDs are advertised for egress links for Egress Peer Engineering | Local AS number and Local Router-ID fields in the received | |||
| purposes or for inter-AS links between co-operating ASes. | PeerSet SID FEC sub-TLV. | |||
| When co-operating domains are involved, they can allow the packets | ||||
| If all above validations have passed, set the return code to 3, | ||||
| "Replying router is an egress for the FEC at stack-depth". | ||||
| }]]></artwork> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <!-- [rfced] We have included some specific questions about the IANA | ||||
| text below. In addition to responding to those questions, please | ||||
| review all of the IANA-related updates carefully and let us know | ||||
| if any further updates are needed. | ||||
| a) It appears that the "IANA Considerations" section references the | ||||
| "Sub-TLVs for TLV Types 1, 16, and 21" registry in the "Multiprotocol | ||||
| Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" | ||||
| registry group, but it does not include a citation for this registry | ||||
| here or in the references section. | ||||
| May we add the following citation as a normative or informative | ||||
| reference as shown below? | ||||
| Original: | ||||
| IANA is requested to allocate three new Target FEC stack sub-TLVs | ||||
| from the "Sub-TLVs for TLV types 1,16 and 21" subregistry in the | ||||
| "TLVs" registry of the "Multi-Protocol Label switching (MPLS) Label | ||||
| Switched Paths (LSPs) Ping parameters" namespace. | ||||
| Perhaps: | ||||
| IANA has allocated three new Target FEC stack sub-TLVs in the | ||||
| "Sub-TLVs for TLV Types 1, 16, and 21" registry | ||||
| [IANA-MPLS-LSP-PING-Parameters] within the "TLVs" registry of the | ||||
| "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) | ||||
| Ping Parameters" registry group. | ||||
| Reference: | ||||
| [IANA-MPLS-LSP-PING-Parameters] | ||||
| IANA, "Sub-TLVs for TLV Types 1, 16, and 21", | ||||
| <https://www.iana.org/assignments/mpls-lsp-ping-parameters>. | ||||
| b) We have removed "Sub-TLV" from the entries in Tables 1 and 2 per | ||||
| IANA's note. Please let us know if "Sub-TLV" should be | ||||
| removed from any other instances in the running text for consistency. | ||||
| We note the following variations: | ||||
| PeerAdj SID | ||||
| PeerAdj SID FEC | ||||
| PeerAdj SID FEC sub-TLV | ||||
| PeerAdj SID Sub-TLV | ||||
| PeerAdj SID sub-TLV | ||||
| PeerSet SID sub-TLV | ||||
| PeerNode SID sub-TLV | ||||
| --> | ||||
| <t>IANA has allocated three new Target FEC stack sub-TLVs | ||||
| in the "Sub-TLVs for TLV Types 1, 16, and 21" registry | ||||
| within the "TLVs" registry of the "Multiprotocol Label Switching (MPLS) | ||||
| Label Switched Paths (LSPs) Ping Parameters" registry group. </t> | ||||
| <table> | ||||
| <name>Sub-TLVs for TLV Types 1, 16, and 21 Registry</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Sub-Type</th> | ||||
| <th>Sub-TLV Name</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>38</td> | ||||
| <td>PeerAdj SID</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>39</td> | ||||
| <td>PeerNode SID</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>40</td> | ||||
| <td>PeerSet SID</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| <section anchor="sec-con" numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t>The EPE-SIDs are advertised for egress links for EPE | ||||
| purposes or for inter-AS links between cooperating ASes. | ||||
| When cooperating domains are involved, they can allow the packets | ||||
| arriving on trusted interfaces to reach the control plane | arriving on trusted interfaces to reach the control plane | |||
| and get processed.</t> | and be processed.</t> | |||
| <t> When EPE-SIDs are created for egress | <t> When EPE-SIDs are created for egress | |||
| TE links where the neighbor AS is an independent entity, it may | TE links where the neighbor AS is an independent entity, it may | |||
| not allow packets arriving from external world to reach the | not allow the packets arriving from the external world to reach the | |||
| control plane. In such deployments MPLS OAM packets will be | control plane. In such deployments, the MPLS OAM packets will be | |||
| dropped by the neighboring AS that receives the MPLS OAM packet.</t> | dropped by the neighboring AS that receives the MPLS OAM packet.</t> | |||
| <t>In MPLS traceroute applications, when the AS boundary is | <t>In MPLS traceroute applications, when the AS boundary is | |||
| crossed with the EPE-SIDs, the FEC stack is changed. | crossed with the EPE-SIDs, the FEC stack is changed. | |||
| <xref target="RFC8287"/> does not mandate that the initiator | <xref target="RFC8287" format="default"/> does not mandate that the initi ator, | |||
| upon receiving an MPLS Echo Reply message that includes the | upon receiving an MPLS Echo Reply message that includes the | |||
| FEC Stack Change TLV with one or more of the original | FEC Stack Change TLV with one or more of the original | |||
| segments being popped remove a corresponding FEC(s) from | segments being popped, remove the corresponding FEC(s) from | |||
| the Target FEC Stack TLV in the next (TTL+1) traceroute | the Target FEC Stack TLV in the next (TTL+1) traceroute | |||
| request. </t> | request. </t> | |||
| <t>If an initiator does not remove the FECs belonging | <t>If an initiator does not remove the FECs belonging | |||
| to the previous AS that has traversed, it may expose the | to the previous AS that has traversed, it may expose the | |||
| internal AS information to the following AS being traversed in | internal AS information to the following AS being traversed in | |||
| traceroute. | the traceroute. | |||
| </t> | </t> | |||
| </section> | ||||
| </section> | </middle> | |||
| <section title='Implementation Status'> | <back> | |||
| <t> This section is to be removed before publishing as an RFC. | <displayreference target="I-D.ietf-idr-segment-routing-te-policy" to="SR-TE- | |||
| </t> | POLICY"/> | |||
| <t> | <references> | |||
| RFC-Editor: Please clean up the references cited by this section | <name>References</name> | |||
| before publication. | <references> | |||
| </t> | <name>Normative References</name> | |||
| <t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| This section records the status of known implementations of the | 287.xml"/> | |||
| protocol defined by this specification at the time of posting of this | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| Internet-Draft, and is based on a proposal described in | 029.xml"/> | |||
| <xref target ='RFC7942'/>. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
| The description of implementations in this section is intended to | 086.xml"/> | |||
| assist the IETF in its decision processes in progressing drafts to | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| RFCs. Please note that the listing of any individual implementation | 119.xml"/> | |||
| here does not imply endorsement by the IETF. Furthermore, no effort | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| has been spent to verify the information presented here that was | 174.xml"/> | |||
| supplied by IETF contributors. This is not intended as, and must not | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| be construed to be, a catalog of available implementations or their | 690.xml"/> | |||
| features. Readers are advised to note that other implementations may | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| exist. | 793.xml"/> | |||
| </t> | </references> | |||
| <section title='Juniper Networks'> | <references> | |||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 087.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 705.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 403.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 664.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 271.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 065.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 286.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 256.xml"/> | ||||
| <t>Juniper networks reported a prototype implementation of this draft.</t> | <!-- [Note to the RE] XML for the "Sub-TLVs for TLV Types 1, 16, and 21" | |||
| registry (Note: this reference needs a cite tag/reference anchor in the IANA Sec | ||||
| tion): | ||||
| </section> | <reference anchor="" target="https://www.iana.org/assignments/mpls-lsp-ping-para | |||
| </section> | meters"/> | |||
| <section title='Acknowledgments'> | <front> | |||
| <t>Thanks to Loa Andersson, Dhruv Dhody, Ketan Talaulikar, | <title>Sub-TLVs for TLV Types 1, 16, and 21</title> | |||
| Italo Busi and Alexander Vainshtein, Deepti Rathi for | <author> | |||
| careful review and comments. Thanks to Tarek Saad for providing the example | <organization>IANA</organization> | |||
| described in Appendix section. </t> | </author> | |||
| </section> | </front> | |||
| </reference> | ||||
| --> | ||||
| </middle> | <!-- [rfced] Since 'draft-ietf-idr-segment-routing-te-policy' | |||
| is expired and has been replaced by | ||||
| 'draft-ietf-idr-bgp-sr-segtypes-ext' and | ||||
| 'draft-ietf-idr-sr-policy-safi', may we replace the current | ||||
| reference entry with the entries for these two drafts? | ||||
| <back> | Note that this would include adding two reference tags to the | |||
| <references title='Normative References'> | text in Section 2. | |||
| &RFC8287; | ||||
| &RFC8029; | ||||
| &RFC9086; | ||||
| &RFC2119; | ||||
| &RFC8174; | ||||
| &RFC8690; | ||||
| &RFC6793; | ||||
| </references> | ||||
| <references title='Informative References'> | ||||
| &RFC9087; | ||||
| &RFC7705; | ||||
| &RFC8403; | ||||
| &RFC8664; | ||||
| &RFC4271; | ||||
| &RFC5065; | ||||
| &RFC6286; | ||||
| &RFC7942; | ||||
| &RFC9256; | ||||
| <?rfc include="reference.I-D.ietf-idr-segment-routing-te-policy"?> | ||||
| </references> | Original: | |||
| [SR-TE-POLICY] | ||||
| Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and | ||||
| D. Jain, "Advertising Segment Routing Policies in BGP", | ||||
| Work in Progress, Internet-Draft, draft-ietf-idr-segment- | ||||
| routing-te-policy-26, 23 October 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | ||||
| segment-routing-te-policy-26>. | ||||
| <section title='APPENDIX' anchor='APPENDIX'> | Perhaps: | |||
| <t> This section describes an example of correctly programmed state and incorr | [BGP-SR-SEGTYPES-EXT] | |||
| ectly | Talaulikar, K., Filsfils, C., Previdi, S., Mattes, P., and | |||
| programmed state and provides details on how the new sub-TLVs described in thi | D. Jain, "Segment Routing Segment Types Extensions for BGP | |||
| s | SR Policy", Work in Progress, Internet-Draft, draft-ietf- | |||
| document can be used to validate the correctness. | idr-bgp-sr-segtypes-ext-06, 7 November 2024, | |||
| Consider the diagram from <xref target ='reference_diagram'/>, | <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp- | |||
| <t>Correctly programed state:</t> | sr-segtypes-ext-06>. | |||
| <list> | ||||
| <t>• C assigns label 16001 and binds it to adjacency C->E </t> | [SR-BGP-POLICY] | |||
| <t>• C signals label 16001 is bound to adjacency C->E (e.g. via BGP-LS)</t> | Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and | |||
| <t>• Controller/Ingress programs an SR path that has SID/label 16001 | D. Jain, "Advertising Segment Routing Policies in BGP", | |||
| to steer packet on the exit point from C onto adjacency C->E</t> | Work in Progress, Internet-Draft, draft-ietf-idr-sr- | |||
| <t>• Using MPLS trace procedures defined in this document, the PeerAdj SID | policy-safi-10, 7 November 2024, | |||
| Sub-TLV is populates with entities to be validated by C when OAM packet reaches | <https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr- | |||
| it.</t> | policy-safi-10>. | |||
| <t>• C receives the OAM packet, it validates the top label (16001) | --> | |||
| is indeed corresponding to the entities populated in the PeerAdj SID Sub-TLV</t> | ||||
| </list> | <!--ietf-idr-segment-routing-te-policy; Expired --> | |||
| <t>Incorrectly programed state:</t> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| <list> | .ietf-idr-segment-routing-te-policy.xml"/> | |||
| <t>• C assigns label 16001 and binds it to adjacency C->D</t> | ||||
| <t>• The controller learns of PeerAdj SID label 16001 is bound to | </references> | |||
| adjacency C->E (e.g. via BGP-LS) – this could be a software bug on C or on contr | </references> | |||
| oller</t> | <section anchor="Appendix" numbered="true" toc="default"> | |||
| <t>• Controller/Ingress programs an SR path that has SID/label | ||||
| 16001 to steer packet on the exit point from C onto adjacency C->E</t> | <!-- [rfced] May we update the title of the appendix to avoid the | |||
| <t>• Using MPLS trace procedures defined in this document, the PeerAdj SID | repetition of "Appendix A: Appendix"? Perhaps "Examples of | |||
| Sub-TLV is populates with entities to be validated by C | Correctly and Incorrectly Programmed States" or "Examples of | |||
| (including local/remote interface address of C->E) when OAM packet reaches it.</ | Programmed States? | |||
| t> | ||||
| <t>• C receives the OAM packet, it validates the top label (16001) is NOT boun | Current: | |||
| d | Appendix A. Appendix | |||
| to C->E as populated in the PeerAdj SID Sub-TLV and can respond with the | ||||
| respective error code</t> | Perhaps: | |||
| </list> | Appendix A. Examples of Programmed States | |||
| </t> | --> | |||
| <name>Appendix</name> | ||||
| <t> This section describes examples of both a correctly and an | ||||
| incorrectly programmed state and provides details on how the new | ||||
| sub-TLVs described in this document can be used to validate the | ||||
| correctness. Consider the diagram from <xref target="reference_diagram" | ||||
| format="default"/>.</t> | ||||
| <t>Correctly programmed state:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>C assigns label 16001 and binds it to adjacency C->E </t> | ||||
| </li> | ||||
| <li> | ||||
| <t>C signals that label 16001 is bound to adjacency C->E (e.g., via | ||||
| BGP-LS)</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>The controller/ingress programs an SR path that has SID/label 16001 | ||||
| to steer the packet on the exit point from C onto adjacency C->E</t | ||||
| > | ||||
| </li> | ||||
| <li> | ||||
| <t>Using MPLS trace procedures defined in this document, the PeerAdj | ||||
| SID Sub-TLV is populated with entities to be validated by C when the | ||||
| OAM packet reaches it</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>C receives the OAM packet and validates that the top label | ||||
| (16001) is indeed corresponding to the entities populated in the | ||||
| PeerAdj SID Sub-TLV</t> | ||||
| </li> | ||||
| </ul> | ||||
| <t>Incorrectly programmed state:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>C assigns label 16001 and binds it to adjacency C->D</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>The controller learns that PeerAdj SID label 16001 is bound to | ||||
| adjacency C->E (e.g., via BGP-LS) -- this could be a software bug | ||||
| on C or on the controller</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>The controller/ingress programs an SR path that has SID/label | ||||
| 16001 to steer the packet on the exit point from C onto adjacency | ||||
| C->E</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>Using MPLS trace procedures defined in this document, the PeerAdj | ||||
| SID Sub-TLV is populated with entities to be validated by C | ||||
| (including a local/remote interface address of C->E) when the OAM | ||||
| packet reaches it</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>C receives the OAM packet and validates that the top label | ||||
| (16001) is NOT bound to C->E as populated in the PeerAdj SID | ||||
| Sub-TLV and then responds with the respective error code</t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>Thanks to <contact fullname="Loa Andersson"/>, <contact | ||||
| fullname="Dhruv Dhody"/>, <contact fullname="Ketan Talaulikar"/>, | ||||
| <contact fullname="Italo Busi"/>, <contact fullname="Alexander | ||||
| Vainshtein"/>, and <contact fullname="Deepti Rathi"/> for careful reviews | ||||
| and | ||||
| comments. Thanks to <contact fullname="Tarek Saad"/> for providing the | ||||
| example described in <xref target="Appendix"/>.</t> | ||||
| </section> | ||||
| </back> | ||||
| <!-- [rfced] Terminology and Abbreviations | ||||
| a) Throughout the text, the following terminology appears to be capitalized | ||||
| inconsistently. Please review these occurrences and let us know if/how they | ||||
| may be made consistent. | ||||
| Adj-Type vs. Adj type | ||||
| Integer vs. integer | ||||
| Local AS number vs. local AS number | ||||
| Local interface vs. local interface | ||||
| Link Descriptors vs. link descriptors | ||||
| Remote interface vs. remote interface | ||||
| b) How may we make these terms consistent? For the case, we suggest | ||||
| capitalizing "Target" and "Stack" to match use in RFC 8287 and | ||||
| other past RFCs. | ||||
| Target FEC Stack TLV vs. | ||||
| Target FEC stack TLV vs. | ||||
| target FEC stack TLV vs. | ||||
| target FEC stack | ||||
| [Note: should the last instance contain "TLV"?] | ||||
| FEC stack TLV vs. | ||||
| FEC stack | ||||
| [Note: should "Target" be added to these instances? And | ||||
| should the last instance contain "TLV"?] | ||||
| Target FEC Stack sub-TLV vs. | ||||
| Target FEC stack sub-TLV vs. | ||||
| Target FEC sub-TLV | ||||
| [Note: should "Stack" be added to the last instance?] | ||||
| c) In the text, "Type 1" appears to have two different names. Are these meant | ||||
| to be the same or different? We see "Target FEC Stack TLV (Type 1)" in RFC 8287. | ||||
| Please let us know how/if we may update. Note that we recommend making "stack" | ||||
| uppercase for consistency. | ||||
| Abstract: | ||||
| MPLS Target stack TLV (Type 1) | ||||
| Section 4: | ||||
| Target FEC Stack TLV (Type 1) | ||||
| d) It appears that in past RFCs, the term "FEC stack-depth" is used instead of | ||||
| "FEC-stack-depth". Should we update to only one hyphen? | ||||
| e) We see "MPLS Ping and Traceroute procedures" and "ping or traceroute packets" | ||||
| in the running text. Should 1 instance of "MPLS traceroute procedure" perhaps be | ||||
| "MPLS Ping and Traceroute procedures" for consistency? | ||||
| Original: | ||||
| The data plane validation of the SID will be done during the | ||||
| MPLS traceroute procedure. | ||||
| Perhaps: | ||||
| The data plane validation of the SID will be done during the | ||||
| MPLS Ping and Traceroute procedures. | ||||
| f) FYI - We added expansions for the following abbreviations in the text. | ||||
| Please review for accuracy. | ||||
| ASN: Access Service Network | ||||
| BGP-LS: Border Gateway Protocol - Link State | ||||
| EBGP: External BGP | ||||
| OAM: Operations, Administration, and Maintenance | ||||
| --> | ||||
| <!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
| Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
| and let us know if any changes are needed. Updates of this nature typically | ||||
| result in more precise language, which is helpful for readers. | ||||
| Note that our script did not flag any words in particular, but this should | ||||
| still be reviewed as a best practice. | ||||
| --> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 103 change blocks. | ||||
| 751 lines changed or deleted | 1134 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||