<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="std" docName="draft-ietf-mpls-egress-tlv-for-nil-fec-15" number="9655" ipr="trust200902" consensus="true" version="3" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true">

  <front>
    <title abbrev="Egress Validation in LSP Ping/Traceroute">Egress Validation
    in Label Switched Path Ping and Traceroute Mechanisms</title>
    <seriesInfo name="RFC" value="9655"/>
    <author initials="D." surname="Rathi" fullname="Deepti N. Rathi" role="editor">
      <organization>Nokia</organization>
      <address>
        <postal>
          <street>Manyata Embassy Business Park</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560045</code>
          <country>India</country>
        </postal>
        <email>deepti.nirmalkumarji_rathi@nokia.com</email>
      </address>
    </author>
    <author initials="S." surname="Hegde" fullname="Shraddha Hegde" role="editor">
      <organization>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="K." surname="Arora" fullname="Kapil Arora">
      <organization>Individual Contributor</organization>
      <address>
        <email>kapil.it@gmail.com</email>
      </address>
    </author>
    <author initials="Z." surname="Ali" fullname="Zafar Ali">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>zali@cisco.com</email>
      </address>
    </author>
    <author initials="N." surname="Nainar" fullname="Nagendra Kumar Nainar">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>naikumar@cisco.com</email>
      </address>
    </author>
    <date year="2024" month="November"/>
    <area>RTG</area>
    <workgroup>mpls</workgroup>
    <keyword>FEC</keyword>
    <keyword>OAM</keyword>
    <keyword>OSPF</keyword>
    <keyword>IS-IS</keyword>
    <keyword>SPRING</keyword>
    <abstract>
      <t>	
	The MPLS ping and traceroute mechanisms described in RFC 8029 and the
	related extensions for Segment Routing (SR) defined in RFC 8287 are
	highly valuable for validating control plane and data plane
	synchronization.  In certain environments, only some intermediate or
	transit nodes may have been upgraded to support these validation
	procedures. A straightforward MPLS ping and traceroute mechanism
	allows traversal of any path without validation of the control plane
	state. RFC 8029 supports this mechanism with the Nil Forwarding
	Equivalence Class (FEC). The procedures outlined in RFC 8029 are
	primarily applicable when the Nil FEC is used as an intermediate FEC
	in the FEC stack. However, challenges arise when all labels in the
	label stack are represented using the Nil FEC.</t>
      <t>This document introduces a new Type-Length-Value (TLV) as an extension
	to the existing Nil FEC. It describes MPLS ping and traceroute procedures 
	using the Nil FEC with this extension to address and overcome these challenges.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Segment routing supports the creation of explicit paths by using one or more 
	Link-State IGP Segments or BGP Segments defined in <xref target="RFC8402" format="default"/>. 
	In certain use cases, the TE paths are
	built using mechanisms described in <xref target="RFC9256" format="default"/>
	by stacking the labels that represent the nodes and links in the explicit path.
	Controllers are often deployed to construct paths across multi-domain networks.
	In such deployments, the headend routers may 
	have the link-state database of their domain and may not be aware of the FEC
	associated with labels that are used by the controller to build 
	paths across multiple domains. A very useful
	Operations, Administration, and Maintenance (OAM) requirement
	is to be able to ping and trace these paths. </t>
      <t>

	<xref target="RFC8029" format="default"/> describes a simple and
	efficient mechanism to detect data plane failures in 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.  SR-related extensions for these
	are specified in <xref target="RFC8287" format="default"/>. <xref
	target="RFC8029" format="default"/> provides mechanisms primarily to
	validate the data plane and secondarily to verify the consistency of
	the data plane with the control plane.  It also provides the ability
	to traverse Equal-Cost Multipaths (ECMPs) and validate each of the
	ECMP paths.  The Target FEC Stack TLV <xref target="RFC8029"
	format="default"/> contains sub-TLVs that carry information about the
	label. This information gets validated on each node for traceroute and
	on the egress for ping.  The use of the Target FEC Stack TLV requires all nodes
	in the network to have implemented the validation procedures, but all
	intermediate nodes may not have been upgraded to support validation
	procedures. In such cases, it is useful to have the ability to
	traverse the paths in ping/traceroute mode without having to obtain
	the FEC for each label. </t>

      <t>A simple MPLS echo request/reply mechanism allows for traversing the
      SR Policy path without validating the control plane state. <xref
      target="RFC8029" format="default"/> supports this mechanism with FECs
      like the Nil FEC  and the Generic
 FECs (i.e., Generic IPv4 prefix and Generic IPv6 prefix).  However, there are challenges in reusing
      the Nil FEC and Generic FECs for validation of SR Policies <xref
      target="RFC9256" format="default"/>.  The Generic IPv4 prefix and Generic
      IPv6 prefix FECs are used when the protocol that is advertising the
      label is unknown. The information that is carried in the Generic FECs is the
      IPv4 or IPv6 prefix and prefix length. Thus, the Generic FEC types perform
      an additional control plane validation. However, the Generic
      FECs and relevant validation procedures are not thoroughly detailed in <xref
      target="RFC8029" format="default"/>.


	The use case mostly specifies inter-AS (Autonomous System) VPNs as the motivation.
	Certain aspects of SR, such as anycast Segment Identifiers (SIDs), require clear guidelines
	on how the validation procedure should work. Also, the Generic FECs may not be widely
	supported, and if transit routers are not upgraded to support validation of Generic
	FECs, traceroute may fail.
	On the other hand, the Nil FEC consists of the label, and there is no other associated
	FEC information. The Nil FEC is used to traverse the path without validation for
	cases where the FEC is not defined or routers are not upgraded to support the
	FECs. Thus, it can be used to check any combination of segments on any data path.
	The procedures described in <xref target="RFC8029" format="default"/> are mostly applicable when the
 Nil FEC is used as an intermediate FEC in the FEC stack.
 Challenges arise when all labels in the label stack are represented
 using the Nil FEC.</t>
      <t>  <xref target="Problems_with_Nil_FEC" format="default"/> discusses the problems
	associated with using the Nil FEC in an MPLS ping/traceroute procedure, and Sections
	<xref target="egress_tlv" format="counter"/> and <xref target="detail_procedure" format="counter"/> discuss
	simple extensions needed to solve the problem.
      </t>
      <t>The problems and the solutions described in this document apply to the
	MPLS data plane. Segment Routing over IPv6 (SRv6) is out of scope for this document.</t>
      <section anchor="Requirements_Language" numbered="true" toc="default">
      <name>Requirements Language</name>
        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
    NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>

      </section>

    </section>


    <section anchor="Problems_with_Nil_FEC" numbered="true" toc="default">
      <name>Problem with Nil FEC</name>
      <t>The purpose of the Nil FEC, as described in <xref target="RFC8029" format="default"/>, is to
	ensure that transit tunnel information is hidden and, in some cases, to avoid false
	negatives when the FEC information is unknown.</t>
      <t>This document uses a Nil FEC to represent the complete label stack in an
	MPLS echo request message in ping and traceroute mode. A single Nil FEC is used
	in the MPLS echo request message irrespective of the number of segments in the
      label stack. <xref target="RFC8029" format="default" sectionFormat="of" section="4.4.1"/> notes:</t>
      <blockquote><t>
	If the outermost FEC of the Target FEC stack is the Nil FEC, then the
	node <bcp14>MUST</bcp14> skip the Target FEC validation completely.</t>
      </blockquote>
   <t>When a router in the label stack path receives an MPLS
	echo request message, there is no definite way to decide whether it is
	the intended egress router since the Nil FEC does not carry any information and no validation
	is performed by the router.
	Thus, there is a high possibility that the packet may be misforwarded to an incorrect
	destination but the MPLS echo reply might still return success.</t>
      <t>
 To mitigate this issue, it is necessary to include additional information,
 along with the Nil FEC, in the MPLS echo request message in both ping and
 traceroute modes and to perform minimal validation on the egress/destination
 router.
	This will enable the router to send appropriate
	success and failure information to the headend router of the SR Policy. This supplementary
	information should assist in reporting transit router details to the 
	headend router, which can be utilized by an offline application
	to validate the traceroute path.
      </t>

      <t>Consequently, the inclusion of egress information in the MPLS
	echo request messages in ping and traceroute modes will facilitate
	the validation of the Nil FEC on the egress router, ensuring the correct 
	destination. Egress information can be employed to
	verify any combination of segments on any path without requiring 
	upgrades to transit nodes.
 The Egress TLV can be silently dropped if not recognized; alternately,
 it may be stepped over, or an error message may be sent (per
	<xref target="RFC8029" format="default"/> and the clarifications in
	<xref target="RFC9041" format="default"/> regarding code points in the range 32768-65535). 
      </t>

      <t>If a transit node does not recognize the Egress TLV and chooses to silently 
	drop or step over the Egress TLV, the
	headend will continue to send the Egress TLV in the next echo request
	message, and if egress recognizes the Egress TLV, egress validation 
	will be executed at the egress.
	If a transit node does not recognize the Egress TLV and chooses to send an error
	message, the headend will log the message for informational purposes and
	continue to send echo requests with the Egress TLV, with the TTL incremented.
	
	If the egress node does not recognize the Egress TLV and chooses to silently 
	drop or step over the Egress TLV, egress validation will not be done,
	and the ping/traceroute procedure will proceed as if the Egress TLV were 
	not received.
      </t>
    </section>
    <section anchor="egress_tlv" numbered="true" toc="default">
      <name>Egress TLV</name>

      <t>
	The Egress TLV <bcp14>MAY</bcp14> be included in an MPLS echo request message.
	It is an optional TLV and, if present, <bcp14>MUST</bcp14> appear before the 
	Target FEC Stack TLV in the MPLS echo request packet. This TLV can 
	only be used in LSP ping/traceroute requests that are generated by 
	the headend node of an LSP or SR Policy for which verification 
	is performed. In cases where multiple Nil FECs are present in 
	the Target FEC Stack TLV, the Egress TLV must be added corresponding
	to the ultimate egress of the label stack. Explicit paths can be
	created using Node-SID, Adj-SID, 
	Binding SID, etc. The Address field of the Egress TLV must be derived 
	from the path egress/destination. The format is as specified in <xref target="pic_egress_tlv"/>.
      </t>
      <figure anchor="pic_egress_tlv">
        <name>Egress 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 = 32771 (Egress TLV)  |          Length             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Address (4 or 16 octets)                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

<dl>      
  <dt>Type:</dt>
  <dd>32771 (<xref target="tlv" format="default"/>)</dd>

  <dt>Length:</dt>
  <dd>Variable (4 octets for IPv4 addresses and 16 octets for IPv6 addresses).
  Length excludes the length of the Type and Length fields.
  </dd>

  <dt>Address:</dt>
  <dd>This field carries a valid 4-octet IPv4 address or a valid
  16-octet IPv6 address.  The address can be obtained from the egress of the
  path and corresponds to the last label in the label stack or the SR Policy
  Endpoint field <xref target="I-D.ietf-idr-sr-policy-safi"
  format="default"/>.</dd>
</dl>
    </section>
    <section anchor="detail_procedure" numbered="true" toc="default">
      <name>Procedure</name>
      <t>This section describes aspects of LSP ping and traceroute operations that
	require further considerations beyond those detailed in <xref target="RFC8029" format="default"/>.</t>
      <section anchor="send_procedure" numbered="true" toc="default">
        <name>Sending Egress TLV in MPLS Echo Request</name>
        <t>As previously mentioned, when the sender node constructs
	  an echo request with a Target FEC Stack TLV, the Egress TLV, 
	  if present, <bcp14>MUST</bcp14> appear before the Target FEC Stack TLV in 
	  the MPLS echo request packet.</t>
        <section anchor="ping_procedure" numbered="true" toc="default">
          <name>Ping Mode</name>
          <t>When the sender node constructs an echo request with a Target FEC Stack TLV
		that contains a single Nil FEC corresponding to the last segment of the
		SR Policy path, the sender node <bcp14>MUST</bcp14> add an Egress TLV with the address obtained from
		the SR Policy Endpoint field <xref target="I-D.ietf-idr-sr-policy-safi" format="default"/>.
		The Label value in the Nil FEC <bcp14>MAY</bcp14> be set to zero when a single Nil FEC is 
		added for multiple labels in the label stack.
		In case the endpoint is not specified or is equal to zero 
		(<xref target="RFC9256" format="default" sectionFormat="of" section="8.8.1"/>), the sender <bcp14>MUST</bcp14> use the
		address corresponding to the last segment of the SR Policy
		in the Address field of
		the Egress TLV. Some specific cases on how to derive the Address field
		in the Egress TLV are listed below:</t>
          <ul spacing="normal">
            <li>
              <t>If the last SID in the SR Policy is an Adj-SID, 
		the Address field in the Egress TLV is derived from the node
		at the remote end of the corresponding adjacency.</t>
            </li>
            <li>
              <t>If the last SID in the SR Policy is a Binding SID, 
		the Address field in the Egress TLV is derived from the
		last node of the path represented by the Binding SID.</t>
            </li>
          </ul>
        </section>
        <section anchor="traceroute_procedure" numbered="true" toc="default">
          <name>Traceroute Mode</name>
          <t>When the sender node builds an echo request with a Target FEC Stack TLV
		that contains a Nil FEC corresponding to the last segment of the segment list of
		the SR Policy, the sender node <bcp14>MUST</bcp14> add an Egress TLV with the address obtained
		from the SR Policy Endpoint field 
		<xref target="I-D.ietf-idr-sr-policy-safi" format="default"/>.
          </t>

	  <t> Although there is no requirement to do so, an implementation
          <bcp14>MAY</bcp14> send multiple Nil FECs if that makes it easier
          for the implementation.  If the SR Policy headend sends
          multiple Nil FECs, the last one <bcp14>MUST</bcp14> correspond to
          the Egress TLV.  The Label value in the Nil FEC <bcp14>MAY</bcp14>
          be set to zero for the last Nil FEC.  If the endpoint is not
          specified or is equal to zero (<xref target="RFC9256"
          format="default" sectionFormat="of" section="8.8.1"/>), the sender
          <bcp14>MUST</bcp14> use the address corresponding to the last
          segment endpoint of the SR Policy path (i.e., the ultimate egress is used as the
          address in the Egress TLV).
          </t>
        </section>
        <section anchor="detail_example" numbered="true" toc="default">
          <name>Detailed Example</name>
          <figure anchor="example_topology">
            <name>Egress TLV Processing in Sample Topology</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
                  ----R3----
                 /  (1003)  \
      (1001)    /            \(1005)     (1007)
        R1----R2(1002)        R5----R6----R7(address X)
                \            /     (1006)
                 \   (1004) /
                  ----R4----
]]></artwork>
          </figure>
          <t>Consider the SR Policy configured on router R1 to destination X,
		configured with label stack as 1002, 1004, 1007. 
		Segment 1007 belongs to R7, which has the address X
		locally	configured on it.
          </t>
          <t>Let us look at an example of a ping echo request message.  The
          echo request message contains a Target FEC Stack TLV with the Nil
          FEC sub-TLV.  An Egress TLV is added before the Target FEC Stack
          TLV. The Address field contains X (corresponding to a locally
          configured address on R7). X could be an IPv4 or IPv6 address, and
          the Length field in the Egress TLV will be either 4 or 16 octets,
          based on the address type of address X.
          </t>
          <t>Let us look at an example of an echo request message in a
          traceroute packet.  The echo request message contains a Target FEC
          Stack TLV with the Nil FEC sub-TLV corresponding to the complete
          label stack (1002, 1004, 1007).  An Egress TLV is added before the
          Target FEC Stack TLV.  The Address field contains X (corresponding
          to a locally configured address on destination R7). X could be an
          IPv4 or IPv6 address, and the Length field in the Egress TLV will be either
          4 or 16 octets, based on the address type of address X.  If the
          destination/endpoint is set to zero (as in the case of the
          color-only SR Policy), the sender should use the endpoint of segment
          1007 (the last segment in the segment list) as the address for the
          Egress TLV.
		
          </t>
        </section>
      </section>
      <section anchor="recv_procedure" numbered="true" toc="default">
        <name>Receiving Egress TLV in MPLS Echo Request</name>
        <t>Any node that receives an MPLS echo request message and processes it
	  is referred to as the "receiver". In the case of the ping procedure, 
	  the actual destination/egress is the receiver.
	  In the case of traceroute, every node is a receiver.

	  This document does not propose any change in the processing of the
	  Nil FEC (as defined in <xref target="RFC8029" format="default"/>) in
	  the node that receives an MPLS echo request with a Target FEC Stack
	  TLV.  The presence of the Egress TLV does not affect the validation
	  of the Target FEC Stack sub-TLV at FEC-stack-depth if it is
	  different than Nil FEC.</t>
        <t>Additional processing <bcp14>MUST</bcp14> be done for the Egress TLV on 
	  the receiver node as follows. Note that &lt;RSC&gt; refers to the Return Subcode.
        </t>
	
<ol spacing="normal" type="1">
        <li><t>If the Label-stack-depth is greater than 0 and the Target FEC Stack
	  sub-TLV at FEC-stack-depth is Nil FEC,
	  set Best-return-code to 8 ("Label switched at stack-depth &lt;RSC&gt;")
	  and Best-rtn-subcode to Label-stack-depth to report transit switching
	  in the MPLS echo reply message.</t></li>
        <li><t>If the Label-stack-depth is 0 and the Target FEC Stack sub-TLV at
	  FEC-stack-depth is Nil FEC, then do a lookup for an exact match of the
	   Address field of the Egress TLV to any of the locally configured interfaces
	  or loopback addresses.</t>
	  <ol spacing="normal" type="a">
            <li>If the Egress TLV address lookup succeeds,
	  set Best-return-code to 36 ("Replying router is an egress for the
	  address in the Egress TLV for the FEC at stack depth &lt;RSC&gt;")

	  (<xref target="ret_code" format="default"/>) in the MPLS echo reply message.</li>
        <li>If the Egress TLV address lookup fails,
	  set the Best-return-code to 10 ("Mapping for this FEC is not the given
	label at stack-depth &lt;RSC&gt;").</li>
	  </ol>
	</li>
        <li><t>In some cases, multiple Nil FECs (one corresponding to each
        label in the label stack), along with the Egress TLV, are sent from
        the SR Policy headend.  When the packet reaches the egress, the number
        of labels in the received packet (size of stack-R) becomes zero, or a
        label with the Bottom-of-Stack bit set to 1 is processed. All Nil FEC
        sub-TLVs <bcp14>MUST</bcp14> be removed, and the Egress TLV
        <bcp14>MUST</bcp14> be validated.</t></li>
</ol>

      </section>
    </section>
    <section anchor="backward_compatibility" numbered="true" toc="default">
      <name>Backward Compatibility</name>
      <t>The extensions defined in this document are backward compatible with the
	procedures described in <xref target="RFC8029" format="default"/>. A router that does not
	support the Egress TLV will ignore it and use the Nil FEC procedures
	described in <xref target="RFC8029" format="default"/>.
      </t>
      <t>
 When the egress node in the path does not support the extensions
 defined in this document, egress validation will not be done, and Best-return-code will be set to 3 ("Replying router is an egress for the FEC at stack-depth &lt;RSC&gt;") and Best-rtn-subcode to stack-depth in
 the MPLS echo reply message.
      </t>
      <t>When the transit node in the path does not support the extensions defined
	in this document, Best-return-code will be set to 8 ("Label switched at stack-depth &lt;RSC&gt;") and
	Best-rtn-subcode to Label-stack-depth to report transit switching
	in the MPLS echo reply message.
      </t>
    </section>
    <section anchor="iana_con" numbered="true" toc="default">
      <name>IANA Considerations</name>

      <section anchor="tlv" numbered="true" toc="default">
        <name>New TLV</name>
        <t>IANA has added the following entry to the "TLVs" registry within
        the "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry group <xref target="IANA-MPLS-LSP" format="default"/>:
        </t>
        <table anchor="iana_tlvs_tbl" align="center">
          <name>TLVs Registry</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">TLV Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">32771</td>
              <td align="left">Egress TLV</td>
              <td align="left">RFC 9655</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="ret_code" numbered="true" toc="default">
        <name>New Return Code</name>
        <t> IANA has added the following entry to the "Return Codes" registry
        within the "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry group <xref target="IANA-MPLS-LSP"
        format="default"/>:
        </t>
        <table anchor="iana_return_code_tbl" align="center">
          <name>Return Codes Registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">36</td>
              <td align="left">Replying router is an egress for the
	  address in the Egress TLV for the FEC at stack depth &lt;RSC&gt;</td>
              <td align="left">RFC 9655</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="sec-con" numbered="true" toc="default">
      <name>Security Considerations</name>

<t>This document defines an additional TLV for MPLS LSP ping and conforms to
	the mechanisms defined in <xref target="RFC8029" format="default"/>.
	All the security considerations defined in <xref target="RFC8287" format="default"/> apply to this document. This document does not
 introduce any additional security challenges to be considered.
      </t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-idr-sr-policy-safi" to="SR-POLICY-BGP"/>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9041.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.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.8029.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.8287.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"/>
      </references>
      <references>
        <name>Informative References</name>

        <reference anchor="IANA-MPLS-LSP" target="http://www.iana.org/assignments/mpls-lsp-ping-parameters">
          <front>
            <title>Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs)
		 Ping Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>

<reference anchor="I-D.ietf-idr-sr-policy-safi" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-policy-safi-10">
<front>
<title>Advertising Segment Routing Policies in BGP</title>
<author initials="S." surname="Previdi" fullname="Stefano Previdi">
<organization>Huawei Technologies</organization>
</author>
<author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
<organization>Cisco Systems</organization>
</author>
<author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" role="editor">
<organization>Cisco Systems</organization>
</author>
<author initials="P." surname="Mattes" fullname="Paul Mattes">
<organization>Microsoft</organization>
</author>
<author initials="D." surname="Jain" fullname="Dhanendra Jain">
<organization>Google</organization>
</author>
<date month="November" day="7" year="2024"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-idr-sr-policy-safi-10"/>
</reference>

      </references>
    </references>
    <section anchor="ack" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t> The authors would like to thank <contact fullname="Stewart
      Bryant"/>, <contact fullname="Greg Mirsky"/>, <contact
      fullname="Alexander Vainshtein"/>, <contact fullname="Sanga Mitra
      Rajgopal"/>, and <contact fullname="Adrian Farrel"/> for their careful
      review and comments.</t>
    </section> 
  </back>

</rfc>
