<?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="std"
      docName="draft-han-spring-srv6-underlay-tunnel-programming-02"
      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="Underlay tunnel Programming with SRv6">SRv6 Underlay tunnel Programming </title>
    <seriesInfo name="Internet-Draft" value="draft-han-spring-srv6-underlay-tunnel-programming-02"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

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

    <author fullname="Liuyan Han" initials="L." surname="Han">
      <organization>China mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Beijing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>hanliuyan@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
     <author fullname="Minxue Wang" initials="M." surname="Wang">
      <organization>China mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Beijing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>wangminxue@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	   <author fullname="Ran Chen" initials="R." surname="Chen">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>chen.ran@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	   <author fullname="aihua Liu" initials="A." surname="Liu">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Shenzhen</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>liu.aihua@zte.com.cn</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>SPRING</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>Internet Draft</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>This document defines a new SRv6 Endpoint behavior which can be used for SRv6 underlay tunnel (e.g.L1 channel) Programming, called END.BXC, this behavior are used to bind an underlay tunnel.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
	  <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header as described in <xref target="RFC8986"/>.</t>
	  <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
	  <t>This document defines a new SRv6 Endpoint behavior which can be used for SRv6 underlay tunnel (e.g.L1 channel) Programming, called END.BXC, this behavior are used to bind an underlay tunnel.</t>
	</section>
      <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 numbered="true" toc="default">
        <name>Problems and Solutions</name>
		<section numbered="true" toc="default">
        <name>Problems</name>
		  <figure anchor="xml_happy">
        <artwork align="center" name="" type="" alt=""><![CDATA[
     +---------------------------------------------------------------------------+
     |          E2E SRv6 Policy                                                  |
   +-+-+                             +-+-+         +-+-+                       +-+-+       
   |PE1+-----------------------------+PE2|---------|PE3+-----------------------+PE4|          
   +-+-+                             +-+-+         +-+-+                       +-+-+
     |                                                                           | 
     +---------------------------------------------------------------------------+
	 
	 +---------------------------------+              +--------------------------+
     |       MTN/FGU Channel           |              |      SRv6 Policy         |      
   +-+-+   +--+    +--+    +--+      +-+-+          +-+-+    +--+    +--+      +-+-+       
   |PE1+---+P1+----+P2+--- +P3+----->+PE2|--------->|PE3+----+P4+----+P5+----->+PE4|          
   +-+-+   +--+    +--+    +--+      +-+-+          +-+-+    +--+    +--+      +-+-+
     |         Network A               |              |     Network B            | 
     +---------------------------------+              +--------------------------+
		    ]]></artwork>
      </figure>
	  <t>Usecase1:</t>
	  <t>The above Figure shows two different network domains. Network A deploy ITU-T MTN/OTN, and Network B deploy SRv6. Due to network evolution requirements, The edge nodes of the Network A are upgraded to support SRv6,but the forwarding node not upgraded.</t> 
	  <t>Services are running between PE1 and PE4. The operator need to deploy E2E SRv6 Policy across network A and network B.</t>
	  <t>Since the forwarding nodes of Network A are not forwarded based on packet based, and it is also invisible to the end to end controller,  so it cannot be programmed into the SRv6 Policy. The edge nodes of the Network A upgraded to SRv6 can be programmed into SRv6 Policy, and through the END.BXC behavior defined in this document, so E2E SRv6 can traverses the ITU-T MTN/OTN network.</t>
	  <t></t>
	    
	  <t>Usecase2:</t>
	  <t>Network A deploy multiple Forwarding technology (like SRv6 and MTN, etc.), and Network B deploy SRv6. However, customers require meet some SLA (like low latency, etc.) in the network A. The E2E SRv6 Policy which programmed the SRv6 END.BXC to the segment list can meet some customer's SLA.</t> 
	</section>
	 <section numbered="true" toc="default">
        <name>END.BXC Function</name>
		<t>The SID format is defined in <xref target="RFC8986"/>. An SRv6 SID cosisits of three parts: LOC:FUNCT:ARG, The format of an SRv6 SID is shown below.</t>
		  <figure anchor="xml_happy1">
        <artwork align="center" name="" type="" alt=""><![CDATA[
     +------------------------------------------------------------------+
     |     Locator          |        Function     |         ARG         |
     +------------------------------------------------------------------+
		    ]]></artwork>
      </figure>
		<t>END.BXC is a variant of the End behavior. This is a SRv6 instantiation of a Binding SID. Any SID instance of this behavior is associated with an underlay tunnel(e.g.L1 channel). Typical types of the L1 channel include MTN, and OTN.</t>
		<t>This End.BXC SID can support the Penultimate Segment Pop (PSP) of the SRH, Ultimate Segment Pop (USP) of the SRH, and Ultimate Segment Decapsulation (USD) flavors defined in <xref target="RFC8986"/> either individually or in combinations.  The SRH processing of the End.BXC behavior with PSP, USP, and USD is the same as <xref target="RFC8986"/>.</t>
		<t>This section provides two definitions of END.BXC.</t>
		<section numbered="true" toc="default">
        <name>Option 1:</name>
		<t>An SRv6 Endpoint behavior may require additional information for its processing (e.g., related to the flow or service), This information may be encoded in the ARG part of the SID as defined in <xref target="RFC8986"/>. This section defines the ARG part of the END.BXC SID. The high bit part of ARG is used to encode Channel Type, and the low bit part of ARG is used to encapsulate Channel ID. The Channel is uniquely identified by channel type and channel ID. The format of ARG in END.BXC SID is shown in Figure 2.</t>
		<figure anchor="xml_happy2">
        <artwork align="center" name="" type="" alt=""><![CDATA[
     +------------------------------------------------+
     |channel Type|    channel ID                     |
     +------------------------------------------------+
		    ]]></artwork>
      </figure>
		<t>The allocation of the Channel Type and the Channel ID are local to the SR Segment Endpoint Node instantiating this behavior. The ARG length is determined by the local configuration and is announced into the network. In addition, the Channel Type length and the Channel ID length are also locally configured and is announced into the network. The detailed protocol extension will be considered, and will be described in other documents.</t>
		<t>When N receives a packet destined to S and S is a local End.BXC SID, the line S14 from the End processing defined in <xref target="RFC8986"/> is replaced by the following:</t> 
		<artwork name="" type="" align="left" alt=""><![CDATA[
S14.   Get the channel type and channel ID from the lower bit of S.
S15.   Find channel X based on channel type and channel ID
S16.   Update IPv6 DA with Segment List[Segments Left]
S17.   Forward the packet to the new destination via channel X.
           ]]></artwork>
	    </section>
		
		<section numbered="true" toc="default">
        <name>Option 2:</name>
		<t>In this option, ARG part are not be used.We only defines END.BXC SID.</t>
		<t>When N receives a packet destined to S and S is a local End.BXC SID, the line S15 from the End processing defined in <xref target="RFC8986"/> is replaced by the following:</t>
	    <artwork name="" type="" align="left" alt=""><![CDATA[
S15  Forward the packet to the new destination via channel X.
           ]]></artwork>
		<!--</section>-->
		<t>The END.BXC behavior is advertised to the network. The detailed protocol extension will be considered, and will be described in other documents.</t>
		</section>
		
	 <section numbered="true" toc="default">
        <name>Procedures</name>
	    <t>Here we will describe the data plane procedures by taking examples, and we will discuss the use-case mentioned under section 3. </t>
		<t>In Figure 1, Network A deploy ITU-T MTN/OTN, and Network B deploy SRv6. PE1,PE2,PE3 and PE4 are deployed SRv6, and PE1, P1 to p3,and PE3 are deployed ITU-T MTN/OTN. One END.BXC SID is assigned for the underlay tunnel P1 to P3, so the E2E SRv6 path is &lt;PE1::END.BXC, PE2::END.X, PE3::END.B6, PE4::DT6&gt;.</t>
		</section>  
		</section>
    </section>
	
    <section numbered="true" toc="default">
      <name>Benefits</name>
      <t>There are some obvious benefits by using the END.BXC function. Fisrtly, as shown from the usecases above, with the END.BXC function, it can build an end-to-end SRv6 tunnel even across an underlay connection (called channel). Using the END.BXC function, it is different with the END.X function, since the END.X just forwards to an endpoint with cross-connect to a 'layer-3 adjacency'. That would be more complicated for consistency of end-to-end SRv6 policy. Secondly, with the END.BXC function, it defines the separate underlay channel ID, this can differentiate the L3 adjacency and underlay connection ID to simplify the allocation of SID. This can also maintain a separate underlay ID namespace and reduce the number of L3 route tables. Thirdly, if we use the ARGs of the END.BXC option 1, it can be more easier for scalability of diversity of underlay connections.</t>
    </section>
	
      <section numbered="true" toc="default">
      <name>Deployment Status</name>
      <t>The SRv6 END.BXC Function mechanism has been implemented by ZTE, and China Mobile has successfully completed the basic verification of this function. For example,  In August 2022, China Mobile successfully validated SRv6 END.BXC Function in filed trail. The END.BXC function is used in the SPN domain to support steering SRv6 services to the highly reliable MTN Channel, realizing the coordination between the MTN Channel and the end-to-end SRv6 tunnel in the SPN domain, and meeting the SRv6 end-to-end low-latency and high-reliability service quality.</t>
    </section>
	
	
    <section numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>TBD.</t>
    </section>
    <!-- Possibly a 'Contributors' section ... -->

	<section numbered="true" toc="default">
        <name>IANA Considerations</name>
   <t>The document defines a new SRv6 Endpoint behavior called End.BXC.</t>
   <t>This I-D requests the IANA to allocate, within the "SRv6 Endpoint Behaviors" sub-registry belonging to the top-level "Segment-routing with IPv6 dataplane (SRv6) Parameters" registry, the following allocations:</t>
    <artwork name="" type="" align="left" alt=""><![CDATA[
	Value              Endpoint Behavior               Reference
    ---------------------------------------------------------------
     TBD1                End.BXC                      [This.ID]
	 TBD2                End.BXC with PSP             [This.ID]
	 TBD3                End.BXC with USP             [This.ID]
	 TBD4                End.BXC with USD             [This.ID]
	 TBD5                End.BXC with PSP, USP & USD  [This.ID]
	
           ]]></artwork>
</section>

	
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
     <t>TBD.</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>Normative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      <?rfc include="reference.RFC.2119.xml"?>
	  <?rfc include="reference.RFC.8986.xml"?>
      </references>
       
    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                     v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                     other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                     Modified comments around figure to reflect non-implementation of
                     figure indent control.  Put in reference using anchor="DOMINATION".
                     Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                     added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                     images. Removed meta-characters from comments (causes problems).

v06 2010-04-01 TT     Changed ipr attribute values to latest ones. Changed date to
                     year only, to be consistent with the comments. Updated the 
                     IANA guidelines reference from the I-D to the finished RFC.
v07 2020-01-21 HL    Converted the template to use XML schema version 3.
    -->
 </back>
</rfc>
