<?xml version="1.0"?> version="1.0" encoding="utf-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> nbsp    "&#160;">
  <!ENTITY RFC8287 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8287.xml"> zwsp   "&#8203;">
  <!ENTITY RFC8029 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8029.xml"> nbhy   "&#8209;">
  <!ENTITY RFC7705 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7705.xml">
<!ENTITY RFC8690 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8690.xml">
<!ENTITY RFC8174 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8403 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8403.xml">
<!ENTITY RFC8664 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8664.xml">
<!ENTITY RFC4271 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC5065 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5065.xml">
<!ENTITY RFC6286 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6286.xml">
<!ENTITY RFC9086 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9086.xml">
<!ENTITY RFC9087 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9087.xml">
<!ENTITY RFC7942 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7942.xml">
<!ENTITY RFC9256 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9256.xml">
<!ENTITY RFC6793 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6793.xml"> wj     "&#8288;">
]>
<?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
-->

    <title abbrev="EPE-OAM">Label abbrev="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 Data Plane</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>
    <date year="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 Routing to
   solve
      (SR) that solves the problem of egress peer selection.  The Segment Routing based SR-based
      BGP-EPE solution allows a centralized controller, e.g. e.g., a Software
   Defined
      Software-Defined Network (SDN) controller controller, to program any egress peer.
      The EPE solution requires the node or the SDN controller to program 1) the
      PeerNode Segment
   Identifier(SID) Identifier (SID) describing a session between two
      nodes, 2) the PeerAdj SID describing the link (one or more) links that is 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 Segment
   Identifiers (SID) EPE-SIDs that would be are used in
      the MPLS Target stack TLV (Type 1), 1) in MPLS Ping and Traceroute procedures.

 </t>
      procedures.</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction" anchor='intro'> anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t> Egress Peer Engineering (EPE) (EPE), as defined in <xref target ='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 of links links, and sets of
      nodes. Many network deployments have built their networks consisting of
      multiple Autonomous
Systems, Systems (ASes) either for the ease of operations or as a
      result of network mergers and acquisitions. The inter-AS links
      connecting any two Autonomous Systems 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 detected easily detected by the network operator. EPE-SIDs may
      also be used in an ingress SR Segment Routing (SR) policy <xref target ='RFC9256'/>to target="RFC9256"
      format="default"/> to choose exit points where the remote AS belongs to has
      a completely different ownership. This scenario is out of scope of for this
      document.
      </t>
 <t>
      <figure anchor="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 2 AS2  |\  +------+
   |         |/     +------+ \ |      |---L/8
   A   AS1   C---+            \|      |
   |         |\\  \  +------+ /| AS 4 AS4  |---M/8
   |         | \\  +-E      |/ +------+
   |    X    |  \\   |      K
   |         |   +===F AS 3 AS3  |
   +---------+       +------+

    </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 in BGP-LS the Border
      Gateway Protocol - Link State (BGP-LS) <xref target="RFC9086"/>. target="RFC9086"
      format="default"/>.  In certain cases 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 C, a PeerAdj SID could be advertised to
      indicate it is for the link C->D. C-&gt;D.  Due to some software anomaly, the
      actual data forwarding on this PeerAdj SID could be happening over the C->E
      C-&gt;E link.  If E had relevant data paths for further forwarding the
      packet, this kind of anomaly will 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"/>. target="Appendix" format="default"/>.
      A FEC Forwarding Equivalence Class (FEC) definition for the EPE-SIDs will define the details of
      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 EBGP External BGP (EBGP) session
      between the ASBRs, a PeerNode SID is advertised, and the traffic MAY
      <bcp14>MAY</bcp14> be load-balanced between the interfaces connecting
      the two nodes.  In the reference
    diagram, <xref target="reference_diagram" format="default"/>,
      C and F could have a PeerNode-SID PeerNode SID advertised.  When the OAM Operations,
      Administration, and Maintenance (OAM) packet is received on F, it needs
      to be validated that the packet came from one of the two interfaces
      connected to C.
      </t>
      <t> This document provides Target Forwarding Equivalence Class (FEC)
 stack
      Stack TLV definitions for EPE-SIDs.  This solution requires that the
      node constructing the target FEC stack can to determine the type types of the
      SIDs along the path of the LSP. Other procedures for MPLS Ping and Traceroute
      Traceroute, as defined in <xref target="RFC8287"/> section 7 target="RFC8287" sectionFormat="of"
      section="7"/> and clarified by in <xref target="RFC8690"/> target="RFC8690" format="default"/>,
      are applicable for EPE-SIDs as well.</t>
    </section>
    <section title="Theory anchor="operation" numbered="true" toc="default">
      <name>Theory of Operation" anchor='operation'> Operation</name>
      <t><xref target ='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 <xref target ='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
      <xref target="RFC8664"/>. target="RFC8664" format="default"/>.  Data plane monitoring for
      such paths which 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
MAY <bcp14>MAY</bcp14> be initiated by the head-end of
      the Segment Routing SR path or a centralized topology-aware data plane
      monitoring system system, as described in <xref target="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 <xref target ='I-D.ietf-idr-segment-routing-te-policy'/>
      target="I-D.ietf-idr-segment-routing-te-policy" format="default"/> and
      <xref target="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 of the scope for this document.  The node initiating
      the data plane monitoring may acquire the details of EPE-SIDs through
      BGP-LS advertisements advertisements, as described in <xref target ='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 links which that run EBGP
      sessions. <xref target ='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 migration scenario scenario, procedures described in
      <xref target="RFC7705"/> target="RFC7705" format="default"/> may be in force.  In these
      scenarios, if the local and remote AS fields in the FEC
as (as described in
      <xref target="FEC_definitions"/> carries target="FEC_definitions" format="default"/>) carry the globally
      configured ASN Access Service Network (ASN) and not the "local AS" as (as defined in <xref target="RFC7705"/>,
      target="RFC7705" format="default"/>), then the FEC validation procedures may
      fail. </t>
<t> As
      <t>As described in <xref target="intro"/>, target="intro" format="default"/>, this
      document defines FEC stack TLVs for EPE-SIDs, EPE-SIDs that can be used in
      detecting MPLS data plane failures <xref target="RFC8029"/>. target="RFC8029"
      format="default"/>. This mechanism applies to paths created across
across
      ASes of co-operating cooperating administrations. If the ping or traceroute
      packet enters a non co-operating non-cooperating AS domain, it might be dropped by the
      routers in the
non co-operating non-cooperating domain. Although a complete path
      validation cannot be done across,
non co-operating across non-cooperating domains, it still
      provides useful information that the
 ping/traceroute ping or traceroute packet entered a non co-operating
      non-cooperating domain.</t>
    </section>
    <section title="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, <xref target="RFC2119"/>, target="RFC2119"
      format="default"/>, <xref target="RFC8174"/> target="RFC8174" format="default"/> when, and
      only when, they appear in all capitals, as shown here. </t>
    </section>
    <section anchor='FEC_definitions' title='FEC Definitions'> anchor="FEC_definitions" numbered="true" toc="default">
      <name>FEC Definitions</name>
      <t>
   Three 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).</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 SID align="center">
     <name>New Sub-TLV
             TBD3      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>

      <section anchor='peer_node_sid' title='PeerNode anchor="peer_node_sid" numbered="true" toc="default">
        <name>PeerNode SID Sub-TLV'> Sub-TLV</name>
        <figure anchor="peer_node_sid_tlv" title="PeerNode anchor="peer_node_sid_tlv">
          <name>PeerNode SID Sub-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 = TBD2 39                      |          Length               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local AS Number (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Remote AS Number (4 octets)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local BGP router Router 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 AS Number : 4 octets</t>

			<t>The Number:</dt><dd>4 octets. The unsigned integer
          representing the AS number <xref target ='RFC6793'/> target="RFC6793" format="default"/>
          of the AS to which the PeerNode SID advertising node belongs. If
          Confederations <xref target ='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 Confederation Identifier.</t>

        <t>Remote Identifier.</dd>
          <dt>Remote AS Number : 4 octets</t>

			<t>The Number:</dt><dd>4 octets. The unsigned integer
          representing the AS number <xref target ='RFC6793'/> target="RFC6793" format="default"/>
          of the AS of the remote node for which the PeerNode SID is
          advertised. If Confederations <xref target ='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 Confederation Identifier.</t>

        <t>Local
          Identifier.</dd>
	  <dt>Local BGP Router ID : 4 octets </t>
            <t>unsigned ID:</dt><dd>4 octets.  Unsigned integer
	  representing the BGP Identifier of the PeerNode SID advertising node
	  as defined in <xref target ='RFC4271'/> target="RFC4271" format="default"/> and <xref target ='RFC6286'/>. </t>
        <t>Remote
	  target="RFC6286" format="default"/>. </dd>
          <dt>Remote BGP Router ID :  4 octets</t>
            <t>unsigned ID:</dt><dd>4 octets.  Unsigned integer
          representing the BGP Identifier of the remote node as defined in
          <xref target ='RFC4271'/> target="RFC4271" format="default"/> and <xref target ='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 this session session, and traffic can be
    load balanced
        load-balanced across these interfaces.  An EPE controller that does performs
        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 Mapping TLV (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 this information information, the controller MAY <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, include the received DDMAP validation validation, as specified in
        <xref target ='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 in the this document.</t>
      </section>
      <section anchor='peer_adj_sid' title='PeerAdj anchor="peer_adj_sid" numbered="true" toc="default">
        <name>PeerAdj SID Sub-TLV'> Sub-TLV</name>
        <figure anchor="peer_adj_sid_tlv" title="PeerAdj anchor="peer_adj_sid_tlv">
          <name>PeerAdj SID Sub-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 = TBD1 38                      |          Length               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Adj-Type      |            RESERVED                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local AS Number (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Remote AS Number (4 octets)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local BGP router Router ID (4 octets)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Remote BGP Router ID (4 octets)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local Interface address Address (4/16 octets)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Remote Interface address Address (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 Length
                              fields.For fields. For
        IPv4 interface addresses addresses, the length will be 28 octets.  In the case of an
        IPv6 address address, the length will be 52 octets.</t>
		<t>Adj-Type         : 1 octet</t>
		<t>                   Value: Set octets.</dd>
        <dt>Adj-Type:</dt><dd>1 octet</dd>
        <dt>Value:</dt><dd>Set to 1 when the Adjacency Segment is IPv4 IPv4. Set to
        2 when the Adjacency Segment is IPv6</t>
		<t> RESERVED        : 3 IPv6.</dd>
        <dt>RESERVED:</dt><dd>3 octets. MUST <bcp14>MUST</bcp14> be zero when sending,
        sending and ignored on receiving.</t>
        <t>Local receiving.</dd>
        <dt>Local AS Number  : 4 octets</t>
        <t>The Number:</dt><dd>4 octets. The unsigned integer
        representing the AS number <xref target ='RFC6793'/> target="RFC6793" format="default"/>
        of the AS to which the PeerAdj SID advertising node belongs. If
        Confederations <xref target ='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 Confederation Identifier.</t>
        <t>Remote Identifier.</dd>
        <dt>Remote AS Number : 4 octets</t>
            <t>The Number:</dt><dd>4 octets.  The unsigned integer
        representing the AS number<xref target ='RFC6793'/>  of the AS number <xref target="RFC6793" format="default"/> of
        the remote node node's AS for which the PeerAdj SID is advertised. If
        Confederations <xref target ='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 Confederation Identifier.</t>
        <t>Local Identifier.</dd>
        <dt>Local BGP Router ID : 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 <xref target ='RFC4271'/> target="RFC4271" format="default"/> and <xref target ='RFC6286'/>. </t>
        <t>Remote
        target="RFC6286" format="default"/>.</dd>
        <dt>Remote BGP Router ID : 4 octets </t>
            <t> unsigned ID:</dt><dd>4 octets. Unsigned integer
        representing the BGP Identifier of the remote node as defined in <xref target ='RFC4271'/>
        target="RFC4271" format="default"/> and <xref target ='RFC6286'/>. </t>
        <t>Local target="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/16 octets</t>
            <t>In octets

   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.  For IPv4,this 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.</t>

         <t>Remote document.</dd>
        <dt>Remote Interface Address :4 octets/16 octets</t>
            <t>In Address:</dt><dd>4 octets or 16 octets.  In the
        case of PeerAdj SID SID, the Remote interface address corresponding to the
        PeerAdj SID should be apecified 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..</t> document.</dd>
	</dl>

        <t><xref target ='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 OAM packet and packet, but if the remote
        descriptor is 0 0, 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 receiver SHOULD
        <bcp14>SHOULD</bcp14> skip the validation for the incoming interface
        if the address field contains 0.</t>
      </section>
      <section anchor='peer_set_sid' title='PeerSet anchor="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 SID Sub-TLV'> Sub-TLV</name>
        <figure anchor="peer_set_sid_tlv" title="PeerSet anchor="peer_set_sid_tlv">
          <name>PeerSet SID Sub-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 = TBD3 40                     |          Length               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local AS Number (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Local BGP router Router ID (4 octets)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    No.of elements in set      |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Remote AS Number (4 octets)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Remote BGP Router ID (4 octets)                  |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++

 One element in set consists of below the 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                : 2  Expressed 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 Length fields.</t>

        <t>Local fields.</dd>
        <dt>Local AS Number :4 octets </t>
           <t>The Number:</dt><dd>4 octets.  The unsigned integer
        representing the AS number <xref target ='RFC6793'/> target="RFC6793" format="default"/>
        of the AS to which the PeerSet SID advertising node belongs. If
        Confederations <xref target ='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 Confederation Identifier.</t>
		 <t>Local Identifier.</dd>
        <dt>Local BGP Router ID : 4 octets </t>
            <t> ID:</dt><dd>4 octets.  The unsigned integer
        representing the BGP Identifier of the PeerSet SID advertising node node, as
        defined in <xref target ='RFC4271'/> target="RFC4271" format="default"/> and <xref target ='RFC6286'/>. </t>
		<t>No.of
        target="RFC6286" format="default"/>. </dd>
        <dt>No.of elements in set: 2 octets</t>
		<t> set:</dt><dd>2 octets.  The number of remote
        ASes over which the set SID performs load balancing.</t>
		 <t> Reserved : 2 load-balancing.</dd>
        <dt>Reserved:</dt><dd>2 octets. MUST <bcp14>MUST</bcp14> be zero when sent
        and ignored when received.</t>

        <t>Remote received.</dd>
        <dt>Remote AS Number : 4 octets </t>
            <t>The Number:</dt><dd>4 octets.  The unsigned integer
        representing the AS number <xref target ='RFC6793'/> of the AS target="RFC6793" format="default"/>
        of the remote node node's AS for which the PeerSet SID is
        advertised. If Confederations <xref target ='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 Confederation Identifier.</t>

        <t>Remote
        Identifier.</dd>
        <dt>Remote BGP Router ID : 4 octets  </t>
            <t>unsigned ID:</dt><dd>4 octets.  The unsigned integer
        representing the BGP Identifier of the remote node as defined in <xref target ='RFC4271'/>
        target="RFC4271" format="default"/> and <xref target ='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 SIDs MUST <bcp14>MUST</bcp14> be included in the FEC.</t>
      </section>
    </section>
    <section anchor="validation" title="EPE-SID numbered="true" toc="default">
      <name>EPE-SID FEC validation">
 <t>
When Validation</name>
      <t>When a remote ASBR of the EPE-SID advertisement receives the MPLS OAM
      packet with the top FEC being the EPE-SID, it MUST <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. FEC.</t>
      <figure anchor="length_check" title="Length Validation">

      <artwork> anchor="length_check">
        <name>Length Validation</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
 PeerAdj SID
 -----------
 if
 If Adj type = 1 1, 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 request received" received", as defined in <xref target="RFC8029"/>
 MUST target="RFC8029"
      format="default"/> <bcp14>MUST</bcp14> be sent.  The below section below is
      appended to the procedure given in Section 7.4
   point step 4a of <xref target="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 FEC validiation">
   <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-Adjacency SID SID,
         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 is TBD1 38 (PeerAdj SID sub-TLV), {

    Set the Best-return-code to 10, "Mapping for this FEC is not
    the given label at stack-depth  if stack-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 is a 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 FEC sub-TLV.

    If the Remote interface address is not zero, validate the
    incoming interface.  Set the Best-return-code to 35 35,
    "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 was receieved, received matches with the remote
              interface specified in the PeerAdj SID FEC sub-TLV sub-TLV.

    If all above validations have passed, set the return code to 3 3,
    "Replying router is an egress for the FEC at stack-depth" stack-depth".
    }

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

    Set the Best-return-code to 10, "Mapping for this FEC is not
    the given label at stack-depth  if stack-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 is a 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 3,
    "Replying router is an egress for the FEC at stack-depth".
    }
Else, if the Target FEC sub-TLV at FEC-stack-depth is TBD3 40
     (PeerSet SID sub-TLV), {

    Set the Best-return-code to 10, "Mapping for this FEC is not
    the given label at stack-depth"  if stack-depth".  If any below conditions
    fail:

       -  Validate that the Receiving Node BGP Local AS matches
          with one of the remote AS field fields in the received
          PeerSet SID FEC sub-TLV.

       -  Validate that the Receiving Node BGP Router-ID matches
          with one of the Remote Router ID field fields in the
          received PeerSet SID FEC sub-TLV.

       -  Validate that there is a 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 fields in the received
          PeerSet SID FEC sub-TLV.

    If all above validations have passed, set the return code to 3 3,
    "Replying router is an egress for the FEC at stack-depth"
	}
 </artwork>

</t> stack-depth".
    }]]></artwork>
      </section>
    </section>
    <section anchor="IANA" title="IANA Considerations">
    <t>IANA numbered="true" toc="default">
      <name>IANA Considerations</name>

<!-- [rfced] We have included some specific questions about the IANA
text below. In addition to responding to those questions, please
review all of the IANA-related updates carefully and let us know
if any further updates are needed.

a) It appears that the "IANA Considerations" section references the
"Sub-TLVs for TLV Types 1, 16, and 21" registry in the "Multiprotocol
Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters"
registry group, but it does not include a citation for this registry
here or in the references section.

May we add the following citation as a normative or informative
reference as shown below?

Original:
   IANA is requested to allocate three new Target FEC stack sub-TLVs
   from the "Sub-TLVs for TLV types 1,16 and 21" subregistry in the
   "TLVs" registry of the "Multi-Protocol Label switching (MPLS) Label
   Switched Paths (LSPs) Ping parameters" namespace.

        <list>
        <t>PeerAdj SID Sub-TLV : TBD1</t>
        <t>PeerNode SID Sub-TLV: TBD2</t>
        <t>PeerSet SID Sub-TLV : TBD3</t>
        </list>
    The

Perhaps:
   IANA has allocated three lowest free values new Target FEC stack sub-TLVs in the
   "Sub-TLVs for TLV Types 1, 16, and 21" registry
   [IANA-MPLS-LSP-PING-Parameters] within the "TLVs" registry of the
   "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs)
   Ping Parameters" registry group.

Reference:
   [IANA-MPLS-LSP-PING-Parameters]
       IANA, "Sub-TLVs for TLV Types 1, 16, and 21",
       <https://www.iana.org/assignments/mpls-lsp-ping-parameters>.

b) We have removed "Sub-TLV" from the Standard Tracks range entries in Tables 1 and 2 per
IANA's note. Please let us know if "Sub-TLV" should be
removed from any other instances in the running text for consistency.
We note the following variations:

  PeerAdj SID
  PeerAdj SID FEC
  PeerAdj SID FEC sub-TLV
  PeerAdj SID Sub-TLV
  PeerAdj SID sub-TLV

  PeerSet SID sub-TLV
  PeerNode SID sub-TLV
-->

      <t>IANA has allocated if 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>
    <section title='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 for Egress Peer Engineering EPE
       purposes or for inter-AS links between co-operating cooperating ASes.
       When co-operating cooperating domains are involved, they can allow the packets
       arriving on trusted interfaces to reach the control plane
       and get be 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 such deployments deployments, 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.
       <xref target="RFC8287"/> target="RFC8287" format="default"/> does not mandate that the initiator initiator,
       upon receiving an MPLS Echo Reply message that includes the
       FEC Stack Change TLV with one or more of the original
       segments being popped popped, remove a the 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 to be removed before publishing as an RFC.
  </t>
  <t>
  RFC-Editor: Please clean up the references cited by this section
   before publication.
  </t>
  <t>
  This section records the status of known implementations of RE] XML for the
   protocol defined by "Sub-TLVs for TLV Types 1, 16, and 21"
registry (Note: this specification at reference needs a cite tag/reference anchor in the time 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'
is based on a proposal described in
   <xref target ='RFC7942'/>.
   The description of implementations in expired and has been replaced by
'draft-ietf-idr-bgp-sr-segtypes-ext' and
'draft-ietf-idr-sr-policy-safi', may we replace the current
reference entry with the entries for these two drafts?

Note that this section is intended would include adding two reference tags to
   assist the IETF
text in its decision processes Section 2.

Original:
   [SR-TE-POLICY]
              Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and
              D. Jain, "Advertising Segment Routing Policies in progressing drafts to
   RFCs.  Please note that BGP",
              Work in Progress, Internet-Draft, draft-ietf-idr-segment-
              routing-te-policy-26, 23 October 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-idr-
              segment-routing-te-policy-26>.

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 the listing title of any individual implementation
   here does not imply endorsement by the IETF.  Furthermore, no effort
   has been spent appendix to verify avoid the information presented here that was
   supplied by IETF contributors.  This is not intended as, and must not
   be construed to be, a catalog
repetition of available 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 of this 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 review
Correctly and comments. Thanks to Tarek Saad for providing the example
described in Incorrectly Programmed States" or "Examples of
Programmed States?

Current:
   Appendix section.	</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 describes an example examples of both a correctly programmed state 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'/>, target="reference_diagram"
      format="default"/>.</t>
      <t>Correctly programed programmed state:</t>
  <list>
<t>•	C

      <ul spacing="normal">
        <li>
          <t>C assigns label 16001 and binds it to adjacency C->E C-&gt;E </t>
<t>•	C
        </li>
        <li>
          <t>C signals that label 16001 is bound to adjacency C->E (e.g. C-&gt;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 adjacency C->E</t>
<t>•	Using C-&gt;E</t>
        </li>
        <li>
          <t>Using MPLS trace procedures defined in this document, the PeerAdj
          SID Sub-TLV is populates populated with entities to be validated by C when the
          OAM packet reaches it.</t>
<t>•	C it</t>
        </li>
        <li>
          <t>C receives the OAM packet, it packet 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>Incorrectly programed programmed state:</t>
<list>
<t>•	C
      <ul spacing="normal">
        <li>
          <t>C assigns label 16001 and binds it to adjacency C->D</t>
<t>•	The C-&gt;D</t>
        </li>
        <li>
          <t>The controller learns of that PeerAdj SID label 16001 is bound to
          adjacency C->E (e.g. C-&gt;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 adjacency C->E</t>
<t>•	Using
          C-&gt;E</t>
        </li>
        <li>
          <t>Using MPLS trace procedures defined in this document, the PeerAdj
          SID Sub-TLV is populates populated with entities to be validated by C
          (including a local/remote interface address of C->E) C-&gt;E) when the OAM
          packet reaches it.</t>
<t>•	C it</t>
        </li>
        <li>
          <t>C receives the OAM packet, it packet and validates that the top label
          (16001) is NOT bound to C->E C-&gt;E as populated in the PeerAdj SID
          Sub-TLV and can respond then 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>