<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-mpls-sr-epe-oam-19" number="9703" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" prepTime="2024-12-28T10:16:57" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-mpls-sr-epe-oam-19" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9703" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="LSP Ping/Traceroute 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 Data Plane</title>
    <seriesInfo name="RFC" value="9703" stream="IETF"/>
    <author initials="S." surname="Hegde" fullname="Shraddha Hegde">
      <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
      <address>
        <postal>
          <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 showOnFrontPage="true">Juniper Networks Inc.</organization>
      <address>
        <email>msri@juniper.net</email>
      </address>
    </author>
    <author initials="K." surname="Arora" fullname="Kapil Arora">
      <organization showOnFrontPage="true">Individual Contributor</organization>
      <address>
        <email>kapil.it@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Ninan" fullname="Samson Ninan">
      <organization showOnFrontPage="true">Ciena</organization>
      <address>
        <email>samson.cse@gmail.com</email>
      </address>
    </author>
    <author initials="X." surname="Xu" fullname="Xiaohu Xu">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xuxiaohu_ietf@hotmail.com</email>
      </address>
    </author>
    <date month="12" year="2024"/>
    <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 pn="section-abstract">
      <t indent="0" pn="section-abstract-1">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 Target FEC Stack TLV (Type 1) in MPLS Ping and Traceroute
      procedures.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9703" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2024 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-theory-of-operation">Theory of Operation</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-fec-definitions">FEC Definitions</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-peernode-sid-sub-tlv">PeerNode SID Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-peeradj-sid-sub-tlv">PeerAdj SID Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-peerset-sid-sub-tlv">PeerSet SID Sub-TLV</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-epe-sid-fec-validation">EPE-SID FEC Validation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-epe-sid-fec-validation-rule">EPE-SID FEC Validation Rules</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-examples-of-programmed-stat">Examples of Programmed States</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1"> Egress Peer Engineering (EPE), as defined in <xref target="RFC9087" format="default" sectionFormat="of" derivedContent="RFC9087"/>, 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 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="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/> 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" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-reference-diagram">Reference Diagram</name>
        <artwork name="" type="" align="left" alt="" pn="section-1-2.1">
   +---------+      +------+
   |         |      |      |
   |    H    B------D      G
   |         | +---/| AS2  |\  +------+
   |         |/     +------+ \ |      |---L/8
   A   AS1   C---+            \|      |
   |         |\\  \  +------+ /| AS4  |---M/8
   |         | \\  +-E      |/ +------+
   |    X    |  \\   |      K
   |         |   +===F AS3  |
   +---------+       +------+</artwork>
      </figure>
      <t indent="0" pn="section-1-3">In <xref target="reference_diagram" format="default" sectionFormat="of" derivedContent="Figure 1"/>, 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" sectionFormat="of" derivedContent="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-&gt;D.  Due to some software anomaly, the
      actual data forwarding on this PeerAdj SID could be happening over the
      C-&gt;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" sectionFormat="of" derivedContent="Appendix A"/>.
      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" sectionFormat="of" derivedContent="Figure 1"/>,
      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 indent="0" pn="section-1-4"> This document provides Target Forwarding Equivalence Class (FEC)
      Stack TLV definitions for EPE-SIDs.  This solution requires the
      node constructing the Target FEC Stack TLV 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" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8287#section-7" derivedContent="RFC8287"/> and clarified in <xref target="RFC8690" format="default" sectionFormat="of" derivedContent="RFC8690"/>,
      are applicable for EPE-SIDs as well.</t>
    </section>
    <section anchor="operation" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-theory-of-operation">Theory of Operation</name>
      <t indent="0" pn="section-2-1"><xref target="RFC9086" format="default" sectionFormat="of" derivedContent="RFC9086"/> provides mechanisms to
      advertise the EPE-SIDs in BGP-LS. These EPE-SIDs may be used to build SR
      paths and may be communicated using extensions described in <xref target="I-D.ietf-idr-bgp-sr-segtypes-ext" format="default" sectionFormat="of" derivedContent="SR-SEGTYPES"/> and <xref target="I-D.ietf-idr-sr-policy-safi" format="default" sectionFormat="of" derivedContent="SR-BGP-POLICY"/> or Path
      Computation Element Protocol (PCEP) extensions as defined in <xref target="RFC8664" format="default" sectionFormat="of" derivedContent="RFC8664"/>. Data plane monitoring for such
      paths that consist of EPE-SIDs will use extensions defined in this
      document to build the Target FEC Stack TLV.  The MPLS Ping and
      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" sectionFormat="of" derivedContent="RFC8403"/>.  The
      extensions in <xref target="I-D.ietf-idr-bgp-sr-segtypes-ext" format="default" sectionFormat="of" derivedContent="SR-SEGTYPES"/>, <xref target="I-D.ietf-idr-sr-policy-safi" format="default" sectionFormat="of" derivedContent="SR-BGP-POLICY"/>, and <xref target="RFC8664" format="default" sectionFormat="of" derivedContent="RFC8664"/> do not
      define how to acquire and 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" sectionFormat="of" derivedContent="RFC9086"/>.  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 indent="0" pn="section-2-2">The EPE-SIDs are advertised for inter-AS links that run EBGP
      sessions. <xref target="RFC9086" format="default" sectionFormat="of" derivedContent="RFC9086"/> 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" sectionFormat="of" derivedContent="RFC7705"/> 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" sectionFormat="of" derivedContent="Section 4"/>) carry the globally
      configured AS Number and not the "local AS" (as defined in <xref target="RFC7705" format="default" sectionFormat="of" derivedContent="RFC7705"/>), then the FEC validation procedures may
      fail. </t>
      <t indent="0" pn="section-2-3">As described in <xref target="intro" format="default" sectionFormat="of" derivedContent="Section 1"/>, this
      document defines Target FEC Stack TLVs for EPE-SIDs that can be used in
      detecting MPLS data plane failures <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/>. 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="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-requirements-language">Requirements Language</name>
      <t indent="0" pn="section-3-1">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" sectionFormat="of" derivedContent="RFC2119"/>, <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and
      only when, they appear in all capitals, as shown here. </t>
    </section>
    <section anchor="FEC_definitions" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-fec-definitions">FEC Definitions</name>
      <t indent="0" pn="section-4-1"> 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 <xref target="sub_tlv" format="default" sectionFormat="of" derivedContent="Table 1"/>.</t>
      <section anchor="peer_node_sid" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-peernode-sid-sub-tlv">PeerNode SID Sub-TLV</name>
        <figure anchor="peer_node_sid_tlv" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-peernode-sid-sub-tlv-2">PeerNode SID Sub-TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.1-1.1">
 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 = 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>
        <dl indent="3" newline="false" spacing="normal" pn="section-4.1-2">
          <dt pn="section-4.1-2.1">Type:</dt>
          <dd pn="section-4.1-2.2">2 octets</dd>
          <dt pn="section-4.1-2.3">Value:</dt>
          <dd pn="section-4.1-2.4">39</dd>
          <dt pn="section-4.1-2.5">Length:</dt>
          <dd pn="section-4.1-2.6">2 octets</dd>
          <dt pn="section-4.1-2.7">Value:</dt>
          <dd pn="section-4.1-2.8">16</dd>
          <dt pn="section-4.1-2.9">Local AS Number:</dt>
          <dd pn="section-4.1-2.10">4 octets. The unsigned integer
          representing the AS number <xref target="RFC6793" format="default" sectionFormat="of" derivedContent="RFC6793"/>
          of the AS to which the PeerNode SID advertising node belongs. If
          Confederations <xref target="RFC5065" format="default" sectionFormat="of" derivedContent="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
          Confederation and not the Confederation Identifier.</dd>
          <dt pn="section-4.1-2.11">Remote AS Number:</dt>
          <dd pn="section-4.1-2.12">4 octets. The unsigned integer
          representing the AS number <xref target="RFC6793" format="default" sectionFormat="of" derivedContent="RFC6793"/>
          of the AS of the remote node for which the PeerNode SID is
          advertised. If Confederations <xref target="RFC5065" format="default" sectionFormat="of" derivedContent="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 Confederation and not the Confederation
          Identifier.</dd>
          <dt pn="section-4.1-2.13">Local BGP Router ID:</dt>
          <dd pn="section-4.1-2.14">4 octets.  The unsigned integer
	  representing the BGP Identifier of the PeerNode SID advertising node
	  as defined in <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> and <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/>. </dd>
          <dt pn="section-4.1-2.15">Remote BGP Router ID:</dt>
          <dd pn="section-4.1-2.16">4 octets.  The unsigned integer
          representing the BGP Identifier of the remote node as defined in
          <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> and <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/>. </dd>
        </dl>
        <t indent="0" pn="section-4.1-3">When there is a multi-hop EBGP session between two ASBRs, a
        PeerNode SID is advertised for this session, and traffic can be
        load-balanced across these interfaces.  An EPE controller that
        performs bandwidth management for these links should be aware of the
        links on which the traffic will be load-balanced. As per <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/>, the node advertising the EPE-SIDs
        will send a Downstream Detailed Mapping (DDMAP) TLV specifying the
        details of the next-hop interfaces. 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" sectionFormat="of" derivedContent="RFC8029"/>,
        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="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-peeradj-sid-sub-tlv">PeerAdj SID Sub-TLV</name>
        <figure anchor="peer_adj_sid_tlv" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-peeradj-sid-sub-tlv-2">PeerAdj SID Sub-TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.2-1.1">
 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>
        <dl indent="3" newline="false" spacing="normal" pn="section-4.2-2">
          <dt pn="section-4.2-2.1">Type:</dt>
          <dd pn="section-4.2-2.2">2 octets </dd>
          <dt pn="section-4.2-2.3">Value:</dt>
          <dd pn="section-4.2-2.4">38</dd>
          <dt pn="section-4.2-2.5">Length:</dt>
          <dd pn="section-4.2-2.6">2 octets</dd>
          <dt pn="section-4.2-2.7">Value:</dt>
          <dd pn="section-4.2-2.8">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 pn="section-4.2-2.9">Adj type:</dt>
          <dd pn="section-4.2-2.10">1 octet</dd>
          <dt pn="section-4.2-2.11">Value:</dt>
          <dd pn="section-4.2-2.12">Set to 1 when the Adjacency Segment is IPv4. Set to
        2 when the Adjacency Segment is IPv6.</dd>
          <dt pn="section-4.2-2.13">RESERVED:</dt>
          <dd pn="section-4.2-2.14">3 octets. <bcp14>MUST</bcp14> be zero when
        sending and ignored on receiving.</dd>
          <dt pn="section-4.2-2.15">Local AS Number:</dt>
          <dd pn="section-4.2-2.16">4 octets. The unsigned integer
        representing the AS number <xref target="RFC6793" format="default" sectionFormat="of" derivedContent="RFC6793"/>
        of the AS to which the PeerAdj SID advertising node belongs. If
        Confederations <xref target="RFC5065" format="default" sectionFormat="of" derivedContent="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
        Confederation and not the Confederation Identifier.</dd>
          <dt pn="section-4.2-2.17">Remote AS Number:</dt>
          <dd pn="section-4.2-2.18">4 octets.  The unsigned integer
        representing the AS number <xref target="RFC6793" format="default" sectionFormat="of" derivedContent="RFC6793"/> of
        the remote node's AS for which the PeerAdj SID is advertised. If
        Confederations <xref target="RFC5065" format="default" sectionFormat="of" derivedContent="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
        Confederation and not the Confederation Identifier.</dd>
          <dt pn="section-4.2-2.19">Local BGP Router ID:</dt>
          <dd pn="section-4.2-2.20">4 octets. The unsigned integer
        representing the BGP Identifier of the PeerAdj SID advertising node as
        defined in <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> and <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/>.</dd>
          <dt pn="section-4.2-2.21">Remote BGP Router ID:</dt>
          <dd pn="section-4.2-2.22">4 octets. The unsigned integer
        representing the BGP Identifier of the remote node as defined in <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> and <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/>.</dd>
          <dt pn="section-4.2-2.23">Local Interface Address:</dt>
          <dd pn="section-4.2-2.24">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.  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 pn="section-4.2-2.25">Remote Interface Address:</dt>
          <dd pn="section-4.2-2.26">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>
        <t indent="0" pn="section-4.2-3"><xref target="RFC9086" format="default" sectionFormat="of" derivedContent="RFC9086"/> 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 OAM packet, but if the remote
        descriptor is 0, this validation is not possible.  Optional link
        descriptors of local and remote interface addresses are allowed as
        described in <xref target="RFC9086" sectionFormat="of" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9086#section-4.2" derivedContent="RFC9086"/>. 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 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="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-peerset-sid-sub-tlv">PeerSet SID Sub-TLV</name>
        <figure anchor="peer_set_sid_tlv" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-peerset-sid-sub-tlv-2">PeerSet SID Sub-TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.3-1.1">
 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)                  |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++</artwork>
        </figure>
        <dl indent="3" newline="false" spacing="normal" pn="section-4.3-2">
          <dt pn="section-4.3-2.1">Type:</dt>
          <dd pn="section-4.3-2.2">2 octets</dd>
          <dt pn="section-4.3-2.3">Value:</dt>
          <dd pn="section-4.3-2.4">40</dd>
          <dt pn="section-4.3-2.5">Length:</dt>
          <dd pn="section-4.3-2.6">2 octets</dd>
          <dt pn="section-4.3-2.7">Value:</dt>
          <dd pn="section-4.3-2.8">Expressed in octets and is a 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 pn="section-4.3-2.9">Local AS Number:</dt>
          <dd pn="section-4.3-2.10">4 octets.  The unsigned integer
        representing the AS number <xref target="RFC6793" format="default" sectionFormat="of" derivedContent="RFC6793"/>
        of the AS to which the PeerSet SID advertising node belongs. If
        Confederations <xref target="RFC5065" format="default" sectionFormat="of" derivedContent="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
        Confederation and not the Confederation Identifier.</dd>
          <dt pn="section-4.3-2.11">Local BGP Router ID:</dt>
          <dd pn="section-4.3-2.12">4 octets.  The unsigned integer
        representing the BGP Identifier of the PeerSet SID advertising node, as
        defined in <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> and <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/>. </dd>
          <dt pn="section-4.3-2.13">No. of elements in set:</dt>
          <dd pn="section-4.3-2.14">2 octets.  The number of remote
        ASes over which the set SID performs load-balancing.</dd>
          <dt pn="section-4.3-2.15">Reserved:</dt>
          <dd pn="section-4.3-2.16">2 octets. <bcp14>MUST</bcp14> be zero when sent
        and ignored when received.</dd>
          <dt pn="section-4.3-2.17">Remote AS Number:</dt>
          <dd pn="section-4.3-2.18">4 octets.  The unsigned integer
        representing the AS number <xref target="RFC6793" format="default" sectionFormat="of" derivedContent="RFC6793"/>
        of the remote node's AS for which the PeerSet SID is
        advertised. If Confederations <xref target="RFC5065" format="default" sectionFormat="of" derivedContent="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 Confederation and not the Confederation
        Identifier.</dd>
          <dt pn="section-4.3-2.19">Remote BGP Router ID:</dt>
          <dd pn="section-4.3-2.20">4 octets.  The unsigned integer
        representing the BGP Identifier of the remote node as defined in <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> and <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/>. </dd>
        </dl>
        <t indent="0" pn="section-4.3-3">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 SIDs <bcp14>MUST</bcp14> be included in the
        FEC.</t>
      </section>
    </section>
    <section anchor="validation" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-epe-sid-fec-validation">EPE-SID FEC Validation</name>
      <t indent="0" pn="section-5-1">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" align="left" suppress-title="false" pn="figure-5">
        <name slugifiedName="name-length-validation">Length Validation</name>
        <artwork name="" type="" align="left" alt="" pn="section-5-2.1">
 PeerAdj SID sub-TLV
 -----------
 If Adj type = 1, Length should be 28 octets
 If Adj type = 2, Length should be 52 octets
 
 PeerNode SID sub-TLV
 -------------
 Length = (20 + No. of IPv4 interface pairs * 8 +
           No. of IPv6 interface pairs * 32) octets
 
 PeerSet SID sub-TLV
 -----------
 Length = (9 + No. of elements in the set *
          (8 + No. of IPv4 interface pairs * 8 +
           No. of IPv6 interface pairs * 32) octets</artwork>
      </figure>
      <t indent="0" pn="section-5-3">If a malformed FEC sub-TLV is received, then a return code of 1,
      "Malformed echo request received", as defined in <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/> <bcp14>MUST</bcp14> be sent.  The section below is
      appended to the procedure given in step 4a of <xref target="RFC8287" sectionFormat="of" section="7.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8287#section-7.4" derivedContent="RFC8287"/>.
      </t>
      <section anchor="fec_validation" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-epe-sid-fec-validation-rule">EPE-SID FEC Validation Rules</name>
        <t indent="0" pn="section-5.1-1">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 corresponds to the node that receives the OAM message
	with the Target FEC Stack TLV.</t>
        <artwork name="" type="" align="left" alt="" pn="section-5.1-2">
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 &lt;RSC&gt;" [RFC8029].  Check 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
              sub-TLV.

           -  Validate that the receiving node's BGP Router-ID
              matches with the Remote Router ID field in the
              received PeerAdj SID sub-TLV.

           -  Validate that there is an 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 sub-TLV.

    If the remote interface address is not zero, validate the
    incoming interface.  Set the Best-return-code to 35, 
    "Mapping for this FEC is not associated with the incoming 
    interface" [RFC8287].  Check 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 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 &lt;RSC&gt;"
    [RFC8029].
    }

Else, if the Target FEC Stack sub-TLV at FEC stack-depth is 39
     (PeerNode SID sub-TLV), {

    Set the Best-return-code to 10, "Mapping for this FEC is not
    the given label at stack-depth &lt;RSC&gt;" [RFC8029].  Check 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 is an 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 to 3,
    "Replying router is an egress for the FEC at stack-depth &lt;RSC&gt;"
    [RFC8029].
    }
Else, if the Target FEC Stack sub-TLV at FEC stack-depth is 40
     (PeerSet SID sub-TLV), {

    Set the Best-return-code to 10, "Mapping for this FEC is not
    the given label at stack-depth &lt;RSC&gt;" [RFC8029].  Check if any 
    below conditions fail:

       -  Validate that the receiving node's BGP Local AS matches
          with one of the remote AS fields in the received 
          PeerSet SID FEC sub-TLV.

       -  Validate that the receiving node's BGP Router-ID matches
          with one of the Remote Router ID fields in the 
          received PeerSet SID FEC sub-TLV.

       -  Validate that there is an 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 fields in the received 
          PeerSet 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 &lt;RSC&gt;"
    [RFC8029].
    }</artwork>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">IANA has allocated three new Target FEC Stack sub-TLVs
    in the "Sub-TLVs for TLV Types 1, 16, and 21" registry <xref target="MPLS-LSP-PING" format="default" sectionFormat="of" derivedContent="MPLS-LSP-PING"/>
    within the "TLVs" registry of the "Multiprotocol Label Switching (MPLS)
    Label Switched Paths (LSPs) Ping Parameters" registry group. </t>
      <table anchor="sub_tlv" align="center" pn="table-1">
        <name slugifiedName="name-sub-tlvs-for-tlv-types-1-16">Sub-TLVs for TLV Types 1, 16, and 21 Registry</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Sub-Type</th>
            <th align="left" colspan="1" rowspan="1">Sub-TLV Name</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">38</td>
            <td align="left" colspan="1" rowspan="1">PeerAdj SID</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">39</td>
            <td align="left" colspan="1" rowspan="1">PeerNode SID</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">40</td>
            <td align="left" colspan="1" rowspan="1">PeerSet SID</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-con" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">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
       and be processed.</t>
      <t indent="0" pn="section-7-2"> 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 such deployments, the MPLS OAM packets will be 
       dropped by the neighboring AS that receives the MPLS OAM packet.</t>
      <t indent="0" pn="section-7-3">In MPLS Traceroute applications, when the AS boundary is 
       crossed with the EPE-SIDs, the Target FEC Stack TLV is changed.
       <xref target="RFC8287" format="default" sectionFormat="of" derivedContent="RFC8287"/> does not mandate that the initiator,
       upon receiving an MPLS Echo Reply message that includes the
       Target FEC Stack Change TLV with one or more of the original 
       segments being popped, remove the corresponding FEC(s) from
       the Target FEC Stack TLV in the next (TTL+1) traceroute
       request. </t>
      <t indent="0" pn="section-7-4">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>
  </middle>
  <back>
    <displayreference target="I-D.ietf-idr-bgp-sr-segtypes-ext" to="SR-SEGTYPES"/>
    <displayreference target="I-D.ietf-idr-sr-policy-safi" to="SR-BGP-POLICY"/>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6793" target="https://www.rfc-editor.org/info/rfc6793" quoteTitle="true" derivedAnchor="RFC6793">
          <front>
            <title>BGP Support for Four-Octet Autonomous System (AS) Number Space</title>
            <author fullname="Q. Vohra" initials="Q." surname="Vohra"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="December" year="2012"/>
            <abstract>
              <t indent="0">The Autonomous System number is encoded as a two-octet entity in the base BGP specification. This document describes extensions to BGP to carry the Autonomous System numbers as four-octet entities. This document obsoletes RFC 4893 and updates RFC 4271. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6793"/>
          <seriesInfo name="DOI" value="10.17487/RFC6793"/>
        </reference>
        <reference anchor="RFC8029" target="https://www.rfc-editor.org/info/rfc8029" quoteTitle="true" derivedAnchor="RFC8029">
          <front>
            <title>Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures</title>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="N. Kumar" initials="N." surname="Kumar"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="March" year="2017"/>
            <abstract>
              <t indent="0">This document describes a simple and efficient mechanism to detect data-plane failures in Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs). It defines a probe message called an "MPLS echo request" and a response message called an "MPLS echo reply" for returning the result of the probe. The MPLS echo request is intended to contain sufficient information to check correct operation of the data plane and to verify the data plane against the control plane, thereby localizing faults.</t>
              <t indent="0">This document obsoletes RFCs 4379, 6424, 6829, and 7537, and updates RFC 1122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8029"/>
          <seriesInfo name="DOI" value="10.17487/RFC8029"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8287" target="https://www.rfc-editor.org/info/rfc8287" quoteTitle="true" derivedAnchor="RFC8287">
          <front>
            <title>Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data Planes</title>
            <author fullname="N. Kumar" initials="N." role="editor" surname="Kumar"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <author fullname="N. Akiya" initials="N." surname="Akiya"/>
            <author fullname="S. Kini" initials="S." surname="Kini"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="December" year="2017"/>
            <abstract>
              <t indent="0">A Segment Routing (SR) architecture leverages source routing and tunneling paradigms and can be directly applied to the use of a Multiprotocol Label Switching (MPLS) data plane. A node steers a packet through a controlled set of instructions called "segments" by prepending the packet with an SR header.</t>
              <t indent="0">The segment assignment and forwarding semantic nature of SR raises additional considerations for connectivity verification and fault isolation for a Label Switched Path (LSP) within an SR architecture. This document illustrates the problem and defines extensions to perform LSP Ping and Traceroute for Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with an MPLS data plane.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8287"/>
          <seriesInfo name="DOI" value="10.17487/RFC8287"/>
        </reference>
        <reference anchor="RFC8690" target="https://www.rfc-editor.org/info/rfc8690" quoteTitle="true" derivedAnchor="RFC8690">
          <front>
            <title>Clarification of Segment ID Sub-TLV Length for RFC 8287</title>
            <author fullname="N. Nainar" initials="N." surname="Nainar"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <author fullname="F. Iqbal" initials="F." surname="Iqbal"/>
            <author fullname="A. Vainshtein" initials="A." surname="Vainshtein"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">RFC 8287 defines the extensions to perform LSP Ping and Traceroute for Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with the MPLS data plane. RFC 8287 proposes three Target Forwarding Equivalence Class (FEC) Stack sub-TLVs. While RFC 8287 defines the format and procedure to handle those sub-TLVs, it does not sufficiently clarify how the length of the Segment ID sub-TLVs should be computed to be included in the Length field of the sub-TLVs. This ambiguity has resulted in interoperability issues.</t>
              <t indent="0">This document updates RFC 8287 by clarifying the length of each of the Segment ID sub-TLVs defined in RFC 8287.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8690"/>
          <seriesInfo name="DOI" value="10.17487/RFC8690"/>
        </reference>
        <reference anchor="RFC9086" target="https://www.rfc-editor.org/info/rfc9086" quoteTitle="true" derivedAnchor="RFC9086">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing BGP Egress Peer Engineering</title>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="S. Ray" initials="S." surname="Ray"/>
            <author fullname="J. Dong" initials="J." surname="Dong"/>
            <date month="August" year="2021"/>
            <abstract>
              <t indent="0">A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with a list of segment identifiers (SIDs). A segment can represent any instruction, topological or service based. SR segments allow steering a flow through any topological path and service chain while maintaining per-flow state only at the ingress node of the SR domain.</t>
              <t indent="0">This document describes an extension to Border Gateway Protocol - Link State (BGP-LS) for advertisement of BGP Peering Segments along with their BGP peering node information so that efficient BGP Egress Peer Engineering (EPE) policies and strategies can be computed based on Segment Routing.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9086"/>
          <seriesInfo name="DOI" value="10.17487/RFC9086"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="MPLS-LSP-PING" target="https://www.iana.org/assignments/mpls-lsp-ping-parameters" quoteTitle="true" derivedAnchor="MPLS-LSP-PING">
          <front>
            <title>Sub-TLVs for TLV Types 1, 16, and 21</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" quoteTitle="true" derivedAnchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t indent="0">The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t indent="0">BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t indent="0">This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC5065" target="https://www.rfc-editor.org/info/rfc5065" quoteTitle="true" derivedAnchor="RFC5065">
          <front>
            <title>Autonomous System Confederations for BGP</title>
            <author fullname="P. Traina" initials="P." surname="Traina"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <date month="August" year="2007"/>
            <abstract>
              <t indent="0">The Border Gateway Protocol (BGP) is an inter-autonomous system routing protocol designed for Transmission Control Protocol/Internet Protocol (TCP/IP) networks. BGP requires that all BGP speakers within a single autonomous system (AS) must be fully meshed. This represents a serious scaling problem that has been well documented in a number of proposals.</t>
              <t indent="0">This document describes an extension to BGP that may be used to create a confederation of autonomous systems that is represented as a single autonomous system to BGP peers external to the confederation, thereby removing the "full mesh" requirement. The intention of this extension is to aid in policy administration and reduce the management complexity of maintaining a large autonomous system.</t>
              <t indent="0">This document obsoletes RFC 3065. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5065"/>
          <seriesInfo name="DOI" value="10.17487/RFC5065"/>
        </reference>
        <reference anchor="RFC6286" target="https://www.rfc-editor.org/info/rfc6286" quoteTitle="true" derivedAnchor="RFC6286">
          <front>
            <title>Autonomous-System-Wide Unique BGP Identifier for BGP-4</title>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <author fullname="J. Yuan" initials="J." surname="Yuan"/>
            <date month="June" year="2011"/>
            <abstract>
              <t indent="0">To accommodate situations where the current requirements for the BGP Identifier are not met, this document relaxes the definition of the BGP Identifier to be a 4-octet, unsigned, non-zero integer and relaxes the "uniqueness" requirement so that only Autonomous-System-wide (AS-wide) uniqueness of the BGP Identifiers is required. These revisions to the base BGP specification do not introduce any backward compatibility issues. This document updates RFC 4271. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6286"/>
          <seriesInfo name="DOI" value="10.17487/RFC6286"/>
        </reference>
        <reference anchor="RFC7705" target="https://www.rfc-editor.org/info/rfc7705" quoteTitle="true" derivedAnchor="RFC7705">
          <front>
            <title>Autonomous System Migration Mechanisms and Their Effects on the BGP AS_PATH Attribute</title>
            <author fullname="W. George" initials="W." surname="George"/>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <date month="November" year="2015"/>
            <abstract>
              <t indent="0">This document discusses some existing commonly used BGP mechanisms for Autonomous System Number (ASN) migration that are not formally part of the BGP4 protocol specification. It is necessary to document these de facto standards to ensure that they are properly supported in future BGP protocol work.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7705"/>
          <seriesInfo name="DOI" value="10.17487/RFC7705"/>
        </reference>
        <reference anchor="RFC8403" target="https://www.rfc-editor.org/info/rfc8403" quoteTitle="true" derivedAnchor="RFC8403">
          <front>
            <title>A Scalable and Topology-Aware MPLS Data-Plane Monitoring System</title>
            <author fullname="R. Geib" initials="R." role="editor" surname="Geib"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="N. Kumar" initials="N." surname="Kumar"/>
            <date month="July" year="2018"/>
            <abstract>
              <t indent="0">This document describes features of an MPLS path monitoring system and related use cases. Segment-based routing enables a scalable and simple method to monitor data-plane liveliness of the complete set of paths belonging to a single domain. The MPLS monitoring system adds features to the traditional MPLS ping and Label Switched Path (LSP) trace, in a very complementary way. MPLS topology awareness reduces management and control-plane involvement of Operations, Administration, and Maintenance (OAM) measurements while enabling new OAM features.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8403"/>
          <seriesInfo name="DOI" value="10.17487/RFC8403"/>
        </reference>
        <reference anchor="RFC8664" target="https://www.rfc-editor.org/info/rfc8664" quoteTitle="true" derivedAnchor="RFC8664">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="J. Hardwick" initials="J." surname="Hardwick"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">Segment Routing (SR) enables any head-end node to select any path without relying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only on "segments" that are advertised by link-state Interior Gateway Protocols (IGPs). An SR path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, or a Path Computation Element (PCE). This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) that allow a stateful PCE to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Computation Client (PCC) to request a path subject to certain constraints and optimization criteria in SR networks.</t>
              <t indent="0">This document updates RFC 8408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8664"/>
          <seriesInfo name="DOI" value="10.17487/RFC8664"/>
        </reference>
        <reference anchor="RFC9087" target="https://www.rfc-editor.org/info/rfc9087" quoteTitle="true" derivedAnchor="RFC9087">
          <front>
            <title>Segment Routing Centralized BGP Egress Peer Engineering</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="G. Dawra" initials="G." role="editor" surname="Dawra"/>
            <author fullname="E. Aries" initials="E." surname="Aries"/>
            <author fullname="D. Afanasiev" initials="D." surname="Afanasiev"/>
            <date month="August" year="2021"/>
            <abstract>
              <t indent="0">Segment Routing (SR) leverages source routing. A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with an SR header. A segment can represent any instruction, topological or service based. SR allows for the enforcement of a flow through any topological path while maintaining per-flow state only at the ingress node of the SR domain.</t>
              <t indent="0">The Segment Routing architecture can be directly applied to the MPLS data plane with no change on the forwarding plane. It requires a minor extension to the existing link-state routing protocols.</t>
              <t indent="0">This document illustrates the application of Segment Routing to solve the BGP Egress Peer Engineering (BGP-EPE) requirement. The SR-based BGP-EPE solution allows a centralized (Software-Defined Networking, or SDN) controller to program any egress peer policy at ingress border routers or at hosts within the domain.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9087"/>
          <seriesInfo name="DOI" value="10.17487/RFC9087"/>
        </reference>
        <reference anchor="RFC9256" target="https://www.rfc-editor.org/info/rfc9256" quoteTitle="true" derivedAnchor="RFC9256">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <date month="July" year="2022"/>
            <abstract>
              <t indent="0">Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t indent="0">This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
        <reference anchor="I-D.ietf-idr-sr-policy-safi" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-policy-safi-10" quoteTitle="true" derivedAnchor="SR-BGP-POLICY">
          <front>
            <title>Advertising Segment Routing Policies in BGP</title>
            <author initials="S." surname="Previdi" fullname="Stefano Previdi">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="P." surname="Mattes" fullname="Paul Mattes">
              <organization showOnFrontPage="true">Microsoft</organization>
            </author>
            <author initials="D." surname="Jain" fullname="Dhanendra Jain">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <date month="November" day="7" year="2024"/>
            <abstract>
              <t indent="0">   A Segment Routing (SR) Policy is an ordered list of segments (i.e.,
   instructions) that represent a source-routed policy.  An SR Policy
   consists of one or more candidate paths, each consisting of one or
   more segment lists.  A headend may be provisioned with candidate
   paths for an SR Policy via several different mechanisms, e.g., CLI,
   NETCONF, PCEP, or BGP.

   This document specifies how BGP may be used to distribute SR Policy
   candidate paths.  It introduces a BGP SAFI to advertise a candidate
   path of a Segment Routing (SR) Policy and defines sub-TLVs for the
   Tunnel Encapsulation Attribute for signaling information about these
   candidate paths.

   This documents updates RFC9012 with extensions to the Color Extended
   Community to support additional steering modes over SR Policy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-sr-policy-safi-10"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-sr-segtypes-ext" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-sr-segtypes-ext-06" quoteTitle="true" derivedAnchor="SR-SEGTYPES">
          <front>
            <title>Segment Routing Segment Types Extensions for BGP SR Policy</title>
            <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="S." surname="Previdi" fullname="Stefano Previdi">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="P." surname="Mattes" fullname="Paul Mattes">
              <organization showOnFrontPage="true">Microsoft</organization>
            </author>
            <author initials="D." surname="Jain" fullname="Dhanendra Jain">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <date month="November" day="7" year="2024"/>
            <abstract>
              <t indent="0">   This document specifies the signaling of additional Segment Routing
   Segment Types for signaling of Segment Routing (SR) Policies in BGP
   using SR Policy Subsequent Address Family Identifier.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-sr-segtypes-ext-06"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="Appendix" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-examples-of-programmed-stat">Examples of Programmed States</name>
      <t indent="0" pn="section-appendix.a-1"> 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" sectionFormat="of" derivedContent="Figure 1"/>.</t>
      <t indent="0" pn="section-appendix.a-2">Correctly programmed state:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-appendix.a-3">
        <li pn="section-appendix.a-3.1">
          <t indent="0" pn="section-appendix.a-3.1.1">C assigns label 16001 and binds it to adjacency C-&gt;E </t>
        </li>
        <li pn="section-appendix.a-3.2">
          <t indent="0" pn="section-appendix.a-3.2.1">C signals that label 16001 is bound to adjacency C-&gt;E (e.g., via BGP-LS)</t>
        </li>
        <li pn="section-appendix.a-3.3">
          <t indent="0" pn="section-appendix.a-3.3.1">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-&gt;E</t>
        </li>
        <li pn="section-appendix.a-3.4">
          <t indent="0" pn="section-appendix.a-3.4.1">Using MPLS Traceroute 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 pn="section-appendix.a-3.5">
          <t indent="0" pn="section-appendix.a-3.5.1">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 indent="0" pn="section-appendix.a-4">Incorrectly programmed state:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-appendix.a-5">
        <li pn="section-appendix.a-5.1">
          <t indent="0" pn="section-appendix.a-5.1.1">C assigns label 16001 and binds it to adjacency C-&gt;D</t>
        </li>
        <li pn="section-appendix.a-5.2">
          <t indent="0" pn="section-appendix.a-5.2.1">The controller learns that PeerAdj SID label 16001 is bound to
          adjacency C-&gt;E (e.g., via BGP-LS) -- this could be a software bug
          on C or on the controller</t>
        </li>
        <li pn="section-appendix.a-5.3">
          <t indent="0" pn="section-appendix.a-5.3.1">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-&gt;E</t>
        </li>
        <li pn="section-appendix.a-5.4">
          <t indent="0" pn="section-appendix.a-5.4.1">Using MPLS Traceroute 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-&gt;E) when the OAM
          packet reaches it</t>
        </li>
        <li pn="section-appendix.a-5.5">
          <t indent="0" pn="section-appendix.a-5.5.1">C receives the OAM packet and validates that the top label
          (16001) is NOT bound to C-&gt;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="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">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" format="default" sectionFormat="of" derivedContent="Appendix A"/>.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="S." surname="Hegde" fullname="Shraddha Hegde">
        <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
        <address>
          <postal>
            <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 showOnFrontPage="true">Juniper Networks Inc.</organization>
        <address>
          <email>msri@juniper.net</email>
        </address>
      </author>
      <author initials="K." surname="Arora" fullname="Kapil Arora">
        <organization showOnFrontPage="true">Individual Contributor</organization>
        <address>
          <email>kapil.it@gmail.com</email>
        </address>
      </author>
      <author initials="S." surname="Ninan" fullname="Samson Ninan">
        <organization showOnFrontPage="true">Ciena</organization>
        <address>
          <email>samson.cse@gmail.com</email>
        </address>
      </author>
      <author initials="X." surname="Xu" fullname="Xiaohu Xu">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>xuxiaohu_ietf@hotmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
