<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8287 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8287.xml">
<!ENTITY RFC8029 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8029.xml">
<!ENTITY RFC3443 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3443.xml">
<!ENTITY RFC5226 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY RFC8402 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC9041 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9041.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc submissionType="IETF" category="std" docName="draft-ietf-mpls-egress-tlv-for-nil-fec-09" 
 ipr="trust200902" consensus="true" version="2">
<front>
  <title abbrev="Egress TLV for Nil FEC ">
  Egress TLV for Nil FEC in Label Switched Path Ping and Traceroute Mechanisms</title>

  <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>KA</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="2023"/>
  <area>Routing</area>
  <workgroup>Routing area</workgroup>
  <keyword>FEC</keyword>
  <keyword>OAM</keyword>
  <keyword>OSPF</keyword>
  <keyword>IS-IS</keyword>
  <keyword>SPRING</keyword>
  <abstract>
    <t>MPLS ping and traceroute mechanism as described in RFC 8029 and related
	extensions for SR as defined in RFC 8287 is very useful to 
	validate the control plane and data plane synchronization. 
	In some environments, only some intermediate or transit nodes may 
   have been upgraded to support these validation procedures. A simple
   MPLS ping and traceroute mechanism 
  allows traversing any path without validating the control plane state.
  RFC 8029 supports this mechanism with Nil FEC. The procedures 
  described in RFC 8029 mostly
	apply when the Nil FEC is used as an intermediate FEC in the label stack.
	When all labels in the label stack are represented using Nil FEC,
	it poses some challenges.
	</t>
	<t>This document introduces the new TLV as an extension to exisiting Nil FEC.
	It describes MPLS ping and traceroute procedures using Nil FEC with this
	extension to overcome these challenges.
	</t> 

  </abstract>

  <note title="Requirements Language">
    <t>
	The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", 
	"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 
	in this document are to be interpreted as described in BCP 14 
	<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
	they appear in all capitals, as shown here.
	</t>
  </note>

</front>

<middle>
  <section title="Introduction" anchor='intro'>
		
	<t>Segment routing supports the creation of explicit paths using Adj-
	SIDs, Node-SIDs, and Anycast-SIDs defined in <xref target="RFC8402"/>. 
	In certain usecases, the TE paths are
	built using mechanisms described in <xref target="RFC9256"/>
	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 head-end routers may 
	have the database of its own 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 And Maintenance (OAM) requirement is to be able to ping and 
	trace these paths. </t>
    <t>MPLS ping and traceroute mechanism as described in 
	<xref target="RFC8029"/> and related extensions for SR as defined in 
	<xref target="RFC8287"/> is very useful to precisely validate the control
	plane and data plane synchronization. It also provides the ability to traverse
	multiple ECMP paths and validate each of the ECMP paths. The use of Target FEC
	requires all nodes in the network to have implemented the validation 
	procedures. 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 using ping and traceroute without having to obtain the
	Forwarding Equivalence Class (FEC) for each label.A simple MPLS ping and 
	traceroute mechanism allows for traversing the SR-TE path without validating
	the control plane state.<xref target="RFC8029"/>
	supports this mechanism with FECs like Nil FEC and Generic FEC.</t>
	
	<t>Generic IPv4 and IPv6 FEC are used when the protocol that is advertising
	the label is unknown. The information that is carried in Generic FEC is
	the IPv4 or IPv6 prefix and prefix length. Thus Generic FEC types perform
	an additional control plane validation. However, the details of generic FEC and
	validation procedures are not very detailed in the <xref target="RFC8029"/>.
	The use-case mostly specifies inter-AS VPNs as the motivation.
	Certain aspects of Segment Routing such as anycast SIDs require clear guidelines
	on how the validation procedure should work. Also, Generic FEC may not be widely
	supported and if transit routers are not upgraded to support validation of generic
	FEC, traceroute may fail.
	On other hand, Nil FEC consists of the label and there is no other associated
	FEC information. 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"/> are mostly applicable
	when the Nil FEC is used where the Nil FEC is an intermediate FEC in the
	label stack. When all labels in the label-stack are represented using Nil FEC,
	it poses some challenges.</t>
    <t>  <xref target="Problems_with_Nil_FEC"/> discusses the problems
	associated with using Nil FEC in an MPLS ping/traceroute procedure and
	<xref target="egress_tlv"/> and <xref target="detail_procedure"/> discusses
	simple extensions needed to solve the problem.
    </t>

  </section>

  <section anchor='Problems_with_Nil_FEC' title='Problem with Nil FEC'>

    <t>The purpose of Nil FEC as described in <xref target="RFC8029"/> is to
	ensure hiding of transit tunnel information and in some cases to avoid false
	negatives when the FEC information is unknown.</t>
	<t>This draft uses a single Nil FEC to represent the complete label stack in
	MPLS ping/traceroute packet irrespective of number of segments in the
	label-stack. When a router in the label-stack path receives an MPLS
	ping/traceroute packet, there is no definite way to decide on whether it is
	the intended egress router since Nil FEC does not carry any information.
	So there is high possibility that the packet may be mis-forwarded to an incorrect
	destination but the ping/traceroute might still return success.</t>
	<t>To avoid this problem, there is a need to add additional information in
	the MPLS ping and traceroute packet along with Nil FEC to do minimal
	validation on the egress/destination router and send proper information
	 on success and failure to the ingress router. This additional information should
	help to report transit router information to the ingress/initiator router that
	can be used by an offline application to validate the traceroute path.</t>
	<t>Thus the addition of egress information in the ping/traceroute packet will help
	in validating Nil-FEC on each receiving router on the label-stack path to ensure
	the correct destination. It can be used to check any combination of segments
	on any path without upgrading transit nodes. The code point used for 
	Egress TLV is from the range 32768-65535 and can can be silently dropped
	if not recognised as per <xref target="RFC9041"/>
	</t>

  </section>

  <section title="Egress TLV" anchor='egress_tlv'>

    <t>
	The Egress object is a TLV that MAY be included in an MPLS Echo Request
	message. It is an optional TLV and MUST appear before FEC-stack TLV in the
	MPLS Echo Request packet. This TLV can only be used in LSP Ping/traceroute 
	requests generated
	by the head-end node of an LSP or SR policy for which 
	verification is performed.

	In case multiple Nil FEC is present in Target FEC Stack TLV, Egress TLV
	MUST be added corresponding to the ultimate egress of the label-stack.
	It can be used for any kind of path with Egress TLV added corresponding to
	the endpoint of the path.
	Explicit Path can be created using Node-SID, Adj-SID, Binding-SID etc,
	Egress TLV prefix MUST be derived from path egress/destination.
	The format is as specified below:
	</t>

    <figure anchor="pic_egress_tlv" title="Egress TLV">
    <artwork>
    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             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Prefix (4 or 16 octets)                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    </artwork>
    </figure>
        <t>Type             : 32771 (<xref target="tlv"/>)</t>
      
        <t>Length           : variable based on IPV4/IPV6 prefix. 
							  Length excludes the length of the Type and Length
							  fields. Length will be 4 octets for IPv4 and
							  16 octets for IPv6.</t>

        <t>Prefix           : This field carries the valid IPv4 prefix of length
                       		  4 octets or valid IPv6 Prefix of length 16 octets.
	                          It can be obtained from the egress of Nil FEC
							  corresponding to the last label in the label-stack or
							  SR-TE policy endpoint field
							  <xref target="I.D-ietf-idr-segment-routing-te-policy"/>.
							  </t>

  </section>


  <section title="Procedure" anchor='detail_procedure'>

    <t>This section describes aspects of LSP Ping and Traceroute operations that
	require further considerations beyond <xref target="RFC8029"/>.</t>
    <section title="Sending Egress TLV in MPLS Echo Request" anchor='send_procedure'>
  	  <t>As stated earlier, when the sender node builds an Echo Request with
	  target FEC Stack TLV, Egress TLV MUST appear before Target FEC-stack TLV
	  in the MPLS Echo Request packet.</t>
	<section title="Ping Procedure" anchor='ping_procedure'>
      
        <t>When sender node builds an Echo Request with target FEC Stack TLV
		that contains a single NiL FEC corresponding to the last segment of the
		SR-TE path, the sender node MUST add an Egress TLV with the prefix obtained from
		SR-TE policy endpoint field <xref target="I.D-ietf-idr-segment-routing-te-policy"/>
		to indicate the egress for this Nil FEC in the Echo Request packet.
		The Label value in the Nil FEC MAY be set to zero.
		In case the endpoint is not specified or is equal to 0, the sender MUST use the
		prefix corresponding to the last segment of the SR-TE path as prefix for
		Egress TLV. Some specific cases on how to derive the Prefix 
		in Egress TLV are listed below:</t>
		<t>
		 <list>
		<t>a.	If the last SID in the policy is an Adj-SID, 
		it represents the node at the remote end of the corresponding adjacency</t>
		<t>b.	If the last SID in the policy is a Binding SID, 
		it represents the last node of the path represented by the Binding SID.</t>
        </list>
        </t>

        
	</section>
	
	<section title="Traceroute Procedure" anchor='traceroute_procedure'>
      
        <t>when sender node builds an Echo Request with target FEC Stack TLV
		that contains NiL FEC corresponding to last segment of the segment-list of
		the SR-TE path, the sender node MUST add an Egress TLV with the prefix obtained
		from the SR-TE policy endpoint field 
		<xref target="I.D-ietf-idr-segment-routing-te-policy"/>
		to indicate the egress for this Nil FEC in the Echo Request packet.</t>
		
		<t>Some implementations may send multiple Nil FEC but it is not really
		required. In case the headend sends multiple Nil FECs the last one MUST
		correspond to the Egress TLV. 
		The Label value in the Nil FEC MAY be set to zero for the last Nil FEC.
		In case the endpoint is not specified or is equal to 0 ( as in case of
		color-only SR-TE policy),the sender MUST use the the prefix corresponding
		to the last segment endpoint of the SR-TE path i.e. ultimate egress
		as the prefix for Egress TLV.
		</t>
	</section>
	<section title="Detailed Example" anchor='detail_example'>
        <figure anchor="example_topology" title="Egress TLV processing on sample topology">
        <artwork>
                  ----R3----
                 /  (1003)  \
      (1001)    /            \(1005)     (1007)
        R1----R2(1002)        R5----R6----R7(prefix X)
                \            /     (1006)
                 \   (1004) /
                  ----R4----
        </artwork>
        </figure>		
        <t>Consider the SR-TE policy configured with label-stack as 1002, 1004
	    , 1007 and end point/destination as prefix X on ingress router R1 to
		reach egress router R7. Segment 1007 belongs to R7, which has the prefix X
		locally	configured on it.
	    </t>
	    <t>In Ping Echo Request, with target FEC Stack TLV that contains a single
	    NiL FEC corresponding to 1007, should add Egress TLV for endpoint/destination
		prefix X with type as Egress TLV, length depends on if X is IPv4 or IPv6 address and
	    prefix as X.
	    </t>
	    <t>In Traceroute Echo Request, with target FEC Stack TLV that contains a
		single NiL FEC corresponding to the complete label-stack (1002, 1004, 1007)
		or multiple Nil-FEC corresponding to each label in the label-stack, 
		should add single Egress TLV for endpoint/destination prefix X with type as Egress TLV,
		length depends on if X is IPv4 or IPv6 address and prefix as X.
	    In case X is not present or is set to 0 ( as in the case of color-only SR-TE policy),
		sender should use the endpoint of segment 1007 as a prefix for Egress TLV.
        </t>
		</section>
	   	   
    </section>
    <section title="Receiving Egress TLV in MPLS Echo Request"
	anchor='recv_procedure'>

      <t>No change in the processing for Nil FEC as defined in
	  <xref target="RFC8029"/> in Target FEC stack TLV Node that receives
	  an MPLS echo request. The presence of Egress TLV does not affect the
	  validation of Target FEC Stack sub-TLV at FEC-stack-depth 
	  if it is different than Nil FEC.</t>
      <t>Additional processing is done for the Egress TLV on 
	  the receiver node as follows:
	  </t>
      <t>1. 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")
	  and Best-return-subcode to Label-stack-depth to report transit switching
	  in MPLS Echo Reply message.</t>
	  <t>2. If the Label-stack-depth is 0 and the Target FEC Stack sub-TLV at
	  FEC-stack-depth is Nil FEC then do the lookup for an exact match of the
	  Egress TLV prefix to any of the locally configured interfaces
	  or loopback addresses.</t>
	  <t>       2a. If the Egress TLV prefix lookup succeeds,
	  set Best-return-code to 36 ("Replying router is an egress for the
	  prefix in Egress TLV for the FEC at stack depth RSC")
	  (<xref target="ret_code"/>)  egress ok in MPLS Echo Reply message.</t>
      <t>      2b. If the Egress TLV prefix lookup fails,
	  set the Best-return-code to 10, "Mapping for this FEC is not the given
	  label at stack-depth RSC" </t>
	  <t> 3.In cases where multiple Nil FECs are sent from ingress, 
	  one each corresponding to the
	  labels in the label stack along with Egress TLV,When the packet reaches egress, 
	  the label stack becomes zero, all Nil FEC
		sub-TLVs MUST be removed and the Egress TLV MUST be validated.
		</t>
      
     </section>
  </section>


  <section anchor='backward_compatibility' title='Backward Compatibility'>
	<t>The extension proposed in this document is backward compatible with
	procedures described in <xref target="RFC8029"/>. A Router that does not
	support Egress TLV, will ignore it and use current the Nil-FEC procedures
	described in <xref target="RFC8029"/>.
	</t>
    <t>When the egress node in the path does not support the extensions proposed
	in this draft egress validation will not be done and Best-return-code as 3
	("Replying router is an egress for the FEC at stack-depth") and	Best-return-
	subcode set to stack-depth to will be set in the MPLS Echo Reply message.
	</t>
    <t>When the transit node in the path does not support the extensions proposed
	in this draft Best-return-code as 8 ("Label switched at stack-depth") and
	Best-return-subcode as Label-stack-depth to report transit switching will be
	set in the MPLS Echo Reply message.
	</t>
  </section>
  <section anchor="iana_con" title="IANA Considerations">
    <t>The code points in section <xref target="tlv"/> and <xref target="ret_code"/>
	have been assigned by <xref target="IANA"/> by early allocation on 2023-10-05
	and 2021-11-08 respectively.
	</t>
    <section anchor="tlv" title="New TLV">
    
	  <t> <xref target="IANA"/> needs to assign new value for Egress TLV in the 
	  "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping
	  Parameters" in the "TLVs" sub-registry.
	  </t>
	  <texttable anchor="iana_tlvs_tbl" title="TLVs Sub-Registry">
        <ttcol align="left">Value</ttcol>
        <ttcol align="center">Description</ttcol>
        <ttcol align="left">Reference</ttcol>
        <c>32771</c>
        <c>Egress TLV</c>
        <c><xref target="egress_tlv"/> of this document</c>
      </texttable> 
    </section>
    <section anchor="ret_code" title="New Return code">
    
	  <t> <xref target="IANA"/> need to assign new Return Code for 
	  "Replying router is an egress for the prefix in Egress TLV" in the 
	  "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping
	  Parameters" in "Return Codes" sub-registry.
	  </t>
	  <texttable anchor="iana_return_code_tbl" title="Return code Sub-Registry">
        <ttcol align="left">Value</ttcol>
        <ttcol align="center">Description</ttcol>
        <ttcol align="left">Reference</ttcol>
        <c>36</c>
        <c>Replying router is an egress for the
	  prefix in Egress TLV for the FEC at stack depth RSC</c>
        <c><xref target="recv_procedure"/> of this document</c>
        </texttable>                                              
    </section>
  </section>
  <section title='Security Considerations' anchor='sec-con'>
    <t>This document defines additional MPLS LSP Ping TLVs and follows
	the mechanisms defined in <xref target="RFC8029"/>.
	All the security considerations defined in <xref target="RFC8287"/> will
	be applicable for this document and, in addition, they do not impose any
	additional security challenges to be considered.
	</t>
  </section>
  <section title='Acknowledgements' anchor='ack'>
    <t> Authors would like to thank Stewart Bryant, Greg Mirsky, Alexander Vainshtein 
	and Sanga Mitra Rajgopal for their careful review and comments.</t>
  </section>
</middle>

<back>
  <references title='Normative References'>
  &RFC9041;
  &RFC8402;
  
     <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
       <front>
         <title>Key words for use in RFCs to Indicate Requirement Levels</title>
         <author initials="S." surname="Bradner" fullname="S. Bradner"/>
         <date year="1997" month="March"/>
         <abstract>
           <t>In many standards track documents several words are used to
		   signify the requirements in the specification.  These words are often
		   capitalized. This document defines these words as they should be
		   interpreted in IETF documents.  This document specifies an Internet
		   Best Current Practices for the Internet Community, and requests
		   discussion and suggestions for improvements.</t>
         </abstract>
       </front>
       <seriesInfo name="BCP" value="14"/>
       <seriesInfo name="RFC" value="2119"/>
       <seriesInfo name="DOI" value="10.17487/RFC2119"/>
     </reference>
     <reference anchor="RFC8029" target="https://www.rfc-editor.org/info/rfc8029">
       <front>
         <title>Detecting Multiprotocol Label Switched (MPLS) Data-Plane
		 Failures</title>
         <author initials="K." surname="Kompella" fullname="K. Kompella"/>
         <author initials="G." surname="Swallow" fullname="G. Swallow"/>
         <author initials="C." surname="Pignataro" fullname="C. Pignataro"
		 role="editor"/>
         <author initials="N." surname="Kumar" fullname="N. Kumar"/>
         <author initials="S." surname="Aldrin" fullname="S. Aldrin"/>
         <author initials="M." surname="Chen" fullname="M. Chen"/>
         <date year="2017" month="March"/>
         <abstract>
           <t>This document describes a simple and efficient mechanism to detect
		   data-plane failures in Multiprotocol Label Switching (MPLS) Label
		   Switched Paths (LSPs).  It defines a probe message called an "MPLS
		   echo request" and a response message called an "MPLS echo reply" for
		   returning the result of the probe.  The MPLS echo request is intended
		   to contain sufficient information to check correct operation of the
		   data plane and to verify the data plane against the control plane,
		   thereby localizing faults.</t>
           <t>This document obsoletes RFCs 4379, 6424, 6829, and 7537,
		   and updates RFC 1122.</t>
         </abstract>
       </front>
       <seriesInfo name="RFC" value="8029"/>
       <seriesInfo name="DOI" value="10.17487/RFC8029"/>
     </reference>
     <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
       <front>
         <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
         <author initials="B." surname="Leiba" fullname="B. Leiba"/>
         <date year="2017" month="May"/>
         <abstract>
           <t>RFC 2119 specifies common key words that may be used in protocol
		   specifications.  This document aims to reduce the ambiguity by
		   clarifying that only UPPERCASE usage of the key words have the
		   defined special meanings.</t>
         </abstract>
       </front>
       <seriesInfo name="BCP" value="14"/>
       <seriesInfo name="RFC" value="8174"/>
       <seriesInfo name="DOI" value="10.17487/RFC8174"/>
     </reference>
     <reference anchor="RFC8287" target="https://www.rfc-editor.org/info/rfc8287">
       <front>
         <title>Label Switched Path (LSP) Ping/Traceroute for Segment Routing
		 (SR) IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with MPLS
		 Data Planes</title>
         <author initials="N." surname="Kumar" fullname="N. Kumar"
		 role="editor"/>
         <author initials="C." surname="Pignataro" fullname="C. Pignataro"
		 role="editor"/>
         <author initials="G." surname="Swallow" fullname="G. Swallow"/>
         <author initials="N." surname="Akiya" fullname="N. Akiya"/>
         <author initials="S." surname="Kini" fullname="S. Kini"/>
         <author initials="M." surname="Chen" fullname="M. Chen"/>
         <date year="2017" month="December"/>
         <abstract>
           <t>A Segment Routing (SR) architecture leverages source routing and
		   tunneling paradigms and can be directly applied to the use of a
		   Multiprotocol Label Switching (MPLS) data plane. A node steers a
		   packet through a controlled set of instructions called "segments" by
		   prepending the packet with an SR header.
		   </t>
           <t>The segment assignment and forwarding semantic nature of SR raises
		   additional considerations for connectivity verification and fault
		   isolation for a Label Switched Path (LSP) within an SR architecture.
		   This document illustrates the problem and defines extensions to
		   perform LSP Ping and Traceroute for Segment Routing IGP-Prefix and
		   IGP-Adjacency Segment Identifiers (SIDs) with an MPLS data plane.
		   </t>
         </abstract>
       </front>
       <seriesInfo name="RFC" value="8287"/>
       <seriesInfo name="DOI" value="10.17487/RFC8287"/>
     </reference>
     <reference anchor="RFC9256" target="https://www.rfc-editor.org/info/rfc9256">
       <front>
         <title>Segment Routing Policy Architecture</title>
         <author initials="C." surname="Filsfils" fullname="C. Filsfils"/>
         <author initials="K." surname="Talaulikar " fullname="K. Talaulikar"
		 role="editor"/>
         <author initials="A." surname="Bogdanov" fullname="A. Bogdanov"/>
         <author initials="P." surname="Mattes" fullname="P. Mattes"/>
         <author initials="D." surname="Voyer" fullname="D. Voyer"/>
         <date year="2020" month="July"/>
         <abstract>
           <t>Segment Routing (SR) allows a headend node to steer a packet flow
		   along any path. Intermediate per-flow states are eliminated thanks to
		   source routing. The headend node steers a flow into an SR Policy. The
		   header of a packet steered in an SR Policy is augmented with an
		   ordered list of segments associated with that SR Policy.
		   This document details the concepts of SR Policy and steering into an
		   SR Policy.
		   </t>
         </abstract>
       </front>
       <seriesInfo name="RFC" value="9256"/>
       <seriesInfo name="DOI" value="10.17487/RFC9256"/>
     </reference>
	
	 
	 
     <reference anchor="I.D-ietf-idr-segment-routing-te-policy" 
	 target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-20">
       <front>
         <title>Advertising Segment Routing Policies in BGP</title>
         <author initials="C." surname="Filsfils" fullname="C. Filsfils"
		 role="editor"/>
         <author initials="S." surname="Previdi" fullname="S. Previdi"
		 role="editor"/>
         <author initials="K." surname="Talaulikar " fullname="K. Talaulikar"/>
         <author initials="P." surname="Mattes" fullname="P. Mattes"/>
         <author initials="E." surname="Rosen" fullname="Eric C. Rosen"/>
         <author initials="D." surname="Jain" fullname="D. Jain"/>
         <author initials="S." surname="Lin" fullname="S. Lin"/>
         <date year="2020" month="may"/>
         <abstract>
           <t>This document defines a new BGP SAFI with a new NLRI in order to
		   advertise a candidate path of a Segment Routing (SR) Policy. An SR
		   Policy is a set of candidate paths, each consisting of one or more
		   segment lists. The headend of an SR Policy may learn multiple
		   candidate paths for an SR Policy. Candidate paths may be learned via
		   a number of different mechanisms, e.g., CLI, NetConf, PCEP, or BGP.
		   This document specifies the way in which BGP may be used to
		   distribute SR Policy candidate paths. New sub-TLVs for the Tunnel
		   Encapsulation Attribute are defined for signaling information about
		   these candidate paths.
		   </t>
         </abstract>
       </front>
       <seriesInfo name="" value="draft-ietf-idr-segment-routing-te-policy-20"/>
       <seriesInfo name="" value="work in progress"/>
     </reference>
   </references>
   <references title='Informative References'>  
     <reference anchor="IANA" target="http://www.iana.org/assignments/mpls-lsp-ping-parameters">
       <front>
         <title>Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs)
		 Ping Parameters</title>
		 <author fullname="IANA"/>
         <date/>
         <abstract>
           <t></t>
         </abstract>
       </front>
	 </reference>
  </references>
</back>
</rfc>
