<?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-ietf-spring-sr-policy-nrp-00"
      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="SR Policy Extension for NRP">Segment Routing Policy Extension for Network Resource Partition</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spring-sr-policy-nrp-00"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

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

   <author initials="S." surname="Yue" fullname="Shengnan Yue">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>yueshengnan@chinamobile.com</email>
      </address>
    </author>
    <author initials="R." surname="Chen" fullname="Ran Chen">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chen.ran@zte.com.cn</email>
      </address>
    </author>
    <author initials="J." surname="Dong" fullname="Jie Dong">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>jie.dong@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="W." surname="Jiang" fullname="Wenying Jiang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>jiangwenying@chinamobile.com</email>
      </address>
    </author>

   <date year="2026" month="February" day="28"/>
    <area>Routing</area>
    <workgroup>SPRING</workgroup>
    <keyword>Internet-Draft</keyword>
	
    <abstract>
   <t>Segment Routing (SR) Policy is a set of candidate paths, each consisting of one or more segment lists and the associated information. A Network Resource Partition (NRP), is a subset of the resources and associated policies in the underlay network. In SR networks with multiple NRPs, an SR Policy can be associated with a particular NRP. In that case, SR Policy can be used for steering and forwarding traffic which is mapped to the NRP, so that the packets can be processed with the subset of network resources and policy of the NRP for guaranteed performance. Thus the association between SR Policy and NRP needs to be specified.</t>
    <t>This document defines extensions to the SR Policy Architecture to allow the association of the SR Policy candidate paths with NRPs.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
	 <t>A Segment Routing Policy (SR Policy) <xref target="RFC9256"/> is a set of candidate paths, each consisting of one or more segment lists and the associated information. The headend node is said to steer a flow into an SR Policy. The packets steered into an SR Policy have an ordered list of segments associated with that SR Policy written into them. <xref target="RFC8660"/> describes the representation and processing of this ordered list of segments as an MPLS label stack for SR-MPLS, while <xref target="RFC8754"/> and <xref target="RFC8986"/> describe the same for Segment Routing over IPv6 (SRv6) with the use of the Segment Routing Header (SRH).</t>
      <t><xref target="RFC9543"/> provides the definition of IETF network slice for use within the IETF and discusses the general framework for requesting and operating IETF Network Slices, their characteristics, and the necessary system components and interfaces. It also introduces the concept Network Resource Partition (NRP), which is a subset of the resources and associated policies in the underlay network.</t>
      <t>In SR networks, an NRP can be realized using NRP-specific resource-aware segments as defined in <xref target="I-D.ietf-spring-resource-aware-segments"/>. With this approach, for each NRP, a separate set of resource-aware SIDs need to be assigned, thus the amount of SR SIDs would be proportional to the number of NRPs.</t>
      <t>As described in <xref target="I-D.ietf-teas-nrp-scalability"/>, one scalable data plane approach to support network slicing is to carry a dedicated NRP Selector ID in the data packet to identify the NRP the packet belongs to, so that the packet can be processed and forwarded using the subset of network resources allocated to the NRP.</t>
      <t>In SR networks with multiple NRPs, an SR Policy can be associated with a particular NRP. In that case, SR Policy can be used for steering and forwarding traffic which is mapped to the NRP, so that the packets can be processed with the subset of network resources and policy of the NRP for guaranteed performance. Thus the association between SR Policy and NRP needs to be specified.</t>
      <t>This document defines extensions to the SR Policy Architecture for associating SR Policy with NRP.</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", "NOT RECOMMENDED",
        "MAY", and "OPTIONAL" in this document are to be interpreted as
        described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
        when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
     <section numbered="true" toc="default">
      <name>Use Case</name>
	  <figure anchor="xml_happy1">
        <artwork align="center" name="Figure 1: Use case of SR Policy Extension for NRP" type="" alt="">
		<![CDATA[
      ----------------------------------------
     ( |PE|.............|PE|.............|PE| )
     (  --   SR Policy-1  --  SR Policy-1 --  )<---------+
      ----------------------------------------           |
       SR Policy-1 with NRP 1                            |
                                                         |
      ----------------------------------------           |
     ( |PE|..............................|PE| )          |
     (  --           SR Policy-2            --  )<-------+
      ----------------------------------------           |
       SR Policy-2 with NRP 2                            |
                                                         |
      ----------------------------------------------     |
     ( |PE|.....-.....|PE|......    |PE|.......|PE| )    |
    (   --     |P|     --      :-...:--     -..:--   )   |
   (    :       -:.............|P|.........|P|        )--+
   (    -......................:-:..-       -         )
    (  |P|.........................|P|......:        )
     (  -                           -               )
      ----------------------------------------------
       Underlay Network
		  ]]></artwork>             
      </figure>
      <t>In each NRP for network slices, the connectivity among PEs is achieved by SR Policies. The segment lists of these SR Policies composed with segments associated with the dedicated data plane NRP Selector ID. Traffics are steered into the SR Policies, so that the resources allocated to the corresponding NRPs will be used for forwarding.</t>
   	     <figure anchor="xml_happy2">
        <artwork align="center" name="Figure 2: Network Resource Partition on An Interface
" type="" alt="">
		<![CDATA[
		 Physical Interface 1
   +---------------------------------------+
   |                                       |
   |  Layer-3 Sub-interface 1-1: 1Gbps     |
   |=======================================|
   |>>>>>> Queue 1-1: NRP-1, 100Mbps >>>>>>|
   |>>>>>> Queue 1-2: NRP-2, 200Mbps >>>>>>|
   |>>>>>>              ...          >>>>>>|
   |=======================================|
   |                                       |
   |  Layer-3 Sub-interface 1-2: 2Gbps     |
   |====================================== |
   |>>>>>> Queue 1-1: NRP-1, 100Mbps >>>>>>|
   |>>>>>> Queue 1-2: NRP-2, 200Mbps >>>>>>|
   |>>>>>>              ...          >>>>>>|
   |=======================================|
   |                                       |
   +---------------------------------------+
       Underlay Network
		  ]]></artwork>             
   </figure>
   <t>As shown in the example in Figure 2, the bandwidth resource of a physical interface is partitioned in two NRPs.</t>
   <t>The NRPs are sliced by HQoS queues with dedicated bandwidth under the layer-3 sub-interface. NRP needs to be identified by using an
   extra dimension. On both MPLS-SR and SRv6 data plane, there are several options for realizing NRP Selector ID, such as <xref target="I-D.ietf-6man-enhanced-vpn-vtn-id"/>, <xref target="I-D.cheng-spring-srv6-encoding-network-sliceid"/>, and <xref target="I-D.li-mpls-enhanced-vpn-vtn-id"/>. As mentioned above, the traffics of network slice are forwarded according to the segment list of SR Policy. Firstly, the outgoing interface associated segment will be the layer-3 sub-interface. Then, the HQoS queue will be selected according to the NRP Selector ID carried in the packets, and the bandwidth resource of NRP will be used.</t>
    </section>
	<section numbered="true" toc="default">
   <name>SR Policy Extension for NRP</name>
    <t>As defined in <xref target="RFC9256"/>, an SR Policy is associated with one or more candidate paths. A candidate path is the unit for signaling of an SR Policy to a headend via protocol extensions like the Path Computation Element Communication Protocol (PCEP) <xref target="RFC8664"/> <xref target="I-D.ietf-pce-segment-routing-policy-cp"/> or BGP SR Policy <xref target="RFC9830"/>. A candidate path consists of one or multiple segment lists.  The segment lists are used for load balancing purpose. When an SR Policy is associated with an NRP, the SR Policy is instantiated using candidate paths which are built within a particular NRP.  Hence the association between SR Policy and NRP is specified at the candidate path level.  All the segment lists of the candidate path are associated with the same NRP and share the set of resources of the NRP.</t>
	<t>The candidate paths of an SR Policy determine the path that packets will traverse, while NRP reserves resources along the candidate path designated by the SR Policy. Through the integration of SR Policy and NRP, it ensures both the forwarding path and resource reservation along the candidate path.</t>
	<section numbered="true" toc="default">
    <name>NRP Selector ID of a Candidate Path</name>
	<t> The NRP Selector ID of a candidate path is utilized to identify the resources corresponding to the forwarding paths of all segment lists within an SR Policy. It is a 32-bit value serving as an identifier for the Network Resource Partition. The NRP Selector ID associated with a candidate path of an SR Policy from a specific Protocol-Origin as specified below:</t>
	<ul spacing="normal">
        <li>
		<t>When provisioning is via configuration, it is specific to the implementation's configuration model.</t> 
		</li>
        <li>
		<t>When signaling is via PCEP, the method to uniquely signal an individual candidate path along with its NRP Selector ID is
      described in <xref target="I-D.ietf-pce-pcep-nrp"/>.</t>
		</li>
		 <li>
		<t>When signaling is via BGP SR Policy, the method to uniquely signal an individual candidate path along with its NRP Selector ID is described in <xref target="I-D.ietf-idr-sr-policy-nrp"/>. It can be collected via BGP-LS <xref target="I-D.ietf-idr-bgp-ls-sr-policy-nrp"/>.</t>
		</li>
		 </ul>
	<t>Under the same Candidate Path, all segment lists must share the same NRP Selector ID. When a candidate path of an SR Policy is
   instantiated within an NRP, a network-wide data plane NRP Selector ID is used to identify the resources of the NRP. While different
   candidate paths can share the same NRP Selector IDs, the proposed mechanism allows for different candidate paths within a single SR
   Policy to be associated with different NRPs. However, in typical network scenarios, it is generally expected that the association
   between an SR Policy and an NRP remains consistent. In such cases, all candidate paths of a single SR Policy SHOULD be associated with
   the same NRP.</t>	
   <t>By associating NRP Selector IDs with Candidate Paths, the assurance of both the SR Policy's path and its resources is achieved. The
   process involves the following steps:</t>
   <ul spacing="normal">
        <li>
		<t>Planning the network topology resources and assigning NRP Selector IDs.</t> 
		</li>
        <li>
		<t>At the headend node, performing path arrangement. During the path planning process of the SR Policy, resources are considered for different candidate paths, and NRP Selector IDs are configured under each Candidate path to establish the association between
        the path and resources.</t>
		</li>
		 </ul>
	</section>
	<section numbered="true" toc="default">
    <name>Candidate Path Validity Verification</name>
	<t> A candidate path is considered usable when it is valid, with the validation rules outlined in Section 5 of [RFC9256]. When a
   Candidate Path contains an NRP Selector ID, a segment list of a candidate path may be declared invalid if the resources corresponding to the NRP Selector ID on the segment list path do not exist. The successful reservation of NRP resources along the entire path can be verified through OAM (Operations, Administration, and Maintenance) detection mechanisms. Additionally, if the head-end is unable to perform path resolution for the first SID into one or more outgoing interfaces and next-hops, along with the corresponding NRP
   Selector ID resources, the status of that segment list is set to invalid.</t>
   <t>When running fast detection protocols, such as Bidirectional Forwarding Detection (BFD), the headend may compute and validate
   backup candidate paths and provision them into the forwarding plane as a backup for the active path. In such cases, it is necessary to
   include NRP encapsulation to detect the NRP resources along the path, ensuring the availability of both the path and resources.</t>
   </section>
	<section numbered="true" toc="default">
    <name>Summary</name>
	<t>For an SR Policy associated with an NRP, each of its candidate paths must be associated with an NRP. The NRP Selector ID linked to each candidate path can be the same or different. All segment lists of the candidate path are associated with the same NRP and share the set of resources allocated to that NRP.</t>
	<t>In summary, the information model is the following:</t>
	<artwork><![CDATA[
SR Policy POL1
Candidate Path CP1
Preference 200
NRP Selector ID 100
Segment List 1 <SID11...SID1i>, Weight 1
Segment List 2 <SID21...SID2j>, Weight 1
Segment List 3 <SID31...SID3k>, Weight 1
Candidate Path CP2
Preference 100
NRP Selector ID 200
Segment List 4 <SID41...SID4i>, Weight 1
Segment List 5 <SID51...SID5j>, Weight 1
Segment List 6 <SID61...SID6k>, Weight 1
]]></artwork>
   <t>SR Policy POL1 has two Candidate Paths, CP1 and CP2. CP1 is the active candidate path (valid and with the highest Preference). NRP
   Selector ID 100 is configured under CP1, while NRP Selector ID 200 is configured under CP2. The three segment lists of CP1 with NRP
   Selector ID 100 are installed as the forwarding instantiation of SR Policy POL1. NRP Selector ID 100 needs to be configured and
   resources reserved on the paths traversed by segment list 1, segment list 2, and segment list 3. When traffic is steered on POL1 and
   flow-based hashed on segment list [SID11...SID1i], NRP-100 is added into the data packet, and forwarding is based on the resources
   pointed to by NRP-100.</t>
	 </section>
	</section> 
	<section numbered="true" toc="default">
    <name>Steering into an SR Policy with NRP</name>
	<t>The method of traffic steering aligns with the description in Section 8 of <xref target="RFC9256"/>. If the SR Policy candidate path selected as the best candidate path is associated with an NRP, the headend node of the SR Policy SHOULD encapsulate both the segment list and the data plane identifier of the associated NRP Selector ID to the header of packets steered to the SR Policy. The segment list is used to instruct the path the packets need to traverse, and the NRP Selector ID is used by each node along the path to identify the set of local network resources allocated to the NRP for the processing of the packet. When an SR policy's active path contains an NRP Selector ID, specific handling is necessary, as follows:</t>
	<ul spacing="normal">
        <li>
		<t>When steering traffic to the SR policy through Per-Destination Steering or Policy-Based Routing, after adding the corresponding segment list encapsulation for the SR policy, NRP encapsulation is also required. The specific NRP encapsulation details are outside the scope of this document.</t> 
		</li>
        <li>
		<t>Similarly, When steering traffic to the SR policy via the BindingSID, after adding the segment list encapsulation for the
      SR policy, NRP encapsulation is required. The specific NRP encapsulation details are outside the scope of this document.</t>
		</li>
		 </ul>
	  </section>
    <section numbered="true" toc="default">
      <name>Operational Considerations</name>
      <t>Operators can choose to deploy network slices at varying scales. The use of either base NRP Selector ID or resource-aware SR segments for specific service is based on operators' local policy.</t>
	  <t>Resource-aware segments require to introduce additional SR-MPLS SIDs or SRv6 Locators/SIDs for different subsets of network resources. This would increase the amount of SR SIDs to be managed, and would also increase the amount of state to be maintained by network nodes. Althougth with the SR paradigmn, per-path state can be avoided in the network, operators need to be aware of the additional cost of introducing resource-aware segments, and provide careful planning of the resource groups, so that the resource-aware segments can meet the service requirements without introducing unacceptable complexity to network operation and management.</t>
	  <t>As the number of required network slice services increases, more NRPs may be needed, and when data plane scalability is a primary concern, a dedicated NRP Selector ID can be introduced in the data packet to decouple the resource-specific identifiers from the topology and path-specific identifiers in the data plane, thereby reducing the number of IP addresses or SR SIDs needed to support a large number of NRPs.</t>
    </section>
   <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>By default, SR operates within a trusted domain. The security considerations described in <xref target="RFC8402"/> and <xref target="RFC9256"/> apply to this document.</t>
	  <t>The NRP to which an SR Policy is associated with is critical for network resource isolation. Misconfiguration or error in setting the NRP ID of an SR Policy can result in the forwarding of packets in an undesired NRP, which may lead to the compromise in network resource isolation.</t>
	  <t>When the NRP related information is advertised via the control plane (e.g., in BGP, BGP-LS, or PCEP), it is important to make sure the NRP information is not exposed to unwanted entities, otherwise it could lead to attacks that compromise network resource isolation and may impact the services carried using the SR Policy associated with the NRP.</t>
    </section>
    <section anchor="IANA" title="IANA Considerations">
      <t>This document has no IANA actions.</t>
    </section>
	<section title="Contributors">
	 <t>The following people have contributed to this document:</t>
     <artwork><![CDATA[
     Ran Pang	 		
     China Unicom	 		
     Beijing	 		
     China	 		
     Email: pangran@chinaunicom.cn

     Ka Zhang	 		
     Huawei Technologies	 		
     Beijing	 		
     China	 		
     Email: zhangka@huawei.com	 

     Wei Gao	 		
     CAICT	 		
     Beijing	 		
     China	 		
     Email: gaowei@caict.ac.cn	 
]]></artwork>
    </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.2119.xml"?-->
        <?rfc include="reference.RFC.2119.xml"?>
        <?rfc include="reference.RFC.8174.xml"?>
		<?rfc include="reference.RFC.8402.xml"?>
        <?rfc include="reference.RFC.8660.xml"?>
	    <?rfc include="reference.RFC.8664.xml"?>
	    <?rfc include="reference.RFC.8754.xml"?>
        <?rfc include="reference.RFC.8986.xml"?>
	    <?rfc include="reference.RFC.9256.xml"?>

  </references>
  <references>
        <name>Informative References</name>
		<?rfc include="reference.RFC.9830.xml"?>
		<?rfc include="reference.RFC.9543.xml"?>
		<?rfc include='reference.I-D.ietf-teas-nrp-scalability'?>
		<?rfc include='reference.I-D.ietf-6man-enhanced-vpn-vtn-id'?>
		<?rfc include='reference.I-D.cheng-spring-srv6-encoding-network-sliceid'?>
		<?rfc include='reference.I-D.ietf-pce-pcep-nrp'?>
		<?rfc include='reference.I-D.ietf-idr-sr-policy-nrp'?>
		<?rfc include='reference.I-D.ietf-idr-bgp-ls-sr-policy-nrp'?>
		<?rfc include='reference.I-D.ietf-pce-segment-routing-policy-cp'?>
		<?rfc include='reference.I-D.ietf-spring-resource-aware-segments'?>
	    <?rfc include='reference.I-D.li-mpls-enhanced-vpn-vtn-id'?>
		</references>
		</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>
