<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc comments="yes"?>
<?rfc compact="yes"?>
<?rfc inline="yes"?>
<?rfc sortrefs="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc tocompact="yes"?>
<rfc category="std" docName="draft-cheng-spring-srv6-policy-resource-gurantee-05"
     ipr="trust200902">
  <front>
 <title abbrev="Resource Guarantee for SRv6 Policies">Resource Guarantee for SRv6 Policies</title>

    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->
<author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
   <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>chengweiqiang@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Wenying Jiang" initials="W." surname="Jiang">
   <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>jiangwenying@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="Changwang Lin" initials="C." surname="Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->
         <city></city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Geng Zhang" initials="G." surname="Zhang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->
         <city></city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>zhanggeng@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <!-- 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 -->
<date year="2025"/>
    <!-- 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 to associate with a set of network resource partition (e.g. bandwidth, buffer and queue resources ) Programming, called End.NRP. By using the End.NRP SID to build its segment list, the SRv6 policy has the capability to program network resources and achieve strict SLA guarantees.</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction">
     <t> The concept of Network Resource Partition is introduced in <xref target="RFC9543"/>. A Network Resource Partition (NRP) is a set of network resources that are allocated from the underlay network to carry a specific set of network traffic and meet the required SLOs and SLEs.</t>
      <t>Segment Routing (SR) <xref target="RFC8402"/> leverages the source routing paradigm. An ingress node steers a packet through an ordered list of instructions, called "segments". Each one of these instructions represents a function to be called at a specific location in the network. A function is locally defined on the node where it is executed and may range from simply moving forward in the segment list to any complex user-defined behavior.</t>
      <t>SR Policy is an ordered list of segments (i.e. instructions) that represent a source-routed policy. The packets steered into an SR Policy have an ordered list of segments associated with that SR Policy.</t>
      <t>Since the SRv6 Endpoint behavior defined in <xref target="RFC8986"/> are not associated with a set of network resource partition of the interface for slices/slice aggregate(e.g.End.X just forwards to an endpoint with cross-connect to a 'layer-3 adjacency' or L2 bundles). Therefore, SRv6 policies can't achieve strict SLA guarantees.</t>
      <t><xref target="I-D.ietf-spring-resource-aware-segments"/>extends the SR paradigm by associating SIDs with network resource attributes. On the basis of <xref target="I-D.ietf-spring-resource-aware-segments"/>, this document defines a new SRv6 Endpoint behavior which can be used to associate with a set of network resource partition (e.g. bandwidth, buffer and queue resources ) Programming, called End.NRP. By using the End.NRP SID to build its segment list , the SRv6 policy has the capability to program network resources and achieve strict SLA guarantees.</t>
    <section 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" format="default"></xref> <xref target="RFC8174" format="default"></xref> when, and only when, they appear in all capitals, as shown here.</t>
      </section>  
       <section numbered="true" toc="default">
    <name>Terminology</name>
    <t>The following terminology is used in this document:<list style="symbols">
            <t>NRP: Network Resource Partition</t>
            <t>PSP: Penultimate Segment Pop</t>
            <t>SLA: Service Level Agreement</t>
            <t>SR: Segment Routing </t>
            <t>SRv6:The instantiation of SR on the IPv6 data plane</t>
            <t>USD: Ultimate Segment Decapsulation</t>
            <t>USP: Ultimate Segment Pop </t>
            </list>
          </t>
      </section>

      </section> 
    
        <section title="End.NRP Behavior">
        <t>This section defines a new SRv6 Endpoint behavior which can be used to associate with a set of snetwork resource partition (e.g. bandwidth, buffer and queue resources ) Programming, called End.NRP. The End.NRP is a variant of the End.X behavior defined in <xref target="RFC8986"/>.</t>
        <t>Any SID instance of End.NRP behavior is associated with two sets: J1 and J2.</t>
         <t><figure>
         <artwork name="" type="" align="left" alt=""><![CDATA[
J1: one or more L3 adjacencies or L2 bundles
J2: NRP of J1  
           ]]></artwork>
           </figure></t>
        <t>When N receives a packet destined to S and S is a local End.NRP SID, the line S15 from the End processing defined in <xref target="RFC8986"/> is replaced by the following:</t>
         <t><figure>
       <artwork name="" type="" align="left" alt=""><![CDATA[
S15. Submit the packet to the IPv6 module for transmission to 
     the new destination via a member of J1, using the NRP 
     identified by J2
           ]]></artwork>
           </figure></t>
        <t>This End.NRP SID SHOULD 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.NRP behavior with PSP, USP, and USD is the same as <xref target="RFC8986"/>.</t>
        
        <t>This End.NRP SIDs can be allocated either by a centralized network controller or by the network nodes, and the End.NRP behavior MAY be announced using IGP or BGP-LS. The detailed protocol extension will be described in a separate document.</t>
        </section>
        
      <section title="Use Cases for End.NRP behavior">
      <t>This section describes possible procedures for the End.NRP behavior.</t>
      <t>A group of End.NRP SIDs SHOULD be allocated for the set of network resources associated with the SRv6 Policies, so that different End.NRP SIDs SHOULD be used to steer service traffic into different set of link resources (e.g. bandwidth, buffer and queue resources) in packet forwarding.</t>
      <t>Below is the possible procedures:<list style="symbols">
          <t>The controller get the topology information, calculate the SR Policy path based on SLA.</t>
          <t>The controller cooperates with the network nodes to complete resource reservation and the End.NRP SID allocation along the SR Policy path.</t>
          <t>The controller use the End.NRP SID to build the SID list for the explicit path.</t>
          <t>Then the controller inform the headend the resource guaranteed path by various means including: via BGP <xref target="I-D.ietf-idr-sr-policy-safi"/>, configuration or PCEP <xref target="RFC8664"/> <xref target="I-D.ietf-pce-segment-routing-policy-cp"/>. </t>
          <t><figure>
        <artwork align="center" name="" type="" alt=""><![CDATA[
        
SRv6 Policy1 from PE1 to PE2
segment list <End.NRP11, End.NRP12, End.NRP13>
     
SRv6 Policy2 from PE1 to PE2
segment list <End.NRP21, End.NRP22, End.NRP23>
                                  
                       End.NRP12
                       End.NRP22
                      * * * * * *
                    P1-----------P2  
                  */*|* * * * * * |\ * *   
                 */* |            | \ * *   
CE11-----   End.NRP11|            |End.NRP13  ------ CE12
         \  End.NRP21|            |End.NRP23 /    
          \   */ *   |            |    \* * /
           PE1 \     |            |      PE2
          /     \    |            |    /    \
         /       \   |            |   /      \------ CE2 
CE21------        \  |            |  /
                   \ |            | /
                    P3------------P4    
            ]]></artwork>
      </figure>
      </t>
      </list>
      </t>
      <t>Figure 1 shows an example for the End.NRP behavior.</t>
       <t>As shown in Figure 1, there are two customers with different leased line requirements from PE1 to PE2:<list style="symbols">
          <t>leased line1 : 1G BandWidth with strict SLA guarantee.</t>
          <t>leased line2 : 2G BandWidth with strict SLA guarantee.</t>
          </list>
        </t> 
      <t>Below is the possible procedures:
       <list style="symbols">
        <t>The controller get the topology information, calculate the SRv6 Policy 1 and SRv6 Policy 2 based on SLA.</t>
        <t>The controller cooperates with the network nodes to complete resource reservation and the End.NRP SID allocation along the SRv6 Policy1 and SRv6 Policy 2.  Taking the interface PE1-P1 of SRv6 node PE1 along the SRv6 Policy 1 as an example, two different NRPs(e.g. two dedicated queues) are partitioned from the network resources of the physical link PE1-P1 (GE1/0/0).<list>
        <t>The NRP(Queue1:1G BW)of link PE1- P1 is reserved and associated with End.NRP11.</t>
        <t>The NRP(Queue2:2G BW)of link PE1- P1 is reserved and associated with End.NRP21.</t>
        </list></t>
        <t>The controller uses the End.NRP11, End.NRP12, and End.NRP13 to build the SID list for the SRv6 Policy1 and use the End.NRP21, End.NRP22, and End.NRP23 to build the SID list for the SRv6 Policy 2.</t>
        <t>Then the controller inform the headend the segment list of SRv6 Policy 1 and the segment list of SRv6 Policy 2 by various means including: via BGP <xref target="I-D.ietf-idr-sr-policy-safi"/>, configuration or PCEP <xref target="RFC8664"/> <xref target="I-D.ietf-pce-segment-routing-policy-cp"/>.</t>
       </list></t>
        <t>The traffic from customer1 and customer2 will be forwarded to PE2 through the NRPs previously reserved for each hop link on the path of SRv6 Policy1 and SRv6 Policy2 respectively, thus Customer 1 and Customer 2 are provided with end-to-end 1G bandwidth resources and 2G bandwidth resources respectively, and private line services are guaranteed by strict SLAs.</t>
      </section>
      
     <section title="Security Considerations">
     <t>The security requirements and mechanisms described in <xref target="RFC8402"/>, <xref target="RFC8754"/> and <xref target="RFC8986"/> also apply to this document.</t>
     <t>This document introduces a new SRv6 Endpoint behavior for implementation on the nodes support network resource partition in the network. As such, this document does not introduce any new security considerations.</t>
    </section>
    
    <section title="Implementation Status"> 
    <t>[Note to the RFC Editor - remove this section before publication, as well as remove the reference to <xref target="RFC7942"/>].</t>
    <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit".</t>
    <section title="ZTE Corp">
     <t><list style="symbols">
            <t>Organization: ZTE Corporation.</t>
            <t>Implementation: ZTE's M6000 Series Routers implementation of END.NRP <xref target="ZTE-IMP"/>.</t>
            <t>Description: The feature of SRv6 END.NRP has been implemented in ZTE M6000 series routers and follows the definition and mechanism as defined in section 2 and Section 3 including all the "<bcp14>MUST</bcp14>" and "<bcp14>SHOULD</bcp14>" clauses.</t>
            <t>Maturity Level: Beta</t>
            <t>Coverage: ALL, section 2 and use case section 3.</t>
            <t>Version: Draft-02</t>
            <t>Licensing: N/A</t>
            <t>Implementation experience: Nothing specific.</t>
            <t>Contact: zhu.xiaolong@zte.com.cn</t>
            <t>Last updated: October 21, 2023</t>
  </list></t>
      </section>
      <section title="New H3C Technologies">
      <t><list style="symbols">
            <t>Organization: New H3C Technologies.</t>
            <t>Implementation: H3C CR16000, CR19000 series routers implementation.</t>
            <t>Description: Section 2 and Section 3 including all the "<bcp14>MUST</bcp14>" and "<bcp14>SHOULD</bcp14>" clauses have been implemented in above mentioned New H3C Products for testing.</t>
            <t>Maturity Level: Beta</t>
            <t>Coverage: ALL, section 2 and use case section 3.</t>
            <t>Version: Draft-02</t>
            <t>Licensing: N/A</t>
            <t>Implementation experience: Nothing specific.</t>
            <t>Contact: linchangwang.04414@h3c.com</t>
            <t>Last updated: October 21, 2023</t>
    </list></t>
      </section>
      </section>
    <section anchor="IANA" title="IANA Considerations">
   <t>The document defines a new SRv6 Endpoint behavior called End.NRP.</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>
   <t><figure>
       <artwork name="" type="" align="left" alt=""><![CDATA[
Value              Endpoint Behavior               Reference
---------------------------------------------------------------
TBD1                End.NRP                      [This.ID]
     
           ]]></artwork>
           </figure></t>
</section>
   <section anchor="ack" title="Acknowledgements">
      <t>The authors would like to thank Detao Zhao and Jie Dong for their review and
      comments.</t>
    </section>
    
  </middle>
  

 <back>    
 <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.7942"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.8402"?>
      <?rfc include="reference.RFC.8664"?>
      <?rfc include="reference.RFC.8754"?>
      <?rfc include="reference.RFC.8986"?>
      <?rfc include="reference.I-D.ietf-idr-sr-policy-safi"?>
      <?rfc include="reference.I-D.ietf-pce-segment-routing-policy-cp"?>
     <?rfc include="reference.I-D.ietf-spring-resource-aware-segments"?>
    </references>
    <references title="Informative References">
    <?rfc include="reference.RFC.9543"?>
     <reference anchor="ZTE-IMP" target="https://www.zte.com.cn/china/product_index/ip_network/item02/zxr10-m6000-s/zxr10_m6000_s.html">
          <front>
            <title>ZTE M6000-S Routers</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="October" day="21"/>
          </front>
        </reference>
    </references>
    
    
    <!-- Possibly a 'Contributors' section ... -->
 </back>
</rfc>
