<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="bcp"
      docName="draft-geib-spring-oam-opt-03"
      ipr="trust200902"
      obsoletes=""
      updates=""
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3">
  <!-- xml2rfc v2v3 conversion 2.38.1 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="Reducing MPLS OAM messages by SR">
   An MPLS SR OAM option reducing the number of end-to-end path validations  
   </title>
    <seriesInfo name="Internet-Draft" value="draft-geib-spring-oam-opt-03"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

      <author fullname="Ruediger Geib" initials="R." role="editor" surname="Geib">
      <organization>Deutsche Telekom</organization>

      <address>
        <postal>
          <street>Heinrich Hertz Str. 3-7</street>
          <!-- Reorder these if your country does things differently -->
          <code>64295</code>
          <city>Darmstadt</city>
          <region/>
          <country>Germany</country> 
        </postal>
        <phone>+49 6151 5812747</phone>
        <email>Ruediger.Geib@telekom.de</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    <date year="2022"/>
    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>Routing</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>Segment Routing, MPLS, OAM, traceroute, ping</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
      <t>
	    MPLS traceroute implementations validate dataplane connectivity 
		and isolate faults by sending messages along every end-to-end Label 
		Switched Path (LSP) combination between a source and a destination 
		node. This requires a growing number of path validations in networks 
		with a high number of equal cost paths between origin and destination. 
		Segment Routing (SR) introduces MPLS topology awareness combined with
		Source Routing. By this combination, SR can be used to implement an
		MPLS traceroute option lowering the total number of LSP validations
		as compared to commodity MPLS traceroute. 
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="Introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Commodity MPLS isn't topology aware and it doesn't support
	    standardized source routing methods. It is reasonable to validate 
		connectivity and locate faults of MPLS LSPs by detecting and 
		testing all existing LSP combinations between a source and a 
		destination node. The source node originates all MPLS echo 
		requests and evaluates all MPLS echo replies.  
		Operational MPLS OAM implementations were present, when SR MPLS 
		entered standardisation. They continue to work reliably in many cases. 
		MPLS domains with a high number of equal cost paths between source 
		and destination nodes push the detection capabilities of commodity MPLS OAM 
		to the limit. So far, modes of MPLS OAM operation adding Segment 
		Routing functionality to deal with limitations of commodity MPLS OAM 
		have not been published within IETF.
	  </t>
	  <t>
	    This draft assumes readers to be aware of MPLS OAM functionality 
		as specified by <xref target="RFC8029" format="default">RFC 8029</xref> and 
		<xref target="RFC8287" format="default">RFC 8287</xref>.
	    The function described in the following works for Shortest 
		Path First Paths or Label stacks based on MPLS Node-SID and MPLS Adj-SIDs 
		(if the latter are distributed by Interior Gateway 
		Protocols).  			  
	  </t>	  
	  <t>
	    Networks supporting a high number of equivalent cost paths 
		between source and destination nodes require a high number of 
		completed MPLS path validations. Consider a network with 
		Multiple equal cost paths, as shown in figure 1.
<!-- 	<xref target="RFC2629" format="default">RFC&nbsp;2629</xref>. -->
	  </t>
      <figure anchor="example_network">
        <artwork align="left" name="" type="" alt=""><![CDATA[
          +-R120-+
         /        \
        8          12
       /            \
   R110--8--R121--4--R130
    /                  \
   4  numbers indicate  4
  /   parallel links     \ 
RS                        RD
  \    symmetric to      /
   4...upper network ...4
           ]]></artwork>
      </figure>
      <t>Figure 1: Multiple equal cost path example network.</t>
	  <t>
	    The total number of MPLS LSP combinations between nodes 
		RS and RD is multiplicative by the number of (equal cost, 
		so to say) links per hop. That results in a maximum of 4096=2*4*(8*12+8*4)*4 
		path combinations which a commodity MPLS may try to validate.
        Assume node RS to start an MPLS traceroute to node RD, containing a 
		Multipath Data Sub-TLV requesting Multipath information 
		for 32 IP-addresses. By Equal Cost Multipath routing (<xref target="RFC2991" format="default">ECMP,</xref>)
        traffic of likely 16 of these IP-addresses is forwarded via 
		R110 as next hop (the other 16 addresses are assumed to 
		be forwarded along the symmetric and equal cost paths in 
		the lower half, which are omitted in the figure for brevity). 
		R110 can be expected to respond by an MPLS 
		echo reply indicating prefixes to address each of the 4 
		equal cost (sub-)paths between RS and R110.    			  
	  </t>
	  <t>
	    R110 is able to forward traffic addressed by these 16 IP 
		addresses via 16 equal cost paths. There's a fairly high 
		probability that this will not be possible, as some of 
		R110's availble paths to forward traffic to RD will 
		receive traffic of two or even three MPLS echo request 
		destination IP addresses resulting in an MPLS Echo 
		request being sent from RS to R110 and ahead, while
        other equal cost paths of R110 receive no traffic at all. The MPLS Echo Reply 
		returned to RS will indicate that. A commodity solution is, 
		to start an additional MPLS traceroute from RS with another 32 
		destination IP-addresses. This may help to then enable forwarding 
		of MPLS Echo requests along all of R110's paths to RD via R120 and R121, 
		respectively. With bad luck, R110 will forward only 14 or 
		15 addresses via R120. R120 forwards MPLS Echo requests along 12 equal 
		cost paths to RD. Then again, there's a fair chance that 
		more destination IP-addresses are required to forward at least one MPLS 
		echo request along all of R120 equal cost paths to RD. Each new MPLS Echo 
		Request containing additional IP destination addresses 
		requires completion of the MPLS Echo-Request / Reply dialogue  
		starting from RS to at least all routers along the path 
		to R120.  		
	  </t>
	  <t>
        In the example, roughly 
		only a fourth of the addresses whose forwarding is validated 
		starting from node RS will be routed via R120. ECMP load balancing
		"filters away" 75% of MPLS Echo requests carrying the  
		destination IP-addresses whose forwarding is to be determined. If MPLS Echo requests carrying a full 
		set of 32 destination IP-addresses were reaching R120, the probability of being 
		unable to forward at least one MPLS Echo request to each 
		outgoing interface (or path, respectively) at R110 destined to node RD 
		was rather small.	
	  </t>
	  <t>
	    The reason for completing all MPLS Echo Request / Reply 
		dialogues along the path between RS and R120 is figuring out,
        which destination IP-addresses are routed from R110 to R120 to be 
		available at the latter for local traffic forwarding along paths 
		to RD which can't be addressed otherwise. RFC 8029 section 
		4.1 'Dealing with Equal-Cost Multipath (ECMP)' concludes, 
		that <xref target="RFC8029" format="default">'full coverage may not be possible'</xref>.		
	  </t>
	  <t>
	    Segment Routing (SR) allows node RS to forward MPLS Echo 
		Request packets with up to, e.g., 32 IP addresses to every 
		node which RS detects on a path to node RD. Doing so 
		reduces the number of local router path options to be checked to no 
		more than the sum of the interfaces belonging to one of 
		the ECMP routes between nodes RS and RD. In the case of the
		example network above, this sum is 2*(4+8+8+12+4+4)=80 
		different local router interfaces of routers RS, R110, R120, R121 and R130. 
		That means, that around 2% of the messages and MPLS Label 
		Switched Path checks required with 
		commodity MPLS traceroute implementations are sufficient 
		to validate all local forwarding options for paths from RS 
		to RD (note that the calculation isn't exact, it rather indicates the order 
		of magnitude).
		The commodity MPLS OAM implementations are neither broken 
		nor not working. SR allows an additional router local MPLS OAM method to validate high 
		numbers of ECMP routes reliably and fast. The method proposed here reduces the number
		of MPLS Echo-Request / -Reply dialogues to be stored and 
		completed by the origing of the path validation and it reduces 
		the number of MPLS Echo-Request / -Reply processing at 
		intermediate nodes.  		
	  </t>
	  <t>
        The functions specified by this document do not require changes 
		in the MPLS OAM protocol as specified by <xref target="RFC8029" format="default"></xref> and 
		<xref target="RFC8287" format="default"></xref>. 		
	  </t>
	  
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
       document are to be interpreted as described in <xref target="RFC2119" format="default">RFC 2119</xref>.</t>
      </section>
    </section>
	
    <section anchor="MPLS_OAM_using_SR" numbered="true" toc="default">
	 <name>MPLS OAM adding MPLS SR mechanisms</name>
	  <t>
	    MPLS Segment Routing (SR) provides each node of an MPLS SR 
		domain with this domain's MPLS <xref target="RFC8402" format="default">Node-SID topology</xref>. 
		The SR source routing feature allows to forward packets 
		to each individual node within a SR domain. Combining topology 
		awareness and source routing allows complete validation of all 
		local router shortest path forwarding options from an RS node 
		to an RD node in a domain supporting ECMP.		
	  </t>
	  <t>
	    Suppose SR to be deployed in the case of the example network and digits 
		following the letter "R" to indicate the corresponding Node-SIDs. Assume 
		"mixed operation" of commodity MPLS OAM and the option applying SR.
		RS starts a commodity MPLS Echo request to R110. 
		After having received an MPLS Echo reply from R110 indicating local 
		paths of R110 on which none of the packets with the remaing 16 IP addresses 
		will be forwarded, RS creates an MPLS Echo Request which transports the 
		original 32 IP addresses to R110. To do so, an additional top-Segment is 
		pushed carrying the R110 Node-SID, 110. The message below this additional 
		segment is coded as a standard RFC8287 MPLS Echo request. Two things are 
		special: the  TTL of the MPLS header containing the Node SID of RD is 
		always set to 1. Further, a seperate sequence number series needs to 
		be started to distinguish the starting point of this SR using MPLS OAM
		sequence. Coding space for <xref target="RFC8029" format="default">MPLS OAM Sender's Handle and Sequence Number offer 
		sufficient coding space</xref>. If PHP is active, the R110 Node-SID is 
		implicitly present only on the link to a neighboring node. Still 
		packets with all 32 IP-destination addresses are forwarded to R110. 
		The chances to address all of the 16 ECMP paths of R110 to RD 
		with the originally configured 32 IP-addresses increase.
        The same method is repeated for R120. Now the top Segment picked by node RS
		is the Node-SID of R120, again with a separate Sender's Handle and Sequence 
		Number combination.	Note, that the MPLS Echo request destined to R120 
		doesn't require execution of MPLS OAM functions in R110. That latter 
		node simply forwards the packet to R120. Also R120 receives 32 IP-addresses 
		(which is a significant increase as compared to commodity MPLS OAM). 	
	  </t>
	  <t>
       As a result, the MPLS Echo reply tables maintained by RS likely indicate 
	   several forwarding masks correlated to the same IP address range (discerned by the 
	   intermediate node receiving an MPLS Echo request with top Segment TTL=1). 
	   For every path at an indermediate node, to which the latter can't foward an 
	   MPLS Echo request due to the limited number of available IP-addresses, 
	   a suitable SR top segement is added for an additional next MPLS Echo 
	   request of node RS. This in the end allows to circumvent the IP-address 
	   filtering effect caused by ECMP.    		
	  </t>
	  <t>
       Being able to forward a "complete" set of IP addresses to any interface along an 
	   end-to-end path is helpful in locating errors. Different MPLS OAM
	   addressing options also offer more possibilities to test and unambiguosly 
	   locate a failed sub-path.     		
	  </t>
      <section numbered="true" toc="default">
        <name>Operation in an SR MPLS domain applying only IP-header based ECMP</name>
	  <t>
       The basic operation is to transport an MPLS Echo request from the sender node 
	   sequentially to a next hop identified on any of the paths to a destination node.
	   This is done by applying standard SR methodology, which here consists of pushing one 
	   additional Node-SID on top of the Label-stack to be validated by the sender node.  
	   The Node-SID is set to the value of the node, whose forwarding plane 
	   information is requested by the MPLS Echo request. This is illustrated by figure 2.
	  </t>
      <figure anchor="Protocol_Stack_simple">
        <artwork align="left" name=" " type=" " 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Node-SID of the node whose forwarding information is requested |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                 Sender node MPLS Echo request                 +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]></artwork>
      </figure>
      <t>Figure 2: MPLS OAM Label Stack in the case of IP-header only based ECMP.</t>	   
	  <t> 
       The added Node-SID is only added to use standard MPLS forwarding. 
	   The TTL of this added Node-SID set to the default value for traffic injected 
	   by the sending router. The MPLS-TC may be set to a value ensuring reliable
	   transport up to the node, whose forwarding information is requested by 
	   the sender node (be aware of MPLS-TC treatment of the node popping this 
	   added Node-SID in that case).
      </t>	   
	  <t>
 	   The TTL of the top Label of the sender node MPLS Echo request which is 
	   contained below the added Node-SID initially is set to TTL=1. Other TTL values
	   can be picked if LSPs from the intermediate node onwards to the destination 
	   node of that FEC are desired to be traced or pinged by MPLS OAM messages.
	  </t>	   
	  <t> 
       Two modes of operation exist: either applying legacy MPLS OAM and adding the 
	   described functionality as required or only applying the option specified here. Note that 
	   the exact path from the sender node to the intermediate node identified by 
	   the pushed Node-SID is only known to the node originating and maintaining the 
	   MPLS traceroute information, if only one path exists between that sender node 
	   and an intermediate node.     		
	  </t>
	  <t> 
       If the method is added to commodity MPLS OAM functions, the originatior IP-address 
	   of an MPLS Echo-reply indicating a lack of IP-addresses to forward traffic along 
	   all ECMP egress interfaces at that intermediate node can be used to derive the 
	   Node-SID to be pushed by the MPLS Echo request sender node.     		
	  </t>
	  </section>
	  <section numbered="true" toc="default">
        <name>Operation in an SR MPLS domain additionally using incoming interface information for ECMP</name>
	  <t>
	   This option can only be applied, if the Segment Routing domain's Adj-SID 
	   topology is known to the node originating MPLS Echo Request messages. Configuring the
	   the Interior Gateway Protocol to distribute Adj-SIDs conveniently enables that. 
       If ECMP is additionally using the incoming interface of a packet for 
	   path selection, an Adj-SID is added between the Node-SID and the 
	   MPLS Echo request. As the idea is to determine the incoming interface of the node, 
	   whose ECMP path choices are requested by MPLS OAM, the additionaly pushed Node-SID 
	   here is that of the node preceding the intermediate node, whose forwarding 
	   information is requested. The Adj-SID is chosen to correspond to a specific 
	   incoming interface of the intermediate node whose forwarding information is requested. 
	   As the aim of that test is to ensure that every incoming to outgoing interface path 
	   choice of the intermediate node can be addressed, the topology information required 
	   to identify the upstream Adj-SID corresponding to an incoming interface of the 
	   intermediate node is assumed to be present at and maintained by the node originating 
	   the MPLS data plane failure test. 
	   This additional MPLS to IP topology information excerpt results from prior MPLS 
	   path validations of the same basic set of MPLS path validations between the source 
	   node and the destination node (this is to express, that no extra measurement effort is caused, 
	   as correlation of available information is sufficient). The resulting label stack 
	   is illustrated by figure 3. 
	  </t>
      <figure anchor="Protocol_Stack_ingress_IF">
        <artwork align="left" name=" " type=" " 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Node-SID of node preceding the node whose fwd info is requested|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Adj-SID corresp. to inc-IF of node whose fwd info is requested |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |                                                               |
      +                 Sender node MPLS Echo request                 +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]></artwork>
      </figure>	   
      <t>Figure 3: MPLS OAM Label Stack applying SR features if ECMP is additionally based on incoming interfaces.</t>	   
	  <t> 
	   In the network example of figure 1, node RS picks the Node-SID of R110 and an Adj-SID 
	   of R110 corresponding to a particular incoming interface of R120, if the latter's ECMP path also 
	   depends on the incoming interface, by which the MPLS Echo request was received.
      </t>
	  <t>
	   Here, the full set of original IP-addresses can be forwarded individually per incoming 
	   interface of the router whose MPLS forwarding information is requested. In the example above, 
	   it is node R120 (not node R110.) Monitoring incoming interface based ECMP 
	   results in a higher number of MPLS OAM validations, no matter 
	   whether commodity MPLS OAM is applied or the option specified here. 
	   The overall sum of tests now is determined by the sum of per node 
	   incoming * outgoing paths (or interfaces, respectively). If the method 
	   specified here is applied in the case of the example network, 
       2*(4*8 + 4*8 + 8*12 + 8*4 + 12*4 + 4*4) = 512 MPLS Echo-Request / Response validations 
	   are required. Note that this is still a smaller number as compared to the original 4096 path 
	   validations resulting in the case of comodity MPLS OAM based on IP-address 
	   information only deployed by a domain applying ECMP. Note that the number of required MPLS OAM path 
	   validations is increasing significantly, if ECMP forwarding is in addition based 
	   on incoming interfaces and the product of a nodes incoming * outgoing interfaces is high.	   
	  </t>

    </section>
   </section>
   <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
     <t>
	  This document does not introduce new functionality. It combines Segment 
	  Routing functions with those of MPLS OAM. The related security sections apply, 
	  see <xref target="RFC8029" format="default"></xref> and <xref target="RFC8402" format="default"></xref>. 
     </t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

 <back>
    <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
		<!-- <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8029"?>  
		     <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8287"?>
             <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xml"?>			 
	    These all throw parser errors 
		xml2rfc.parser.XmlRfcError: Unable to resolve external request: "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8287"
		-->
     <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
	 <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2991.xml"?>	 
     <reference anchor="RFC8029" target="https://www.rfc-editor.org/info/rfc8029" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml">
          <front>
            <title>Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures</title>
            <seriesInfo name="DOI" value="10.17487/RFC8029"/>
            <seriesInfo name="RFC" value="8029"/>
            <author initials="K." surname="Kompella" fullname="K. Kompella">
              <organization/>
            </author>
			<author initials="G." surname="Swallow" fullname="G. Swallow">
              <organization/>
            </author>
            <author initials="C." surname="Pignataro" fullname="C. Pignataro">
              <organization/>
            </author>
			<author initials="N." surname="Kumar Nainar" fullname="N. Kumar Nainar">
              <organization/>
            </author>
			<author initials="S." surname="Aldrin" fullname="S. Aldrin">
              <organization/>
            </author>
			<author initials="M." surname="Chen" fullname="M. Chen">
              <organization/>
            </author>			
            <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. This document 
			   obsoletes RFCs 4379, 6424, 6829, and 7537, and updates 
			   RFC 1122.
			  </t>
            </abstract>
          </front>
        </reference>
		<reference anchor="RFC8287" target="https://www.rfc-editor.org/info/rfc8287" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8287.xml">
          <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>
            <seriesInfo name="DOI" value="10.17487/RFC8287"/>
            <seriesInfo name="RFC" value="8287"/>
			<author initials="N." surname="Kumar Nainar" fullname="N. Kumar Nainar">
              <organization/>
            </author>
            <author initials="C." surname="Pignataro" fullname="C. Pignataro">
              <organization/>
            </author>
			<author initials="G." surname="Swallow" fullname="G. Swallow">
              <organization/>
            </author>
            <author initials="N." surname="Akiya" fullname="N. Akiya">
              <organization/>
            </author>
			<author initials="S." surname="Kini" fullname="S. Kini">
              <organization/>
            </author>
			<author initials="M." surname="Chen" fullname="M. Chen">
              <organization/>
            </author>			
            <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. 
			   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>
        </reference>
	    <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
          <front>
            <title>Segment Routing Architecture</title>
            <seriesInfo name="DOI" value="10.17487/RFC8402"/>
            <seriesInfo name="RFC" value="8402"/>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils">
              <organization/>
            </author>
			<author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization/>
            </author>
			<author initials="B." surname="Decraene" fullname="B. Decraene">
              <organization/>
            </author>
			<author initials="S." surname="Litkowski" fullname="S. Litkowski">
              <organization/>
            </author>
			<author initials="R." surname="Shakir" fullname="R. Shakir">
              <organization/>
            </author>			
            <date year="2018" month="July"/>
            <abstract>
              <t>
			   Segment Routing (SR) leverages the source routing paradigm. 
			   A node steers a packet through an ordered list of instructions, 
			   called "segments". A segment can represent any instruction, 
			   topological or service based. A segment can have a semantic 
			   local to an SR node or global within an SR domain. SR provides 
			   a mechanism that allows a flow to be restricted to a specific 
			   topological path, while maintaining per-flow state only at 
			   the ingress node(s) to the SR domain. SR can be directly 
			   applied to the MPLS architecture with no change to the 
			   forwarding plane. A segment is encoded as an MPLS label. An 
			   ordered list of segments is encoded as a stack of labels. The 
			   segment to process is on the top of the stack. Upon completion 
			   of a segment, the related label is popped from the stack. SR 
			   can be applied to the IPv6 architecture, with a new type of 
			   routing header. A segment is encoded as an IPv6 address. An 
			   ordered list of segments is encoded as an ordered list of IPv6 
			   addresses in the routing header. The active segment is 
			   indicated by the Destination Address (DA) of the packet. The 
			   next active segment is indicated by a pointer in the new 
			   routing header.
			  </t>
            </abstract>
          </front>
        </reference>
       </references>
   </references>
    <!-- Change Log

v00 2020-28-10  RG   Initial version

v01 2021-04-30  RG   Clarified wording of the Introduction to improve comprehensability.

v02 2021-10-25  RG   Minor changes.

v03 2022-04-26  RG   Text clarifications and editorial review.
    -->
 </back>
</rfc>
