<?xmlversion="1.0"?>version="1.0" encoding="utf-8"?> <!DOCTYPE rfcSYSTEM "rfc2629.dtd"[ <!ENTITYRFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">nbsp " "> <!ENTITYRFC8287 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8287.xml">zwsp "​"> <!ENTITYRFC8029 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8029.xml">nbhy "‑"> <!ENTITYRFC7705 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">wj "⁠"> ]><?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 xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-mpls-sr-epe-oam-19"ipr="trust200902">number="9703" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3"> <front> <!--[rfced] We updated "MPLS Data Plane" to "MPLS Data Planes" in the document title. If that is not correct and it should be singular, please let us know. We also added a hyphen to "EPE SIDs" in the abbreviated title that spans the PDF to match the running text. Original: (title) Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS Data Plane (short title) LSP for SR EPE SIDs with MPLS Current: (title) Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS Data Planes (short title) LSP for SR EPE-SIDs with MPLS --> <titleabbrev="EPE-OAM">Labelabbrev="LSP for SR EPE-SIDs with MPLS">Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS DataPlane</title>Planes</title> <seriesInfo name="RFC" value="9703"/> <author initials="S." surname="Hegde" fullname="Shraddha Hegde"> <organization>Juniper Networks Inc.</organization> <address> <postal> <street>Exora Business Park</street> <city>Bangalore</city><region>KA</region><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><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"> <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"> <organization>Ciena</organization> <address><postal> <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> <dateyear="2024"/> <area>Routing</area> <workgroup>Routing area</workgroup>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 Routingto solve(SR) that solves the problem of egress peer selection. TheSegment Routing basedSR-based BGP-EPE solution allows a centralized controller,e.g.e.g., aSoftware DefinedSoftware-Defined Network (SDN)controllercontroller, to program any egress peer. The EPE solution requires the node or the SDN controller to program 1) the PeerNode SegmentIdentifier(SID)Identifier (SID) describing a session between two nodes, 2) the PeerAdj SID describing the link(oneormore)links thatisare 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 forEPE Segment Identifiers (SID)EPE-SIDs thatwould beare used in the MPLS Target stack TLV (Type1),1) in MPLS Ping and Tracerouteprocedures. </t>procedures.</t> </abstract> </front> <middle> <sectiontitle="Introduction" anchor='intro'>anchor="intro" numbered="true" toc="default"> <name>Introduction</name> <t> Egress Peer Engineering(EPE)(EPE), as defined in <xreftarget ='RFC9087'/>target="RFC9087" format="default"/>, is an effective mechanism that is used to select the egress 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 oflinkslinks, and sets of nodes. Many network deployments have built their networks consisting of multiple AutonomousSystems,Systems (ASes) either for the ease of operations or as a result of network mergers and acquisitions. The inter-AS links connecting any twoAutonomous SystemsASes 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 bedetectedeasily detected by the network operator. EPE-SIDs may also be used in an ingressSRSegment Routing (SR) policy <xreftarget ='RFC9256'/>totarget="RFC9256" format="default"/> to choose exit points where the remote ASbelongs tohas a completely different ownership. This scenario is out of scopeoffor this document. </t><t><figureanchor="reference_diagram" title="Reference Diagram"> <artwork>anchor="reference_diagram"> <name>Reference Diagram</name> <!-- [rfced] FYI - In Figure 1, we updated "AS 2", "AS 3", and "AS 4" to have no spaces in order to match "AS1" in the diagram and "AS2" and "AS3" in the subsequent text. Please let us know if there is any objection. AS 2 > AS2 AS 3 > AS3 AS 4 > AS4 --> <artwork name="" type="" align="left" alt=""><![CDATA[ +---------+ +------+ | | | | | H B------D G | | +---/|AS 2AS2 |\ +------+ | |/ +------+ \ | |---L/8 A AS1 C---+ \| | | |\\ \ +------+ /|AS 4AS4 |---M/8 | | \\ +-E |/ +------+ | X | \\ | K | | +===FAS 3AS3 | +---------++------+ </artwork>+------+]]></artwork> </figure>In this reference diagram,<t>In <xref target="reference_diagram" format="default"/>, EPE-SIDs are configured on AS1 towards AS2 and AS3 and advertised inBGP-LSthe Border Gateway Protocol - Link State (BGP-LS) <xreftarget="RFC9086"/>.target="RFC9086" format="default"/>. In certaincasescases, the EPE-SIDs advertised by the control plane may not be in synchronization with the label programmed in the data plane. For example, onCC, a PeerAdj SID could be advertised to indicate it is for the linkC->D.C->D. Due to some software anomaly, the actual data forwarding on this PeerAdj SID could be happening over theC->EC->E link. If E had relevant data paths for further forwarding the packet, this kind of anomalywillwould 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 <xreftarget="APPENDIX"/>.target="Appendix" format="default"/>. AFECForwarding Equivalence Class (FEC) definition for the EPE-SIDs willdefine the details ofdetail 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-hopEBGPExternal BGP (EBGP) session between the ASBRs, a PeerNode SID is advertised, and the trafficMAY<bcp14>MAY</bcp14> be load-balanced between the interfaces connecting the two nodes. Inthe reference diagram,<xref target="reference_diagram" format="default"/>, C and F could have aPeerNode-SIDPeerNode SID advertised. When theOAMOperations, 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)stackStack TLV definitions for EPE-SIDs. This solution requiresthatthe node constructing the target FEC stackcanto determine thetypetypes oftheSIDs along the path of the LSP. Other procedures for MPLS Ping andTracerouteTraceroute, as defined in <xreftarget="RFC8287"/> section 7target="RFC8287" sectionFormat="of" section="7"/> and clarifiedbyin <xreftarget="RFC8690"/>target="RFC8690" format="default"/>, are applicable for EPE-SIDs as well.</t> </section> <sectiontitle="Theoryanchor="operation" numbered="true" toc="default"> <name>Theory ofOperation" anchor='operation'>Operation</name> <t><xreftarget ='RFC9086'/>target="RFC9086" format="default"/> provides mechanisms to advertise the EPE-SIDs in BGP-LS. <!--[rfced] Please clarify this sentence. Are SR paths built using either EPE-SIDs or PCEP extensions? Please let us know which option is preferred. 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]. Perhaps A: These EPE-SIDs may be used to build SR paths as described in [SR-TE-POLICY]], or Path Computation Element Protocol (PCEP) extensions as defined in [RFC8664] may be used. or Perhaps B: SR paths are built using these EPE-SIDs as described in [SR-TE-POLICY] or Path Computation Element Protocol (PCEP) extensions as defined in [RFC8664]. --> These EPE-SIDs may be used to build SR paths as described in <xreftarget ='I-D.ietf-idr-segment-routing-te-policy'/>target="I-D.ietf-idr-segment-routing-te-policy" format="default"/> or using Path Computation Element Protocol (PCEP) extensions as defined in <xreftarget="RFC8664"/>.target="RFC8664" format="default"/>. Data plane monitoring for such pathswhichthat consist of EPE-SIDs will use extensions defined in this document to build the Target FEC stack TLV. The MPLS Ping and Traceroute proceduresMAY<bcp14>MAY</bcp14> be initiated by the head-end of theSegment RoutingSR path or a centralized topology-aware data plane monitoringsystemsystem, as described in <xreftarget="RFC8403"/>.target="RFC8403" format="default"/>. <!--[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". Original: The extensions in [I-D.ietf-idr-segment-routing-te-policy] and [RFC8664] do not define how to carry the details of the SID that can be used to construct the FEC. Perhaps: 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. --> The extensions in <xreftarget ='I-D.ietf-idr-segment-routing-te-policy'/>target="I-D.ietf-idr-segment-routing-te-policy" format="default"/> and <xreftarget="RFC8664"/>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 ofthescope for this document. The node initiating the data plane monitoring may acquire the details of EPE-SIDs through BGP-LSadvertisementsadvertisements, as described in <xreftarget ='RFC9086'/>.target="RFC9086" format="default"/>. There may be other possible mechanisms that can be used 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 linkswhichthat run EBGP sessions. <xreftarget ='RFC9086'/>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 migrationscenarioscenario, procedures described in <xreftarget="RFC7705"/>target="RFC7705" format="default"/> may be in force. In these scenarios, if the local and remote AS fields in the FECas(as described in <xreftarget="FEC_definitions"/> carriestarget="FEC_definitions" format="default"/>) carry the globally configuredASNAccess Service Network (ASN) and not the "local AS"as(as defined in <xreftarget="RFC7705"/>,target="RFC7705" format="default"/>), then the FEC validation procedures may fail. </t><t> As<t>As described in <xreftarget="intro"/>,target="intro" format="default"/>, this document defines FEC stack TLVs forEPE-SIDs,EPE-SIDs that can be used in detecting MPLS data plane failures <xreftarget="RFC8029"/>.target="RFC8029" format="default"/>. This mechanism applies to paths created acrossacrossASes ofco-operatingcooperating administrations. If the ping or traceroute packet enters anon co-operatingnon-cooperating AS domain, it might be dropped by the routers in thenon co-operatingnon-cooperating domain. Although a complete path validation cannot be doneacross, non co-operatingacross non-cooperating domains, it still provides useful information that theping/tracerouteping or traceroute packet entered anon co-operatingnon-cooperating domain.</t> </section> <sectiontitle="Requirements Language">numbered="true" toc="default"> <name>Requirements Language</name> <t>The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<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"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14, <xreftarget="RFC2119"/>,target="RFC2119" format="default"/>, <xreftarget="RFC8174"/>target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here. </t> </section> <sectionanchor='FEC_definitions' title='FEC Definitions'>anchor="FEC_definitions" numbered="true" toc="default"> <name>FEC Definitions</name> <t>ThreeIn 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).</t><figure<!--[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? 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). - Table 1 - Perhaps: 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); see Table 1. --> <table anchor="sub_tlv"title="New sub-TLV types"> <artwork> Sub-Type Sub-TLV Name -------- --------------- TBD1 PeerAdj SID Sub-TLV TBD2 PeerNode SIDalign="center"> <name>New Sub-TLVTBD3 PeerSet SID Sub-TLV </artwork> </figure>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> <sectionanchor='peer_node_sid' title='PeerNodeanchor="peer_node_sid" numbered="true" toc="default"> <name>PeerNode SIDSub-TLV'>Sub-TLV</name> <figureanchor="peer_node_sid_tlv" title="PeerNodeanchor="peer_node_sid_tlv"> <name>PeerNode SIDSub-TLV"> <artwork>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 =TBD239 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local AS Number (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote AS Number (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local BGProuterRouter ID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote BGP Router ID (4 octets) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ </artwork>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure><t>Type : 2 octets </t> <t> Value:TBD2</t> <t>Length : 2 octets </t> <t> Value: 16 </t> <t>Local<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 ASNumber : 4 octets</t> <t>TheNumber:</dt><dd>4 octets. The unsigned integer representing the AS number <xreftarget ='RFC6793'/>target="RFC6793" format="default"/> of the AS to which the PeerNode SID advertising node belongs. If Confederations <xreftarget ='RFC5065'/>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 ConfederationIdentifier.</t> <t>RemoteIdentifier.</dd> <dt>Remote ASNumber : 4 octets</t> <t>TheNumber:</dt><dd>4 octets. The unsigned integer representing the AS number <xreftarget ='RFC6793'/>target="RFC6793" format="default"/> of the AS of the remote node for which the PeerNode SID is advertised. If Confederations <xreftarget ='RFC5065'/>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 ConfederationIdentifier.</t> <t>LocalIdentifier.</dd> <dt>Local BGP RouterID : 4 octets </t> <t>unsignedID:</dt><dd>4 octets. Unsigned integer representing the BGP Identifier of the PeerNode SID advertising node as defined in <xreftarget ='RFC4271'/>target="RFC4271" format="default"/> and <xreftarget ='RFC6286'/>. </t> <t>Remotetarget="RFC6286" format="default"/>. </dd> <dt>Remote BGP RouterID : 4 octets</t> <t>unsignedID:</dt><dd>4 octets. Unsigned integer representing the BGP Identifier of the remote node as defined in <xreftarget ='RFC4271'/>target="RFC4271" format="default"/> and <xreftarget ='RFC6286'/>. </t>target="RFC6286" format="default"/>. </dd> </dl> <t>When there is a multi-hop EBGP session between two ASBRs, a PeerNode SID is advertised for thissessionsession, and traffic can beload balancedload-balanced across these interfaces. An EPE controller thatdoesperforms bandwidth management for these links should be aware of the links on which the traffic will be load-balanced. <!--[rfced] Is "the OAM packet will be sent out" an example of what is specified? We updated this sentence as reflected below; if that is not correct, please let us know. Original: As per<xref target ='RFC8029'/>,[RFC8029], the node advertising the EPE SIDs will send Downstream Detailed MappingTLV(DDMAP TLV) specifying the details of nexthop interfaces, the OAM packet will be sent out. 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. --> 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 sent out. Based on thisinformationinformation, the controllerMAY<bcp14>MAY</bcp14> choose to verify the actual forwarding state with the topology information that the controller has. On the router, the validation procedures willinclude,include the received DDMAPvalidationvalidation, as specified in <xreftarget ='RFC8029'/>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 inthethis document.</t> </section> <sectionanchor='peer_adj_sid' title='PeerAdjanchor="peer_adj_sid" numbered="true" toc="default"> <name>PeerAdj SIDSub-TLV'>Sub-TLV</name> <figureanchor="peer_adj_sid_tlv" title="PeerAdjanchor="peer_adj_sid_tlv"> <name>PeerAdj SIDSub-TLV"> <artwork>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 =TBD138 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Adj-Type | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local AS Number (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote AS Number (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local BGProuterRouter ID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote BGP Router ID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local InterfaceaddressAddress (4/16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote InterfaceaddressAddress (4/16 octets) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ </artwork>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure><t>Type : 2<dl> <dt>Type:</dt><dd>2 octets</t> <t> Value: TBD1</t> <t>Length : 2 octets</t> <t> Value: variable</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 Lengthfields.Forfields. For IPv4 interfaceaddressesaddresses, the length will be 28 octets. In the case of an IPv6addressaddress, the length will be 52octets.</t> <t>Adj-Type : 1 octet</t> <t> Value: Setoctets.</dd> <dt>Adj-Type:</dt><dd>1 octet</dd> <dt>Value:</dt><dd>Set to 1 when the Adjacency Segment isIPv4IPv4. Set to 2 when the Adjacency Segment isIPv6</t> <t> RESERVED : 3IPv6.</dd> <dt>RESERVED:</dt><dd>3 octets.MUST<bcp14>MUST</bcp14> be zero whensending,sending and ignored onreceiving.</t> <t>Localreceiving.</dd> <dt>Local ASNumber : 4 octets</t> <t>TheNumber:</dt><dd>4 octets. The unsigned integer representing the AS number <xreftarget ='RFC6793'/>target="RFC6793" format="default"/> of the AS to which the PeerAdj SID advertising node belongs. If Confederations <xreftarget ='RFC5065'/>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 ConfederationIdentifier.</t> <t>RemoteIdentifier.</dd> <dt>Remote ASNumber : 4 octets</t> <t>TheNumber:</dt><dd>4 octets. The unsigned integer representing the ASnumber<xref target ='RFC6793'/> of the ASnumber <xref target="RFC6793" format="default"/> of the remotenodenode's AS for which the PeerAdj SID is advertised. If Confederations <xreftarget ='RFC5065'/>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 ConfederationIdentifier.</t> <t>LocalIdentifier.</dd> <dt>Local BGP RouterID : 4 octets </t> <t>ID:</dt><dd>4 octets. The unsigned integer representing the BGP Identifier of the PeerAdj SID advertising node as defined in <xreftarget ='RFC4271'/>target="RFC4271" format="default"/> and <xreftarget ='RFC6286'/>. </t> <t>Remotetarget="RFC6286" format="default"/>.</dd> <dt>Remote BGP RouterID : 4 octets </t> <t> unsignedID:</dt><dd>4 octets. Unsigned integer representing the BGP Identifier of the remote node as defined in <xreftarget ='RFC4271'/>target="RFC4271" format="default"/> and <xreftarget ='RFC6286'/>. </t> <t>Localtarget="RFC6286" format="default"/>.</dd> <!--[rfced] We believe that the slash indicates "or" in these instances, so we updated accordingly for clarity. If that is not correct or desired, please let us know. Original: Local Interface Address :4 octets/16octets</t> <t>Inoctets Remote Interface Address :4 octets/16 octets Current: Local Interface Address: 4 octets or 16 octets Remote Interface Address: 4 octets or 16 octets --> <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 SID should be specified in this field. ForIPv4,thisIPv4, this field is 4 octets; for IPv6, this field is 16 octets. Link-local IPv6 addresses are not in the scope of thisdocument.</t> <t>Remotedocument.</dd> <dt>Remote InterfaceAddress :4 octets/16 octets</t> <t>InAddress:</dt><dd>4 octets or 16 octets. In the case of PeerAdjSIDSID, the Remote interface address corresponding to the PeerAdj SID should beapecifiedspecified 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 thisdocument..</t>document.</dd> </dl> <t><xreftarget ='RFC9086'/>target="RFC9086" format="default"/> mandates sending a local 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 OAMpacket andpacket, but if the remote descriptor is00, this validation is not possible.<xref target ='RFC9086'/><!-- [rfced] FYI - For conciseness, we updated this sentence as follows. Please let us know if there is any objection. Original: [RFC9086] allows optional link descriptors of local and remote interface addresses as described in section 4.2. Current: Optional link descriptors of local and remote interface addresses are allowed as described in Section 4.2 of [RFC9086]. --> Optional link descriptors of local and remote interface addresses are allowed as described in <xref target="RFC9086" sectionFormat="of" section="4.2"/>. <!-- [rfced] FYI - Since "RECOMMENDED", not "RECOMMENDS", is a BCP 14 key word, we rephrased the text as shown below. Original: This document RECOMMENDs sending these optional descriptors and using them to validate incoming interface. Current: In this document, it is RECOMMENDED to send these optional descriptors and use them to validate incoming interfaces. --> In this document, it is <bcp14>RECOMMENDED</bcp14> to send these optional descriptors and use them to 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 receiverSHOULD<bcp14>SHOULD</bcp14> skip the validation for the incoming interface if the address field contains 0.</t> </section> <sectionanchor='peer_set_sid' title='PeerSetanchor="peer_set_sid" numbered="true" toc="default"> <!--[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. Two examples (see the text for more): Original: No.of elements in set Length = (20 + No.of IPv4 interface pairs * 8 Perhaps: No. of elements in set Length = (20 + No. of IPv4 interface pairs * 8 --> <name>PeerSet SIDSub-TLV'>Sub-TLV</name> <figureanchor="peer_set_sid_tlv" title="PeerSetanchor="peer_set_sid_tlv"> <name>PeerSet SIDSub-TLV"> <artwork>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 =TBD340 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local AS Number (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local BGProuterRouter 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 ofbelowthe details below +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote AS Number (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote BGP Router ID (4 octets) |++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ </artwork>++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++]]></artwork> </figure><t>Type : 2<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</t> <t>and variable based on the number of elements in the set. Perhaps A: Value:TBD3</t> <t>Length : 2Expressed in octets</t> <t>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 Lengthfields.</t> <t>Localfields.</dd> <dt>Local ASNumber :4 octets </t> <t>TheNumber:</dt><dd>4 octets. The unsigned integer representing the AS number <xreftarget ='RFC6793'/>target="RFC6793" format="default"/> of the AS to which the PeerSet SID advertising node belongs. If Confederations <xreftarget ='RFC5065'/>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 ConfederationIdentifier.</t> <t>LocalIdentifier.</dd> <dt>Local BGP RouterID : 4 octets </t> <t>ID:</dt><dd>4 octets. The unsigned integer representing the BGP Identifier of the PeerSet SID advertisingnodenode, as defined in <xreftarget ='RFC4271'/>target="RFC4271" format="default"/> and <xreftarget ='RFC6286'/>. </t> <t>No.oftarget="RFC6286" format="default"/>. </dd> <dt>No.of elements inset: 2 octets</t> <t>set:</dt><dd>2 octets. The number of remote ASes over which the set SID performsload balancing.</t> <t> Reserved : 2load-balancing.</dd> <dt>Reserved:</dt><dd>2 octets.MUST<bcp14>MUST</bcp14> be zero when sent and ignored whenreceived.</t> <t>Remotereceived.</dd> <dt>Remote ASNumber : 4 octets </t> <t>TheNumber:</dt><dd>4 octets. The unsigned integer representing the AS number <xreftarget ='RFC6793'/> of the AStarget="RFC6793" format="default"/> of the remotenodenode's AS for which the PeerSet SID is advertised. If Confederations <xreftarget ='RFC5065'/>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 ConfederationIdentifier.</t> <t>RemoteIdentifier.</dd> <dt>Remote BGP RouterID : 4 octets </t> <t>unsignedID:</dt><dd>4 octets. The unsigned integer representing the BGP Identifier of the remote node as defined in <xreftarget ='RFC4271'/>target="RFC4271" format="default"/> and <xreftarget ='RFC6286'/>. </t>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 of these PeerNode SIDs and PeerAdj SIDsMUST<bcp14>MUST</bcp14> be included in the FEC.</t> </section> </section> <section anchor="validation"title="EPE-SIDnumbered="true" toc="default"> <name>EPE-SID FECvalidation"> <t> WhenValidation</name> <t>When a remote ASBR of the EPE-SID advertisement receives the MPLS OAM packet with the top FEC being the EPE-SID, itMUST<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 receivedFEC.FEC.</t> <figureanchor="length_check" title="Length Validation"> <artwork>anchor="length_check"> <name>Length Validation</name> <artwork name="" type="" align="left" alt=""><![CDATA[ PeerAdj SID -----------ifIf Adj type =11, Length should be 28 octets If Adj type=2= 2, Length should be 52 octets PeerNode SID ------------- Length =( 20(20 + No.of IPv4 interface pairs * 8 + No.of IPv6 interface pairs *32 )32) octets PeerSet SID ----------- Length = (9 + No.of elements in the set * (8 + No.of IPv4 interface pairs * 8 + No.of IPv6 interface pairs *32)) octets </artwork>32) octets]]></artwork> </figure></t> <t> If<t>If a malformed FEC sub-TLV is received, then a return code of 1, "Malformed echo requestreceived"received", as defined in <xreftarget="RFC8029"/> MUSTtarget="RFC8029" format="default"/> <bcp14>MUST</bcp14> be sent. Thebelowsection below is appended to the procedure given inSection 7.4 pointstep 4a of <xreftarget="RFC8287"/>.target="RFC8287" sectionFormat="of" section="7.4"/>. </t><section anchor="fec_validation" title="EPE-SID<!-- [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 perhaps the example validation, e.g., "EPE-SID FECvalidiation"> <t> <t>Validation Examples" (option A) or "Segment Routing IGP-Prefix, IGP-Adjacency SID, and EPE-SID Validation Examples (option B)? Original: 5. EPE-SID FEC validation 5.1. EPE-SID FEC validation Perhaps A: 5. EPE-SID FEC Validation 5.1. EPE-SID FEC Validation Examples or Perhaps B: 5. EPE-SID FEC Validation 5.1. Segment Routing IGP-Prefix, IGP-AdjacencySIDSID, and EPE-SID Validation:Examples --> <!--[rfced] Section 5.1. a) Please let us know how we may clarify the first sentence in this section. Are Segment Routing IGP-Prefix, IGP-Adjacency SID, and EPE-SID being validated, and is the term "receiving node" implying that the node received the OAM message as shown below? Original: 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. Perhaps: 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. b) For clarity, may we update "If any below conditions fail" to "Check if any conditions below fail" (note that there are 4 instances)? 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 Validation: Receiving node term used in this section implies the node that receives OAM message with the FEC stack TLV.</t><artwork><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 isTBD138 (PeerAdj SID sub-TLV), { Set the Best-return-code to 10, "Mapping for this FEC is not the given label atstack-depth ifstack-depth". If any below conditions fail: - Validate that the receiving node's BGP Local AS matches with the remote AS field in the received PeerAdj SID FEC sub-TLV. - Validate that the receiving node's BGP Router-ID matches with the Remote Router ID field in the received PeerAdj SID FEC. - Validate that there isaan EBGP session with a peer having a local AS number and BGP Router-ID as specified in the Local AS number and Local Router-ID field in the received PeerAdj SID FEC sub-TLV. If the Remote interface address is not zero, validate the incoming interface. Set the Best-return-code to3535, "Mapping for this FEC is not associated with the incoming interface"[RFC8287] if[RFC8287]. If any below conditions fail: - Validate that the incoming interface on which the OAM packet wasreceieved,received matches with the remote interface specified in the PeerAdj SID FECsub-TLVsub-TLV. If all above validations have passed, set the return code to33, "Replying router is an egress for the FEC atstack-depth"stack-depth". } Else, if the Target FEC sub-TLV at FEC-stack-depth isTBD239 (PeerNode SID sub-TLV), { Set the Best-return-code to 10, "Mapping for this FEC is not the given label atstack-depth ifstack-depth". If any below conditions fail: - 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's BGP Router-ID matches with the Remote Router ID field in the received PeerNode SID FEC. - Validate that there isaan EBGP session with a peer having a local AS number and BGP Router-ID as specified in the Local AS number and Local Router-ID field in the received PeerNode SID FEC sub-TLV. If all above validations have passed, set the return code to33, "Replying router is an egress for the FEC at stack-depth". } Else, if the Target FEC sub-TLV at FEC-stack-depth isTBD340 (PeerSet SID sub-TLV), { Set the Best-return-code to 10, "Mapping for this FEC is not the given label atstack-depth" ifstack-depth". If any below conditions fail: - Validate that the Receiving Node BGP Local AS matches with one of the remote ASfieldfields in the received PeerSet SID FEC sub-TLV. - Validate that the Receiving Node BGP Router-ID matches with one of the Remote Router IDfieldfields in the received PeerSet SID FEC sub-TLV. - Validate that there isaan EBGP session with a peer having a local AS number and BGP Router-ID as specified in the Local AS number and Local Router-IDfieldfields in the received PeerSet SID FEC sub-TLV. If all above validations have passed, set the return code to33, "Replying router is an egress for the FEC atstack-depth" } </artwork> </t>stack-depth". }]]></artwork> </section> </section> <section anchor="IANA"title="IANA Considerations"> <t>IANAnumbered="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.<list> <t>PeerAdj SID Sub-TLV : TBD1</t> <t>PeerNode SID Sub-TLV: TBD2</t> <t>PeerSet SID Sub-TLV : TBD3</t> </list> ThePerhaps: IANA has allocated threelowest free valuesnew 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 theStandard Tracks rangeentries 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 allocatedif possible.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> <sectiontitle='Security Considerations' anchor='sec-con'>anchor="sec-con" numbered="true" toc="default"> <name>Security Considerations</name> <t>The EPE-SIDs are advertised for egress links forEgress Peer EngineeringEPE purposes or for inter-AS links betweenco-operatingcooperating ASes. Whenco-operatingcooperating domains are involved, they can allow the packets arriving on trusted interfaces to reach the control plane andgetbe processed.</t> <t> When EPE-SIDs are created for egress TE links where the neighbor AS is an independent entity, it may not allow the packets arriving from the external world to reach the control plane. In suchdeploymentsdeployments, the MPLS OAM packets will be dropped by the neighboring AS that receives the MPLS OAM packet.</t> <t>In MPLS traceroute applications, when the AS boundary is crossed with the EPE-SIDs, the FEC stack is changed. <xreftarget="RFC8287"/>target="RFC8287" format="default"/> does not mandate that theinitiatorinitiator, upon receiving an MPLS Echo Reply message that includes the FEC Stack Change TLV with one or more of the original segments beingpoppedpopped, removeathe corresponding FEC(s) from the Target FEC Stack TLV in the next (TTL+1) traceroute request. </t> <t>If an initiator does not remove the FECs belonging to the previous AS that has traversed, it may expose the internal AS information to the following AS being traversed in the traceroute. </t> </section><section title='Implementation Status'> <t> This section is</middle> <back> <displayreference target="I-D.ietf-idr-segment-routing-te-policy" to="SR-TE-POLICY"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8287.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9086.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8690.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6793.xml"/> </references> <references> <name>Informative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9087.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7705.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8403.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5065.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6286.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"/> <!-- [Note tobe removed before publishing as an RFC. </t> <t> RFC-Editor: Please clean upthereferences cited by this section before publication. </t> <t> This section records the status of known implementations ofRE] XML for theprotocol defined by"Sub-TLVs for TLV Types 1, 16, and 21" registry (Note: thisspecification atreference needs a cite tag/reference anchor in thetime of posting of this Internet-Draft,IANA Section): <reference anchor="" target="https://www.iana.org/assignments/mpls-lsp-ping-parameters"/> <front> <title>Sub-TLVs for TLV Types 1, 16, and 21</title> <author> <organization>IANA</organization> </author> </front> </reference> --> <!-- [rfced] Since 'draft-ietf-idr-segment-routing-te-policy' isbased on a proposal described in <xref target ='RFC7942'/>. The description of implementations inexpired 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? Note that thissection is intendedwould include adding two reference tags toassisttheIETFtext inits decision processesSection 2. Original: [SR-TE-POLICY] Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and D. Jain, "Advertising Segment Routing Policies inprogressing drafts to RFCs. Please note thatBGP", 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>. Perhaps: [BGP-SR-SEGTYPES-EXT] Talaulikar, K., Filsfils, C., Previdi, S., Mattes, P., and D. Jain, "Segment Routing Segment Types Extensions for BGP SR Policy", Work in Progress, Internet-Draft, draft-ietf- idr-bgp-sr-segtypes-ext-06, 7 November 2024, <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp- sr-segtypes-ext-06>. [SR-BGP-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-sr- policy-safi-10, 7 November 2024, <https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr- policy-safi-10>. --> <!--ietf-idr-segment-routing-te-policy; Expired --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-idr-segment-routing-te-policy.xml"/> </references> </references> <section anchor="Appendix" numbered="true" toc="default"> <!-- [rfced] May we update thelistingtitle ofany individual implementation here does not imply endorsement bytheIETF. Furthermore, no effort has been spentappendix toverifyavoid theinformation presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalogrepetition ofavailable implementations or their features. Readers are advised to note that other implementations may exist. </t> <section title='Juniper Networks'> <t>Juniper networks reported a prototype implementation"Appendix A: Appendix"? Perhaps "Examples ofthis draft.</t> </section> </section> <section title='Acknowledgments'> <t>Thanks to Loa Andersson, Dhruv Dhody, Ketan Talaulikar, Italo Busi and Alexander Vainshtein, Deepti Rathi for careful reviewCorrectly andcomments. Thanks to Tarek Saad for providing the example described inIncorrectly Programmed States" or "Examples of Programmed States? Current: Appendixsection. </t> </section> </middle> <back> <references title='Normative References'> &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> <section title='APPENDIX' anchor='APPENDIX'>A. Appendix Perhaps: Appendix A. Examples of Programmed States --> <name>Appendix</name> <t> This section describesan exampleexamples of both a correctlyprogrammed stateand 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 <xreftarget ='reference_diagram'/>,target="reference_diagram" format="default"/>.</t> <t>Correctlyprogramedprogrammed state:</t><list> <t>• C<ul spacing="normal"> <li> <t>C assigns label 16001 and binds it to adjacencyC->EC->E </t><t>• C</li> <li> <t>C signals that label 16001 is bound to adjacencyC->E (e.g.C->E (e.g., via BGP-LS)</t><t>• Controller/Ingress</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 adjacencyC->E</t> <t>• UsingC->E</t> </li> <li> <t>Using MPLS trace procedures defined in this document, the PeerAdj SID Sub-TLV ispopulatespopulated with entities to be validated by C when the OAM packet reachesit.</t> <t>• Cit</t> </li> <li> <t>C receives the OAMpacket, itpacket and validates that the top label (16001) is indeed corresponding to the entities populated in the PeerAdj SID Sub-TLV</t></list></li> </ul> <t>Incorrectlyprogramedprogrammed state:</t><list> <t>• C<ul spacing="normal"> <li> <t>C assigns label 16001 and binds it to adjacencyC->D</t> <t>• TheC->D</t> </li> <li> <t>The controller learnsofthat PeerAdj SID label 16001 is bound to adjacencyC->E (e.g.C->E (e.g., via BGP-LS)–-- this could be a software bug on C or on the controller</t><t>• Controller/Ingress</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 adjacencyC->E</t> <t>• UsingC->E</t> </li> <li> <t>Using MPLS trace procedures defined in this document, the PeerAdj SID Sub-TLV ispopulatespopulated with entities to be validated by C (including a local/remote interface address ofC->E)C->E) when the OAM packet reachesit.</t> <t>• Cit</t> </li> <li> <t>C receives the OAMpacket, itpacket and validates that the top label (16001) is NOT bound toC->EC->E as populated in the PeerAdj SID Sub-TLV andcan respondthen responds with the respective error code</t></list> </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. --> </rfc>