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

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="std"
      docName="draft-lm-mpls-sfc-path-verification-03"
      ipr="trust200902"
      obsoletes=""
      updates="RFC8595"
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3">

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

 <front>


   <title abbrev="LSP Ping for SFC">MPLS-based Service Function Path(SFP) Consistency Verification</title>
    <seriesInfo name="Internet-Draft" value="draft-lm-mpls-sfc-path-verification-03"/>


   <author fullname="Yao Liu" surname="Liu">
      <organization>ZTE</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>liu.yao71@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>	
	
	 <author fullname="Greg Mirsky" surname="Mirsky">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country></country>
        </postal>
        <phone></phone>
        <email>gregimirsky@gmail.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>	
    <date year="2022"/>

   <!-- Meta-data Declarations -->

   <area></area>
    <workgroup>MPLS WG</workgroup>


   <keyword>MPLS</keyword>
   <keyword>SFC</keyword>
   <keyword>OAM</keyword>


   <abstract>
	<t> This document describes extensions to MPLS LSP ping mechanisms to support verification between the control/management plane and the data plane state for SR-MPLS service programming and MPLS-based NSH SFC.</t>
	<t>This document defines the signaling of the Generic Associated Channel (G-ACh) over a Service Function Path (SFP) with an MPLS forwarding plane using the basic unit defined in RFC 8595. The document updates RFC 8595 in respect to SFF's handling TTL expiration. The document also describes the processing of the G-ACh by the elements of the SFP.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
	<t>Service Function Chain (SFC) defined in <xref target="RFC7665"></xref> as an ordered set of service functions (SFs) to be applied to packets and/or frames, and/or flows selected as a result of classification. </t>
	<t>SFC can be achieved through a variety of encapsulation methods, such as NSH <xref target="RFC8300"></xref>, SR service programming <xref target="I-D.ietf-spring-sr-service-programming"></xref> and MPLS-based NSH SFC <xref target="RFC8595"></xref>.</t>
	<t>This document describes extensions to MPLS LSP ping <xref target="RFC8029"></xref> mechanisms to support verification between the control/management plane and the data plane state for both SR-MPLS service programming and MPLS-based NSH SFC.</t>
	<t>An MPLS LSP ping is a component of the MPLS Operation, Administration, and Maintenance (OAM) toolset. OAM packets used to monitor a specific Service Function Path (SFP) can be transported over a Generic Associated Channel (G-ACh). This document defines the signaling of the G-ACh over an SFP with an MPLS forwarding plane using the basic unit defined in <xref target="RFC8595"></xref>. The document updates <xref target="RFC8595"></xref> in respect to SFF's handling TTL expiration. The document also describes the processing of the G-ACh by the elements of the SFP. </t>
	<t>[Editor's note:] LSP ping for SR-SFC will be discussed in a separate draft in the future, leaving this document focusing on LSP ping for SFC-MPLS. As for LSP ping for SFC-MPLS, although GAL and G-Ach are used currently, the proposal will follow the architecture of MNA <xref target="I-D.andersson-mpls-mna-fwk"></xref> in the future version.</t>
	   
    </section>
	
	<section numbered="true" toc="default">
	<name>Conventions used in this document</name>
	    <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"></xref>.</t>
      </section>
		<section numbered="true" toc="default">
        <name>Terminology and Acronyms</name>
		<t>SFC: Service Function Chain</t>
		<t>SFF: Service Function Forwarder</t>
		<t>SF: Service Function</t>
		<t>SFI: Instance of an SF</t>
		<t>SFP: Service Function Path</t>
		<t>RSP: Rendered Service Path</t>
		<t>SFC-MPLS: SFC over an MPLS forwarding plane introduced in <xref target="RFC8595"></xref></t>
		<t>SR-SFC: SFC achieved by SR service programming <xref target="I-D.ietf-spring-sr-service-programming"></xref></t>
		<t>NSH-SR: SFC based on the integration of Network Service Header (NSH) and SR for SFC <xref target="I-D.ietf-spring-nsh-sr"></xref></t>
		<t>SPL: Special-Purpose Label</t>
		<t>bSPL: Base SPL</t>
		<t>eSPL: Extended SPL</t>
		<t>GAL: Generic Associated Channel Label</t>
		<t>ELI: Entropy Label Indicator</t>
		<t>OAM: Operation, Administration, and Maintenance</t>
		<t>G-ACh: Generic Associated Channel</t>
		<t>GAL: Generic Associated Channel Label</t>
		
		</section>
	</section>
	
<section numbered="true" toc="default">
	<name>MPLS-based SFP Consistency Verification</name>
		<t>MPLS echo request and reply messages <xref target="RFC8029"></xref> can be extended to support the verification of the consistency of an MPLS-based Service Function Path (SFP). </t>
		<t>SR-MPLS/MPLS can be used to realize an SFP. Two methods have been defined:</t>

	  <ul spacing="normal">
        <li><xref target="I-D.ietf-spring-sr-service-programming"></xref> describes how to achieve service function chaining in SR-enabled MPLS and IPv6 networks. In an SR-MPLS network, each SF is associated with an MPLS label. As a result, an SFP can be encoded as a stack of MPLS labels and pushed on top of the packet.</li>
        <li><xref target="RFC8595"></xref> provides another method to realize SFC in an MPLS network by means of using a logical representation of the Network Service Header (NSH) in an MPLS label stack. This method, throughout this document, is referred to as SFC over an MPLS data plane (SFC-MPLS). When an MPLS label stack is used to carry a logical NSH, a basic unit of representation is used, which can be present one or more times in the label stack. This unit comprises two MPLS labels, one carries a label to provide a context within the SFC scope (the SFC Context Label), and the other carries a label to show which SF is to be enacted (the SF Label). SFC forwarding can be achieved by label swapping, label stacking, or the mix of both.  When an SFF receives a packet containing an MPLS label stack, it examines the top basic unit
of the MPLS label stack for SFC, {SPI, SI} or {context label, SFI index}, to determine where to send the packet next.</li>
     </ul>
	<t>In MPLS Label Switched Paths (LSPs), MPLS LSP ping <xref target="RFC8029"></xref> is used to check the correctness of the data plane functioning and to verify the data plane against the control plane.</t>
	<t>The proposed extension of MPLS LSP ping allows verification of the correlation between the control/management (if data model-based central controller used) plane and the data plane state in SR-MPLS/MPLS-based SFC.</t>

	<t>As for NSH-SR, OAM defined for NSH in [draft-ietf-sfc-multi-layer-oam] can be re-used and it is out of the scope of this document.</t>
</section>	

<section numbered="true" toc="default">
	<name>LSP Ping in SFC-MPLS</name>	
<t>In SFC-MPLS, SFFs are responsible for MPLS echo request processing. there're two reasons:</t>

	 <ul spacing="normal">
      <li>In SFC-MPLS, the packet forwarding decision is made by SFFs based on the basic unit. SFs are not aware of the FEC of the basic unit.</li>
	  <li>Generally, except for the designed specific functions, the packet processing functions supported by SFs are limited.
SFs may not support control and/or management protocols operated over the G-ACh defined in <xref target="RFC5586"></xref>, e.g., MPLS OAM protocols like LSP ping. Such packets may be mishandled.</li>
	</ul>

	<t>To support that processing, the basic unit can use the mechanism described in <xref target="spl-sfc-mpls-sec"></xref>.</t>

<section numbered="true"  anchor="spl-sfc-mpls-sec" toc="default">
	<name>Special-purpose Label in SFC-MPLS Environment</name>	
	<t>When an SFC-MPLS is used, an SFF needs to identify an OAM packet with the SFP scope. To achieve that, this specification first defines the use of a base special-purpose label (bSPL) <xref target="RFC3032"></xref> or an extended special-purpose label (eSPL) <xref target="RFC7274"></xref> (referred to in this document as SPL Unit) with the basic unit defined in <xref target="RFC8595"></xref>. And based on that, the use of Generic Associated Channel Label (GAL) <xref target="RFC5586"></xref> with the basic unit in the SFC-MPLS environment.</t>
	<t>Special-purpose label (SPL), whether bSPL or eSPL, has special significance in the data and control planes. An ability to use an SPL in the basic unit allows for a closer functional match between the NSH-based SFC and SFC-MPLS. For example, Entropy Label Indicator (ELI) <xref target="RFC6790"></xref> with the basic unit can be used as the Flow ID TLV <xref target="I-D.ietf-sfc-nsh-tlv"></xref> to allow an SFF to balance SFC flows among SFs of the same type. An SPL MAY be used with the basic unit in SFC-MPLS, as displayed in <xref target="basic-unit-spl-fig"></xref>. Note that an SPL unit MAY be present in one or more basic units when MPLS label stacking is used to carry the SFC information.</t>
	
	<figure anchor="basic-unit-spl-fig">
		<name>Special-purpose Label Unit with the Basic Unit of MPLS Label Stack for SFC</name>
        <artwork align="center" name=""><![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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           SFC Context Label           | TC  |S|       TTL     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                             SPL Unit                          |
      ~                                                               ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           SF Label                    | TC  |S|       TTL     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	  
           ]]></artwork>
      </figure>
	  
	<section numbered="true" anchor="oam-sfc-mpls-sec"  toc="default">
		<name>G-ACh over SFC-MPLS</name>
		<t>SFC-MPLS environment could include instances of an SF (SFI) or SFC proxies that cannot properly process control and/or management protocol messages that are exchanged between nodes over the G-ACh associated with the particular SFP. To support OAM over G-ACh, it is beneficial to avoid handing over a test packet to the SFI or SFC proxy. Hence, this specification defines that if the Generic Associated Channel Label (GAL) immediately follows the SFC Context label <xref target="RFC8595"></xref>, then the packet is recognized as an SFP OAM packet. </t>
		<t>Below are the processing rules of an SFP OAM packet by an SFF:</t>
	 <ul spacing="normal">
      <li>An SFF MUST NOT pass the packet to a local SFI or SFC proxy.</li>
	  <li>The SFF MUST decrement SF Label entry's TTL value. If the resulting value equals zero, the SFF MUST pass the SFP OAM packet to the control plane for processing. An implementation that supports this specification MUST provide control to limit the rate of SFP OAM packets passed to the control plane for processing.</li>
	  <li>If the TTL value is not zero, the SFP OAM packet is processed as defined in Section 6, Section 7, and Section 8 <xref target="RFC8595"></xref>, according to the type of MPLS forwarding used in the SFP.</li>
	</ul>		

	</section>
	
</section>	

	<section numbered="true" toc="default">
	<name>SFC Basic Unit FEC Sub-TLV</name>	
	<t>Unlike standard MPLS forwarding, based on a single label, packet forwarding defined in <xref target="RFC8595"></xref> is based on the basic unit of MPLS label stack for SFC(SFC Context Label+SF Label). A new SFC Basic Unit FEC sub-TLV  with Type value (TBA1) is defined in this document. The SFC Basic Unit FEC sub-TLV MAY be used to carry the corresponding FEC of the basic unit.</t>
	
	<figure anchor="basic-unit-sub-tlv-fig">
		<name>SFC Basic Unit sub-TLV</name>
        <artwork align="center" name=""><![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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Route Distinguisher (RD)                     |
   |                      (8 octets)                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         SF Type               |       Reserved                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	  
           ]]></artwork>
      </figure>
	  
	  <t>The format of the basic unit sub-TLV is shown in <xref target="basic-unit-sub-tlv-fig"></xref> and includes the following fields:</t>
	<ul spacing="normal">
      <li>Route Distinguisher (RD): 8 octets field in SFIR Route Type specific NLRI <xref target="I-D.ietf-bess-nsh-bgp-control-plane"></xref>.</li>
	  <li>SF Type: 2 octets. It is defined in [I-D.ietf-bess-nsh-bgp-control-plane] and indicates the type of SF, such as DPI, firewall, etc.</li>
	</ul>
	 <t>Note: <xref target="I-D.ietf-bess-nsh-bgp-control-plane"></xref> covers the BGP control plane of MPLS-SFC as well.</t>
<t>A node that receives an LSP ping with the Target FEC Stack TLV and the SFC Basic Unit FEC Sub-TLV included will check if it is its Route Distinguisher and whether it advertised that Service Function Type. If the validation is not passed, the SFF will generate an MPLS echo reply with an error code as defined in <xref target="RFC8029"></xref>.</t>	 

	</section>


	<section numbered="true" toc="default">
	<name>SFC Basic Unit Nil FEC Sub-TLV</name>	
	<t><xref target="RFC8029"></xref> is based on the premise that one label corresponds to one FEC sub-TLV. For example, in <xref target="RFC8029"></xref> section 4.4 step 4, before the FEC validation process of an intermediate node first the node should determine FEC-stack-depth from the Downstream Detailed Mapping TLV, and then if the number of FECs in the FEC stack is greater than or equal to FEC-stack-depth, FEC validation is triggered. </t>
	<t>In SFC-MPLS OAM, since one basic unit is related to only one FEC sub-TLV, there may be situations that the label stack in Downstream Detailed Mapping TLV contains two labels, but there is only one FEC in the FEC stack.</t>
	<t>The SFC Basic Unit Nil Sub-TLV(TBA2) is introduced in this document to ensure that the proper validation can still be performed.</t>
		<figure anchor="basic-unit-nil-sub-tlv-fig">
		<name>SFC Basic Unit Nil sub-TLV</name>
        <artwork align="center" name=""><![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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           SFC Context Label           |          MBZ          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           SF Label                    |          MBZ          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
           ]]></artwork>
      </figure>
	<t>SFC Context Label and SF Label are the actual label values inserted in the label stack; the MBZ fields MUST be zero when sent and ignored on receipt.</t>
	<t>The SFC Basic Unit Nil sub-TLV, when present, MUST be immediately followed by an SFC Basic Unit sub-TLV. During FEC validation, an SFF should skip the SFC Basic Unit Nil sub-TLV and use the following SFC Basic Unit sub-TLV to validate the FEC of the basic unit.</t>	

	</section>
	
	<section numbered="true" toc="default">
	<name>Theory of Operation</name>	
	<t>The MPLS echo request is sent with a label stack corresponding to the SFP being tested. To trace SFC-MPLS, the Generic Associated Channel Label (GAL), which immediately follows the SFC Context label is also included.</t>
	<t>If FEC validation is required, the SFC Basic Unit sub-TLV SHOULD be carried in the FEC stack of the request packet, and the SFC Basic Unit Nil sub-TLV MAY also be carried. A Downstream Detailed Mapping TLV MAY be included in the MPLS echo request of the SFP.</t>
	<t>Sending an SFC echo request to the control plane is triggered by one of the following packet processing exceptions: IP TTL expiration, MPLS TTL expiration, or the receiver is SFP's egress SFF.</t>
	<t>As described in <xref target="oam-sfc-mpls-sec"></xref>, the packet with GAL is recognized by the SFF as an SFP OAM packet. The SFF then decrements the SF Label entry's TTL value.  If the resulting value equals zero, the SFF passes the SFP OAM packet to the control plane for processing.  The system that supports this specification then generates a reply message.</t>
	<t>In "traceroute" mode the TTL of the SF Label is set successively to 1, 2, and so on. After all SFFs on the SFP send back MPLS echo reply, the sender collects information about all traversed SFFs and SFs on the rendered service path (RSP).</t>
	<t>But the TTL processing in SR-MPLS is defined in Section 6 of <xref target="RFC8595"></xref>, as follows:</t>

	<dl>
	<dt></dt>
	<dd>If an SFF decrements the TTL to zero, it MUST NOT send the packet and MUST discard the packet.</dd>
	</dl>

	<t>and it excludes TTL expiration as the exception mechanism. As a result, tracing a path of an SFC-MPLS-based service chain is problematic.</t>
	<t>To support the tracing of an SFC, it must be changed to allow punting an OAM packet to the control plane though under throttling control.</t>
<t>Hence, this document updates Section 6 of <xref target="RFC8595"></xref> to state that:</t>

	<dl>
	<dt></dt>
	<dd>If an SFF decrements the TTL to zero, an OAM packet MAY be sent to the control plane given it does not exceed the configured rate intended to protect the system from the possible denial-of-service attack.</dd>
	</dl>
	

	</section>
	
</section>		
	
	
    <section numbered="true" toc="default">
        <name>LSP Ping in SR-SFC</name>	
		<t>In SR service programming, the packet forwarding decision is made based on every single SID/label. The SR proxy SHOULD process the OAM packet for the SF when the SF is not capable of doing so.</t>
		<t>If only the SFP connectivity check is required, the current LSP Ping for SR-MPLS <xref target="RFC8287"></xref> is sufficient.</t>
		<t>If operators want to check more information about the SFP(service segment related SF type, SR proxy type, etc.), new FEC sub-TLVs for the service segment should be defined. </t>
		<t>The format of the new Service Segment Sub-TLV(TBA3) is shown in <xref target="service-seg-sub"></xref>. </t>

		<figure anchor="service-seg-sub">
		<name>Service Segment Sub-TLV</name>
        <artwork align="center" name=""><![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               |          Length               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Service Type             | Traffic Type |Func  Identifier|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           ]]></artwork>
      </figure>
	  
	<t>The Service Type and Traffic Type are taken from the Service Chaining (SC) TLV defined <xref target="I-D.ietf-idr-bgp-ls-sr-service-segments"></xref>.</t>
	<t>Func(Function) Identifier: 1 octets. Function Identifier, as described in <xref target="I-D.ietf-idr-bgp-ls-sr-service-segments"></xref>, identifies the function of this SID, such as Static Proxy, Dynamic Proxy, Shared Memory Proxy, Masquerading Proxy, SR(-MPLS) Aware Service etc.</t>
	<t>There's no definition for Function Identifier field of SR-MPLS-SFC in <xref target="I-D.ietf-idr-bgp-ls-sr-service-segments"></xref> yet. If the control plane defines the  Function Identifier field in the future, this draft shall be consistent with its definition.</t>
		
	</section>		


	
<section numbered="true" toc="default">
	<name>IANA Considerations</name>
	<t>This document requests assigning three new sub-TLVs from the "sub-TLVs for TLV Types 1, 16, and 21" sub-registry of the "Multi-Protocol Label Switching(MPLS) Label Switched Paths (LSPs) Ping Parameters" registry according to <xref target="iana-sfc-val-sub-tlv-tbl"></xref>. </t>


    <table anchor="iana-sfc-val-sub-tlv-tbl">
		<name>Sub-TLV Values</name>
		<thead>
		<tr>
		<td>Value</td><td>Description</td><td>Reference</td>
		</tr>
		</thead>
		<tbody>
		<tr>
		<td>TBA1</td><td>SFC Basic Unit</td><td>This document</td>
		</tr>
		</tbody>
		<tbody>
		<tr>
		<td>TBA2</td><td>SFC Basic Unit Nil</td><td>This document</td>
		</tr>
		</tbody>
		<tbody>
		<tr>
		<td>TBA3</td><td>Service Segment</td><td>This document</td>
		</tr>
		</tbody>
	</table>		 
	 
	 
	 
	</section>	

<section numbered="true" toc="default">
	<name>Security Considerations</name>
	<t>This specification defines the processing of an SFP OAM packet. Such packets could be used as an attack vector. A system that supports this specification MUST provide control to limit the rate of SFP OAM packets sent to the control plane for processing.</t>
	<t>This document defines additional MPLS LSP Ping sub-TLVs and follows the mechanisms defined in <xref target="RFC8029"></xref>.  All the security considerations defined in <xref target="RFC8029"></xref> will be applicable for this document.</t>	
</section>	
	
	
  </middle>


 <back>

   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
  <?rfc include="reference.RFC.2119.xml"?>
  <?rfc include="reference.RFC.8174.xml"?>
  <?rfc include="reference.I-D.ietf-bess-nsh-bgp-control-plane.xml"?>
  <?rfc include="reference.I-D.ietf-spring-sr-service-programming.xml"?>  
  <?rfc include="reference.I-D.ietf-spring-nsh-sr.xml"?>  
  <?rfc include="reference.I-D.ietf-idr-bgp-ls-sr-service-segments.xml"?>   
  <?rfc include="reference.RFC.8029.xml"?> 
  <?rfc include="reference.RFC.8300.xml"?>
  <?rfc include="reference.RFC.8595.xml"?> 
  <?rfc include="reference.RFC.3032.xml"?>
  <?rfc include="reference.RFC.7274.xml"?>  
  <?rfc include="reference.RFC.5586.xml"?>
  <?rfc include="reference.RFC.8287.xml"?>

		
	  
      </references>
      <references>
        <name>Informative References</name>
  <?rfc include="reference.RFC.7665.xml"?>
  <?rfc include="reference.I-D.ietf-sfc-nsh-tlv.xml"?>
  <?rfc include="reference.RFC.6790.xml"?>
  <?rfc include="reference.I-D.andersson-mpls-mna-fwk.xml"?>  
      </references>
    </references>


 </back>
</rfc>
