<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-rfcxml-general-template-standard-00
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customise them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
xmlns:xi="http://www.w3.org/2001/XInclude"
  category="std"
  docName="draft-li-idr-bgp-nrp-01"
  ipr="trust200902"
  obsoletes=""
  sortRefs="true"
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3"
  consensus="true" >
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="BGP Extensions for NRP">BGP Extensions for Network Resource Partition</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-li-idr-bgp-nrp-01"/> 
   
    <author fullname="Zhenqiang Li" initials="Z" role="editor" surname="Li">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>China Mobile</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>29 Finance Avenue, Xicheng District</street>
          <city>Beijing</city>
          <country>CN</country>
          <!-- Uses two letter country code -->
        </postal>        
        <email>lizhenqiang@chinamobile.com</email>  
        <!-- Can have more than one <email> element -->
      </address>
    </author>
	<author fullname="Ruiqian Hu" initials="R" role="editor" surname="Hu">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>China Mobile</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>10 Manbai Road, Changping District</street>
          <city>Beijing</city>
          <country>CN</country>
          <!-- Uses two letter country code -->
        </postal>
        <email>huruiqian@chinamobile.com</email>  
        <!-- Can have more than one <email> element -->
        
      </address>
    </author>
   
    <date year="2026"/>
    <!-- On draft subbmission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>Routing</area>
    <workgroup>Inter-Domain Routing</workgroup>
    <!-- "Internet Engineering Task Force" 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 RFC Series. -->

    <keyword>BGP</keyword>
	<keyword>Network Slice</keyword>
	<keyword>Network Resource Partition</keyword>
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

    <abstract>
		<t>Existing approaches bind a Segment Routing (SR) Policy to a Network Resource Partition (NRP) on a one-to-one basis, which lacks flexibility and introduces significant operational overhead as the number of NRPs scales, especially when multiple NRPs share the same SR Policy path.</t>

		<t>This document  defines BGP extensions to advertise NRP Identifier (NRP ID) information within BGP Update messages between headend and endpoint nodes. It decouples SR Policies from NRPs, allowing multiple NRPs to share a common SR Policy path and avoiding linear growth of SR Policies.</t>

		<t>The proposed design reduces operational complexity and also applies to SR Best Effort (SR BE) scenarios.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
	  <t>In 5G and future heterogeneous network scenarios,  network slicing is a core technology for delivering differentiated services. Network Resource Partition (NRP) <xref target="RFC9543"/> is a foundational underlay component for network slicing.  NRP logically partitions physical network resources to provide dedicated resource allocation and Quality of Service (QoS) isolation for diverse services, meeting performance requirements such as low latency and high reliability. Throughout this document, the terms NRP, network resource partition, network slicing, and network slice are conceptually equivalent.</t>
	  
	  <t><xref target="I-D.ietf-idr-sr-policy-nrp"/> binds NRPs to Segment Routing (SR) Policies <xref target="RFC9256"/>. <xref target="I-D.ietf-idr-sr-policy-nrp"/> extends the BGP SR Policy protocol <xref target="RFC9830"/> to distribute the NRP Identifier (NRP ID) associated with a SR Policy when the SR Policy is created. Per this approach, each SR Policy is associated with exactly one NRP. This model works well for small-scale deployments with a limited number of NRPs, but it prevents multiple network slices from sharing a single SR Policy path and thus suffers from poor scalability. As the number of network slices increases, the required number of SR Policies grows linearly, resulting in significant operational and maintenance overhead. Scalability issues for NRP and network slicing deployments are prominent and further discussed in <xref target="I-D.ietf-teas-nrp-scalability"/>. </t>
	   
	  <t>This document proposes a mechanism to decouple SR Policies from NRPs, allowing multiple NRPs to share one SR Policy path. This eliminates the linear scaling of SR Policy instances and substantially improves the scalability of SR-based network slice deployments. The core design principle is that it is the service—not the SR Policy—that requires NRP, i.e., NRPs are associated with services, not with SR Policies. </t>
	  
	  <t>Instead of extending the BGP SR Policy protocol, this document defines BGP <xref target="RFC4760"/> extensions to advertise NRP ID information in BGP Update messages between headend and endpoint nodes. A new NRP ID Extended Communities Attribute is defined, which enables network nodes to exchange network slice information during conventional BGP route propagation, facilitating automatic traffic steering into the corresponding network slices. Furthermore, this design supports the sharing of a common SR Policy path by multiple network slices. When network slice scale expands, the number of SR Policies no longer needs to increase proportionally, effectively reducing overall network operational complexity. </t>

	<t>The decoupling mechanism also applies to SR Best Effort (BE) scenarios where SR Policies are not used. SR Policy is also referred to as SR TE (Traffic Engineering) mode or TE mode in this document.</t>
	  
      <section>
        <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"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>
      <!-- [CHECK] The 'Requirements Language' section is optional -->

    </section>
    
    <section>
      <name>NRP ID Extended Communities Attribute</name>

		<t>To indicate service traffic to be steered into the corresponding NRP for forwarding, and decouple NRPs from SR Policies, this document proposes to use BGP Extended Communities Attribute <xref target="RFC4360"/> to carry NRP ID. This enables the associative mapping between service routes and NRPs. This BGP Extended Communities Attribute is a Transitive Opaque Extended Community, designated as NRP ID Extended Communities Attribute. Its detailed encoding structure is as follows:</t>
	  
	<figure align="center">
    <name>NRP ID Extended Communities Attribute</name>
    <artwork align="center"><![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 high(0x03)|   Type low(*)   |      Reserved(2 octets)     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |                           NRP ID(4 octets)                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]]></artwork>
    </figure>
	  
	  <t>Where:</t> 
	  <t> Type high(1 octet): The value of this field is 0x03, which indicates it is transitive.</t> 
 	  <t>Type low(1 octet): The value of this field is to be assigned by IANA, together with Type High, indicating that this Extended Communities Attribute is the NRP ID Extended Communities Attribute, which carries the NRP ID in the value field.</t>
	  <t>Reserved(2 octets): reserved for future extension. This field SHOULD be set to zero on transmission and MUST be ignored on receipt.</t>	
	  <t>NRP ID (4 octets): carry the unique identifier of an NRP, indicating the matching service traffic to be steered into the corresponding NRP for forwarding. </t>

    </section>
    

		<section>
        <name>Route Advertisement</name>
        <t>The route advertisement process involves only the headend node and the endpoint node of NRP traffic. The two nodes complete the advertisement and association of NRP ID through the BGP protocol with NRP ID Extended Communities Attribute. Intermediate nodes transparently forward BGP update messages containing the NRP ID Extended Communities Attribute without performing any NRP-specific processing.</t>

		<t>The endpoint node constructs BGP Update messages containing route information and NRP ID information per service requirements, and sends them to the headend node. For TE mode, these messages MUST additionally include Color information in the Color Extended Community defined in <xref target="RFC9012"/> to indicate that service traffic SHALL be forwarded over the corresponding SR Policy.  For BE mode, only route information and NRP ID information need to be carried.</t>

		<t>When the endpoint node generates BGP Update messages with network slice information, it MUST encode the NRP ID within the NRP ID Extended Communities Attribute in accordance with the encoding format specified in Chapter 2 of this document.</t>

		<t>After receiving such BGP Update messages, the headend node recognizes the NRP ID Extended Communities Attribute by the values of Type high and Type low. It MUST ignore the value of the Reserved field and extract the network slice identifier (i.e., NRP ID) from the NRP ID field. The generated Routing Information Base (RIB) and Forwarding Information Base (FIB) MUST include the NRP ID to maintain the association between routes and corresponding NRPs, ensuring the correct forwarding and management of routes. The specific data structure used to associate the routes and the NRPs is implementation-specific and thus out of the scope of this document.</t>

		</section>
		
		<section>
        <name>Traffic Forwarding</name>
        <t>The traffic forwarding process involves the headend node, intermediate nodes, and the endpoint node. </t>

		<t>Headend Node: When the headend node receives a service packet, it performs a FIB lookup. If the matched route entry includes an NRP ID, the headend node MUST encapsulate the service packet appropriately. For instance, the packet may be encapsulated with a new packet header, and the NRP ID is placed in either the source IP field or an extension header of this new header. The encapsulated packet is then forwarded to the network slice corresponding to the NRP ID (e.g., a bandwidth-guaranteed VLAN). In TE mode, the packet is further encapsulated in accordance with the matched SR Policy together with the NRP ID. The resulting encapsulated packet is forwarded per the SR Policy, with resource guarantees enforced based on the NRP ID. </t>

		<t>Intermediate Node: Upon receiving a service packet carrying an NRP ID, the intermediate node processes the packet based on the destination IP address and the embedded NRP ID. First, the intermediate node extracts the destination IP address and performs a local FIB lookup to select the Layer 3 egress interface for basic IP forwarding. If the destination address is a Segment Identifier (SID), forwarding follows the defined SID behavior. Second, the intermediate node extracts the NRP ID from the packet and forwards the packet to the corresponding network slice in the determined Layer 3 egress interface (such as slice sub-interfaces, slice queues, etc.) according to the locally configured mapping between NRP ID and network slice resources. The packet is then forwarded to the next hop via the assigned slice resource, enforcing slice-specific resource guarantees.</t>

		<t>Endpoint Node: When receiving a service packet with an NRP ID, the endpoint node performs network slice decapsulation on the packet, i.e., strips the outer packet header containing the NRP ID, and forwards the inner packet accordingly. In TE mode, the received packet is with SR Policy encapsulation, the endpoint node strips the outer header corresponding to the SR Policy encapsulation and processes the inner packet based on the functional behavior of the SID in the destination field of the stripped outer header.</t>
		</section>
	
    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>IANA is requested to assign the following code point from the subregistry of "BGP Transitive Extended Community Types" in the registry of "Border Gateway Protocol (BGP) Extended Communities" :</t>

  <figure align="center">
    <name>Code Point for NRP ID Extended Communities Attribute </name>
    <artwork align="center"><![CDATA[
       +============+========================+============================+
       | Code Point |       Description      |         Reference          |
       +============+========================+============================+
       |    TBD1    |         NRP ID         |       This document        |
       +------------+------------------------+----------------------------+
    ]]></artwork>
  </figure>

<t/>
    
	
    </section>
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>The security considerations specified in <xref target="RFC4360"/>, <xref target="RFC9543"/> and <xref target="RFC9012"/> apply to this document.  This document introduces no new security considerations.</t>
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4360.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9543.xml"/>
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>
	  
	  <references>
        <name>Informative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9830.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-sr-policy-nrp.xml" />
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-nrp-scalability.xml" />
		
		<!-- xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-ietf-network-slice-nbi-yang.xml" / -->
	
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>

    </references>
 
 </back>
</rfc>
