<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-mpls-mna-psd-nrp-selector-01"
     ipr="trust200902">
  <front>
    <title abbrev="NRP Info in MPLS">Carrying NRP related Information in MPLS
    Packets</title>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>robinli314@163.com</email>
      </address>
    </author>

    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>jie.dong@huawei.com</email>
      </address>
    </author>

    <date day="2" month="March" year="2026"/>

    <abstract>
      <t>A Network Resource Partition (NRP) is a subset of the network
      resources and associated policies on each of a connected set of links in
      the underlay network. An NRP could be used as the underlay to support
      one or a group of enhanced VPN services. Multiple NRPs can be created by
      network operator to meet the diverse requirements of different enhanced
      VPN services. In packet forwarding, some fields in the data packet needs
      to be used as the NRP Selector to identify the NRP the packet belongs
      to, so that the NRP-specific processing can be executed on the
      packet.</t>

      <t>This document proposes a mechanism to carry the NRP Selector ID and
      related information in MPLS packets. The procedure for processing the
      NRP Selector ID and related information is also specified.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Virtual Private Networks (VPNs) <xref target="RFC4206"/> provide
      different customers with logically isolated connectivity over a common
      network infrastructure. With the introduction of 5G and also in some
      existing network scenarios, some customers may require network
      connectivity services with advanced features comparing to conventional
      VPNs, such as resource isolation from other services or guaranteed
      performance. Such kind of network service is called enhanced VPN <xref
      target="RFC9732"/>. Enhanced VPN service requires the coordination and
      integration between the overlay VPNs and the capability and resources of
      the underlay network. Enhanced VPN can be used, for example, to deliver
      network slice services as described in <xref target="RFC9543"/>.</t>

      <t><xref target="RFC9543"/> also introduces the concept of the Network
      Resource Partition (NRP), which is a subset of the
      buffer/queuing/scheduling resources and associated policies on each of a
      connected set of links in the underlay network. An NRP can be associated
      with a logical network topology to select or specify the set of links
      and nodes involved.</t>

      <t>In packet forwarding, traffic of different Enhanced VPN services
      needs to be processed separately based on the network resources and the
      logical topology associated with the corresponding NRP. <xref
      target="I-D.ietf-teas-nrp-scalability"/> describes the scalability
      considerations and the possible optimizations for providing a relatively
      large number of NRPs. The approach to improve the data plane scalability
      of NRP is to introduce a dedicated data plane identifier (which is
      called NRP Selector ID) in the data packets to identify the set of
      network resources allocated to an NRP, so that the packets mapped to an
      NRP can be processed and forwarded using the NRP-specific network
      resources, which could avoid possible resource competition with other
      services in the same network.</t>

      <t>This document proposes a mechanism to carry the NRP Selector ID and
      related information in MPLS <xref target="RFC3031"/> data packets, so
      that the packet will be processed by network nodes using the subset of
      network resources and policies of the corresponding NRP. The procedure
      for processing the NRP Selector ID is also specified. The destination
      and forwarding path of the MPLS LSP is determined using the MPLS label
      stack in the packet, and the set of network resources and policies used
      for processing the packet is determined by the NRP action carried as
      post-stack data (PSD) <xref target="I-D.ietf-mpls-mna-ps-hdr"/>. The
      mechanism introduced in this document is applicable to both MPLS
      networks with RSVP-TE <xref target="RFC3209"/> or LDP <xref
      target="RFC5036"/> LSPs, and MPLS networks with Segment Routing (SR)
      <xref target="RFC8402"/> <xref target="RFC8660"/>.</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
        BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>
    </section>

    <section title="Carrying NRP Information in MPLS Packets">
      <t>This document makes use of the post-stack header mechanism as defined
      in <xref target="I-D.ietf-mpls-mna-ps-hdr"/>. A new type of Post-Stack
      network action called "Network Resource Partition (NRP)" is defined to
      carry the NRP Selector ID and NRP related information. The Opcode of the
      NRP action is to be assigned by IANA. The format of the NRP action and
      its ancillary data is shown as below:</t>

      <t><figure>
          <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  PS-NRP-OP  |R|R|   PS-NAL    |     Flags   |     Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       NRP Selector ID                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~               Optional NRP related information                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 1. The format of MPLS NRP Action]]></artwork>
        </figure></t>

      <t>Where:</t>

      <t><list style="empty">
          <t>PS-NRP-OP: Post-stack Opcode for the NRP action, the value is to
          be assigned by IANA.</t>

          <t>PS-NAL: Post-Stack network action length in 4-octet units,
          excludeing the first 4-octets.</t>

          <t>Flags: 8-bit flag field. The most significant bit is defined in
          this document:</t>

          <t><figure>
              <artwork><![CDATA[                                   0 1 2 3 4 5 6 7
                                  +-+-+-+-+-+-+-+-+
                                  |S|U U U U U U U|
                                  +-+-+-+-+-+-+-+-+]]></artwork>
            </figure><list style="symbols">
              <t>S (Strict Match): The S flag is used to indicate whether the
              NRP Selector ID MUST be strictly matched for the processing of
              the packet. When the S flag in the NRP Action of a received
              packet is set to 1, if the NRP Selector ID in the packet does
              not match with any of the network resources provisioned on the
              network node, the packet MUST be dropped. When the S flag in the
              NRP Action of a received packet is set to 0, if the NRP Selector
              ID in the packet does not match with any of the network
              resources provisioned on the network node, the packet MUST be
              forwarded using the default set of resource and behavior as if
              the NRP Action does not exist.</t>

              <t>U (Unused): These flags are reserved for future use. They
              MUST be set to 0 on transmission and MUST be ignored on
              receipt.</t>
            </list>Reserved: 8-bit field reserved for future use.</t>

          <t>NRP Selector ID: 4-octet network-wide identifier which uniquely
          identifies an NRP.</t>

          <t>Optional NRP related information: NRP related information which
          may be carried as ancillary data of the NRP action. One example is
          the traffic accounting data of a specific NRP. The detailed encoding
          and mechanisms are out of the scope of this document. The length of
          the optional NRP related information in 4-octet units is determined
          by the value of PS-NAL minus 1.</t>
        </list></t>

      <t>The PS-NRP action SHOULD be processed hop-by-hop (HBH). It is
      suggested the PS-NRP action be placed closer to the top of the PSD than
      any Post-Stack actions with the Ingress-To-Egress scope.</t>

      <t>The NRP Selector ID and related information are carried as Ancillary
      Data of Post-Stack action due to the following reasons:<list
          style="symbols">
          <t>NRP Selector ID with 32-bit length does not fit well into the
          MPLS Label Stack Entry (LSE) due to the existence of S bit in LSE
          (e.g., in 31-bit Format D).</t>

          <t>Optional NRP related information which may be mutable or variable
          is more suitable and efficient to be encoded as Post-stack Data.</t>
        </list></t>
    </section>

    <section title="Procedures">
      <t/>

      <section title="PS-NRP Action Insertion">
        <t>When an LSP ingress receives a packet, the traffic classifications
        and mapping policies are checked. If a match is found that the packet
        needs to be steered on to one of the NRPs of the MPLS network, the
        packet is encapsulated with an MPLS Label Stack and a Post-Stack
        Header <xref target="I-D.ietf-mpls-mna-ps-hdr"/> is added after the
        label stack. The Post-Stack Header contains a Post-Stack NRP action,
        which includes the NRP Selector ID and optional NRP related
        information.</t>
      </section>

      <section title="NRP based Packet Forwarding">
        <t>On receipt of an MPLS packet which carries the PS-NRP action,
        network nodes which support the mechanism defined in this document
        MUST parse the Post-Stack header and the NRP action, and use the NRP
        Selector ID to identify the NRP the packet belongs to, then the local
        resources allocated to the NRP are used to process and forward the
        packet. The forwarding behavior is based on both the MPLS label stack
        and the Post-Stack NRP action. The top MPLS label is used for the
        lookup of the next-hop, and the NRP Selector ID can be used to
        determine the set of network resources allocated by the network nodes
        for processing and sending the packet to the next-hop. NRP-specific
        information such as NRP basded packet statistics may be carried as
        optional ancillary data in the NRP action, the details are out of the
        scope of this document. Network nodes which do not support the
        mechanism in this document MUST ignore the NRP action, and forward the
        packet only based on the top MPLS label.</t>

        <t>There can be different approaches used for allocating network
        resources on each network node to the NRPs. For example, on one
        interface, a subset of forwarding plane resources (e.g., bandwidth and
        the associated buffer/queuing/scheduling resources) allocated to a
        particular NRP can be considered as a virtual layer-2 sub-interface
        with dedicated bandwidth and the associated resources. In packet
        forwarding, the top MPLS label of the received packet is used to
        identify the next-hop and the outgoing layer-3 interface, and the NRP
        Selector ID is used to further identify the virtual sub-interface
        which is associated with the NRP on the outgoing interface.</t>

        <t>The egress node of the MPLS LSP MUST pop the Post-Stack NRP action,
        together with the Post-Stack header and other Post-Stack actions if
        there is any.</t>
      </section>
    </section>

    <section title="Capability Advertisement and Negotiation">
      <t>Before inserting the Post-Stack NRP action into an MPLS packet, the
      ingress node wants to know whether the nodes along the LSP can process
      the NRP extension header properly based on the mechanisms defined in
      this document. This can be achieved by introducing the capability
      advertisement and negotiation mechanism for the Post-Stack NRP action.
      The ingress node also needs to know whether the egress node of the LSP
      can remove the Post-Stack NRP action as part of the Post-Stack header
      properly before parsing the upper layer and sending the packet to the
      next hop. The signaling mechanism for capability advertisement and
      negotiation is out of the scope of this document.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>IANA is requested to assign the code point for the PS-NRP action from
      the "Post-Stack Network Action Opcodes" registry as below:</t>

      <t><figure>
          <artwork><![CDATA[   Value                    Description                Reference 
   ----------------------------------------------------------------
   TBA          Post-Stack Network Action for NRP     this document ]]></artwork>
        </figure></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations in <xref target="RFC3032"/> and <xref
      target="I-D.ietf-mpls-mna-ps-hdr"/> apply to this document.</t>

      <t>The introduction of Post-Stack NRP actions allows attacking traffic
      targeting at a specific NRP in the network, which can impact the
      performance of services carried by the NRP. Operator needs to make sure
      that only trusted network nodes can add Post-stack NRP action to
      packets.</t>
    </section>

    <section title="Contributors">
      <t><figure>
          <artwork><![CDATA[   Zhibo Hu  
   Email: huzhibo@huawei.com
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Loa Andersson for the review and
      comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.3031'?>

      <?rfc include='reference.RFC.3032'?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.9543'?>

      <?rfc include='reference.RFC.9732'?>

      <?rfc include='reference.I-D.ietf-mpls-mna-ps-hdr'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-teas-nrp-scalability'?>

      <?rfc include='reference.RFC.3209'?>

      <?rfc include='reference.RFC.4206'?>

      <?rfc include='reference.RFC.5036'?>

      <?rfc include='reference.RFC.8402'?>

      <?rfc include='reference.RFC.8660'?>
    </references>
  </back>
</rfc>
