<?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-spring-resource-aware-segments-20"
     ipr="trust200902">
  <front>
    <title abbrev="Resource-Aware SR Segments">Introducing Resource Awareness
    to SR Segments</title>

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

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

    <author fullname="Takuya Miyasaka" initials="T." surname="Miyasaka">
      <organization>KDDI Corporation</organization>

      <address>
        <email>ta-miyasaka@kddi.com</email>
      </address>
    </author>

    <author fullname="Yongqing Zhu" initials="Y." surname="Zhu">
      <organization>China Telecom</organization>

      <address>
        <email>zhuyq8@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Fengwei Qin" initials="F." surname="Qin">
      <organization>China Mobile</organization>

      <address>
        <email>qinfengwei@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Zhenqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>

      <address>
        <email>li_zhenqiang@hotmail.com</email>
      </address>
    </author>

    <date day="30" month="September" year="2026"/>

    <workgroup>SPRING Working Group</workgroup>

    <abstract>
      <t>This document describes a mechanism to allocate network resources to
      one or a set of Segment Routing Identifiers (SIDs). Such SIDs are
      referred to as resource-aware SIDs. The resource-aware SIDs retain their
      original forwarding semantics, with the additional semantics to identify
      the set of network resources available for the packet processing and
      forwarding action. This mechanism is applicable to both segment routing
      with MPLS data plane (SR-MPLS) and segment routing with IPv6 data plane
      (SRv6).</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>The Segment Routing (SR) Architecture <xref target="RFC8402"/>
      specifies a mechanism to steer packets through an ordered list of
      segments. A segment is referred to by its Segment Identifier (SID). With
      SR, explicit source routing can be achieved without introducing per-path
      state into the network. The base SR specifications <xref
      target="RFC8402"/> do not have the capability of identifying or
      reserving a set of network resources. Although a centralized controller
      can have a global view of network state and can provision different
      services using different SR paths, in data packet forwarding it still
      relies on the DiffServ QoS mechanism <xref target="RFC2474"/> <xref
      target="RFC2475"/> to provide coarse-grained traffic differentiation in
      the network. While such a mechanism may be sufficient for some types of
      services, others (e.g., those described in <xref target="RFC9543"/>) may
      require a set of dedicated network resources to achieve resource
      isolation in the same network. Also, the number of such services could
      be larger than the number of traffic classes available with DiffServ
      QoS. Some mechanisms to identify the service flows on each hop and map
      them to specific set of resources is needed. This may be done by
      classifying flows based on the combination of multiple fields in the
      packet, while a more concise and consistent approach would be
      preferred.</t>

      <t>Without needing to define new SID types, this document extends the SR
      mechanism by associating SIDs with network resource attributes, so that
      network resources can be allocated to one or a set of SIDs. Such SIDs
      are referred to as resource-aware SIDs. These resource-aware SIDs retain
      their original functionality, with the additional semantics of
      identifying the set of network resources available for the packet
      processing action. Typical types of network resources include link
      bandwidth, buffer, and queues that are associated with class of service
      scheduling weights or time cycles. While it is possible to associate SR
      SIDs with other types of resources, they are out of the scope of this
      document. The resource-awareness is orthogonal to the topology/algorithm
      characteristics of SR segments. When additional SR semantics are
      introduced in future, their interaction with resource-aware semantics
      need to be described in those specifications. For a particular SR
      segment, multiple resource-aware SIDs can be allocated, each of which
      represents a subset of network resources allocated in the network to
      meet the requirements of one or a group of customers or services. Each
      subset of the network resources may be associated with one or multiple
      resource-aware SIDs. The allocation of network resources to segments can
      be done either via local configuration or via a centralized controller.
      Other approaches are possible such as the use of a control plane
      signaling protocol, but they are out of the scope of this document.</t>

      <t>The candidate path of an SR Policy <xref target="RFC9256"/> that
      requires dedicated network resources can be composed of segment lists
      built with resource-aware SIDs. This can be useful for service that
      requires dedicated network resources along an SR path. In addition, a
      Network Resource Partition (NRP) <xref target="RFC9543"/> <xref
      target="RFC9732"/> which consists of a subset of network resources in
      the underlay network can be represented by a group of resource-aware
      SIDs that meet the connectivity and resource goals. The amount of
      resources (e.g. bandwidth) associated with each segment in the NRP can
      be the same or different. This mechanism is applicable to SR with both
      MPLS data plane (SR-MPLS) and IPv6 data plane (SRv6). The reader is
      expected to be familiar with the terminology in <xref
      target="RFC8402"/>, <xref target="RFC8660"/> and <xref
      target="RFC8986"/>.</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"/> <xref target="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>
    </section>

    <section title="Terminology">
      <t>The following terminology is used in this document:</t>

      <t><list style="symbols">
          <t>Network Resource Partition (NRP): refer to the definition in
          <xref target="RFC9543"/>.</t>
        </list>The following terms are introduced by this document.</t>

      <t><list style="symbols">
          <t>Resource-aware segment: An SR segment which not only represents a
          specific instruction, but also identifies the set of network
          resources used for executing the action.</t>

          <t>Global resource-aware segment: A resource-aware segment which is
          associated with the full set of the resources allocated to an NRP.
          It aligns with the topological global segment as defined in <xref
          target="RFC8402"/>, with additional resource semantics.</t>

          <t>Local resource-aware segment: A resource-aware segment which is
          only associated with a specific set of local resource on a network
          node or link participating in an NRP. It aligns with the topological
          local segment as defined in <xref target="RFC8402"/>, with
          additional resource semantics.</t>
        </list></t>
    </section>

    <section title="Segments with Resource Awareness">
      <t>In the Segment Routing architecture <xref target="RFC8402"/>, several
      types of segments are defined to represent either topological or service
      instructions. A topological segment can be a node segment or an
      adjacency segment. A service segment may be associated with specific
      service functions for service-chaining purposes. This document
      introduces additional resource semantics to the existing types of SIDs.
      A resource-aware SID retains its original functionality, with the
      additional semantics of identifying a set of network resources allocated
      in the underlay network for the packet processing action. A
      resource-aware SID is considered local resource-aware if it is
      associated with the network resource on a specific node or link in the
      network. A resource-aware SID is considered global resource-aware if it
      is associated with a set of network resources on all the nodes and links
      participating in an NRP. A local resource-aware SID may be allocated
      with a dedicated set of network resources, while for global
      resource-aware SIDs, the same set of network resources of an NRP are
      shared by a group of global resource-aware SIDs which are associated
      with the NRP.</t>

      <t>This section describes the mechanisms of using resource-aware SR SIDs
      to indicate the network resource information associated with the SR
      paths or NRPs based on the two SR data plane instantiations: SR-MPLS and
      SRv6. The mechanisms to identify the forwarding path or network topology
      with SIDs as defined in <xref target="RFC8402"/> do not change. Aligning
      with the SR architecture, the control plane for resource-aware segments
      can be centralized, distributed, or hybrid. When resource-aware segments
      are associated with an NRP, the control plane for distributing the
      resource-aware SIDs and the associated topology or Flexible-Algorithm
      can be based on <xref target="RFC4915"/>, <xref target="RFC5120"/> and
      <xref target="RFC9350"/>.</t>

      <section title="SR-MPLS">
        <t>The MPLS instantiation of Segment Routing is specified in <xref
        target="RFC8660"/>. <xref target="RFC8402"/> specifies several types
        of SIDs, including IGP Adjacency Segment (Adj-SID), IGP-Prefix Segment
        (Prefix-SID), and IGP-Node Segment (Node-SID). It also introduces BGP
        Peer Adjacency Segment (PeerAdj SID). Resource semantics can be added
        to these types of SIDs, so that they represent both the topological
        instructions and the set of network resources allocated for packet
        processing following the instructions.</t>

        <t>A resource-aware Adj-SID is a local resource-aware segment, it
        represents a subset of the local resources (e.g., bandwidth, buffer
        and queuing resources) on a given link, thus each resource-aware
        Adj-SID can be associated with a subset of the link's traffic
        engineering (TE) capabilities and resources (known as TE attributes
        <xref target="RFC2702"/>).</t>

        <t>For one IGP link, multiple resource-aware Adj-SIDs can be assigned,
        each of which is associated with a subset of the link resources
        allocated from the link. For one inter-domain link, multiple BGP
        PeerAdj SIDs may be assigned, each of which is associated with a
        subset of the link resources allocated from the inter-domain link. In
        the scope of this document, the inter-domain link MUST be between
        network domains managed by the same administrative entity and aligns
        with the trust model described in <xref target="RFC8402"/>. The
        resource-aware Adj-SIDs may be associated with a specific network
        topology and/or algorithm, so that it is used only for resource-aware
        SR paths computed within the topology and/or algorithm.</t>

        <t>Several approaches can be used to partition and reserve the link
        resources, such as <xref target="FLEXE"/>, logical sub-interfaces with
        reserved bandwidth, dedicated queues, etc. The detailed mechanism of
        link resource partitioning is out of scope of this document.</t>

        <t>A resource-aware prefix-SID is a global resource-aware segment
        which is associated with an NRP. More specifically, it is associated
        with the network topology and/or an algorithm of the NRP which the
        attached node participates in, and it is associated with the set of
        network resources (e.g., bandwidth, buffer and queuing resources) on
        the nodes and links participating in the NRP. Such set of network
        resources can be used for forwarding packets which are encapsulated
        with this resource-aware prefix-SID, along the paths computed in the
        associated topology and/or algorithm of the NRP.</t>

        <t>Although it is possible that each resource-aware prefix-SID is
        allocated with a set of dedicated resources on every node and link in
        the associated NRP, the overhead of per-prefix resource reservation is
        usually considered unacceptable in terms of the overhead in both
        control plane signaling and data plane states, and it is likely some
        of the allocated resources will be wasted. One option in deployment is
        that an aggregated set of network resources be allocated by the
        network nodes and links participating in the NRP, and this aggregated
        set of network resources is shared by all of the resource-aware
        Prefix-SIDs which are associated with the NRP. The association between
        the SR SIDs and an NRP can be provisioned using the management plane
        or a control plane.</t>

        <t>The option above helps to reduce the dynamics in per-prefix
        resource allocation and adjustment, so that the network resource can
        be allocated based on planning and does not have to rely on dynamic
        signaling. When the set of nodes and links that participate in an NRP
        change, the set of network resources allocated from specific nodes and
        links may need to be adjusted. When the set of network resources are
        locally configured on the network links, this means that the resources
        allocated to resource-aware Adj-SIDs on those links may have to be
        adjusted, and new TE attributes for the associated Adj-SIDs
        re-advertised.</t>

        <t>For one IGP prefix, multiple resource-aware Prefix-SIDs can be
        allocated. Each resource-aware prefix-SID may be associated with a
        unique &lt;topology, algorithm&gt; tuple, in this case different
        &lt;topology, algorithm&gt; tuples can be used to distinguish the
        resource-aware prefix-SIDs of the same prefix. In another case, for
        one IGP prefix, multiple resource-aware prefix-SIDs may be associated
        with the same &lt;topology, algorithm&gt; tuple but different NRPs.
        Then an additional control plane distinguisher for NRP needs to be
        introduced to distinguish different resource-aware prefix-SIDs
        associated with the same &lt;topology, algorithm&gt; but different
        NRPs. The first approach is simpler and does not require extensions to
        control plane protocols, while there can be scalability concerns when
        the number of NRPs is large, as it would require a large number of
        topologies or Flex-Algorithms. The second approach is more scalable,
        while it requires additional extensions to the control plane
        protocols. The exact control plane extensions are out of the scope of
        this document, but see Section 7 for more discussion of the
        scalability concerns.</t>

        <t>A group of resource-aware Adj-SID and resource-aware Prefix-SIDs
        can be used to construct the SID lists of an SR Policy candidate path,
        which can be used to steer the traffic to be forwarded along the
        explicit paths (either strict or loose) and processed using the set of
        network resources identified by the resource-aware SIDs.</t>

        <t>In SR-MPLS packet forwarding, each resource-aware Adj-SID
        identifies both the next-hop of the node and the set of resources used
        for packet processing on the outgoing interface. Each resource-aware
        Prefix-SID identifies the path to the node which the prefix is
        attached to, and the NRP which consists of the set of network
        resources to be used for packet forwarding on the transit nodes along
        the path. The transit nodes use the resource-aware Prefix-SIDs to
        determine the next-hop of the packet and the set of local resources in
        the identified NRP, then forward the packet to the next-hop using the
        set of local resources. If a transit node cannot find local resources
        associated with the identified NRP, by default it SHOULD discard the
        packet. The behavior can be changed to best effort forwarding using a
        knob.</t>

        <t>When the set of network resources allocated from the egress node
        also needs to be determined, it is RECOMMENDED that Penultimate Hop
        Popping (PHP) <xref target="RFC3031"/> be disabled, otherwise the
        inner service label needs to be used to infer the set of resources to
        be used for packet processing on the egress node of the SR path, which
        would over-complicate the assignment of the service label and
        potentially require multiple service labels to be assigned for the
        same service to identify the different NRPs. According to the control
        plane mechanisms defined in <xref target="RFC8665"/> and <xref
        target="RFC8667"/>, PHP can be disabled for resource-aware SIDs
        only.</t>

        <t>This mechanism requires the allocation of additional prefix-SIDs or
        adj-SIDs to identify different sets of network resources. As the
        number of NRP increases, the number of SIDs would increase
        accordingly, while it should be noted that there is still no per-path
        state introduced into the network.</t>
      </section>

      <section title="SRv6">
        <t><xref target="RFC8986"/> defines the SRv6 SID format
        (LOC:FUNCT:ARG) and the base set of SRv6 behaviors bound to the SRv6
        SIDs. When the LOC (Locator) part of the SRv6 SIDs is routable, it
        leads to the node which instantiates the SID, and the SID is called
        SRv6 routed SID. An SRv6 SID may be non-routable, which needs to be
        preceded by another routed SID in packet forwarding, and the SID is
        called SRv6 non-routed SID.</t>

        <t>The approach of introducing resource-awareness to SRv6 is by
        firstly making the SRv6 Locators resource-aware. For one SRv6 node,
        multiple resource-aware SRv6 Locators can be assigned. A
        resource-aware Locator is associated with a network topology and/or
        algorithm in which the originating node participates, as well as a set
        of network resources (e.g., bandwidth, buffer, and queueing resources)
        on each node and the attached links participating in the same topology
        and/or algorithm. Then resource-aware SRv6 SIDs are allocated using
        the resource-aware SRv6 Locator as the prefix, and the resource-aware
        SRv6 SIDs are associated with a subset of the local resources which
        belong to the NRP associated with the resource-aware SRv6 Locator. The
        set of network resources allocated to the resource-aware SRv6 Locators
        and SRv6 SIDs are used for forwarding packets in which the
        resource-aware SRv6 SIDs are encoded as the destination IPv6
        addresses.</t>

        <t>An SRv6 non-routed SID can be associated with a subset of the local
        resources (e.g., bandwidth, buffer and queuing resources) on a given
        node, which make it a local resource-aware segment. An SRv6 routed SID
        can be associated with the set of network resources of an NRP, which
        makes it a global resource-aware segment.</t>

        <t>Similar to the approach used with resource-aware prefix-SIDs in
        SR-MPLS, one option in deployment is that an aggregated set of network
        resources are allocated by the network nodes and links participating
        in an NRP, and this aggregated set of network resources are shared by
        a group of resource-aware Locators and SIDs which are associated with
        the NRP.</t>

        <t>For one IGP link, multiple resource-aware SRv6 End.X SIDs can be
        allocated to identify different sets of link resources allocated from
        the link. SRv6 SIDs for other types of behaviors MAY also be assigned
        as resource-aware SIDs, which identifies the set of network resources
        allocated by the node for executing the behavior. All resource-aware
        SRv6 SIDs MUST use a resource-aware locator as its prefix.</t>

        <t>A group of resource-aware SRv6 SIDs can be used to construct the
        SID lists of an SR Policy candidate path, which can be used to steer
        the traffic to be forwarded along the explicit paths (either strict or
        loose), and be processed using the set of network resources identified
        by the resource-aware SRv6 Locators and SIDs.</t>

        <t>In SRv6 packet forwarding, the transit nodes use the resource-aware
        Locator of the SRv6 SID carried in the destination IPv6 address field
        to determine the next-hop of the packet, and the NRP which consists of
        the set of network resources to be used for packet forwarding along
        the path. On the segment endpoint nodes, the resource-aware End.X SID
        identifies both the next-hop and the set of resources used for packet
        forwarding on the outgoing interface of the node which instantiates
        the SID. If a transit node cannot find local resources associated with
        the identified NRP, by default it SHOULD discard the packet. The
        behavior can be changed to best effort forwarding using a knob.</t>

        <t>This mechanism requires the allocation of additional SRv6 Locators
        and SIDs to identify different set of network resources. As the number
        of NRP increases, the number of SRv6 Locators and SIDs would increase
        accordingly, while it should be noted that there is still no per-path
        state introduced into the network.</t>
      </section>
    </section>

    <section title="Control Plane Considerations">
      <t>This section provides considerations about the centralized or
      distributed control plane mechanisms to support the provisioning of the
      NRP and paths in the NRP using resource-aware segments. The detailed
      control plane mechanisms belong to the documents in the corresponding
      protocol working groups.</t>

      <t>The resource-aware segments mechanism described in this document
      assumes the use of a centralized controller to collect the information
      about the network (configuration, state, routing databases, etc.) as
      well as the service information (traffic matrix, performance statistics,
      etc.) for the planning of network resources based on the service
      requirements. A centralized controller can also be used to instruct the
      network nodes to allocate network resources and associate the resources
      to resource-aware SIDs. It is anticipated that augmentations to the SR
      YANG models would provide a way to configure and learn about the
      relationship between resource-aware SIDs and the associated NRP. The
      detailed augmentations are out of the scope of this document.</t>

      <t>The resource-aware SIDs can be explicitly provisioned by the
      controller, or can be dynamically allocated by network nodes. In the
      latter case, a distributed control plane may be used for the collection
      and distribution of the resource-aware SIDs, together with the
      associated NRP and network resource information. Some of the network
      nodes can further distribute the collected information to a centralized
      controller. The distributed control plane is complementary to the
      functions of the centralized controller. The control plane mechanisms
      and extensions to advertise the association between resource-aware SIDs
      and the corresponding NRP resource attributes needs to be developed in
      the relevant protocol WGs and are out of the scope of this document.
      <xref target="I-D.ietf-lsr-isis-sr-vtn-mt"/> provides one approach for
      advertising the association between SR SIDs and resource-specific TE
      attributes.</t>

      <t>A centralized controller is responsible for the computation and
      optimization of SR paths in an NRP taking the topology, algorithm and
      network resources into consideration. The interaction between the
      controller and network nodes for resource-aware SR path provisioning can
      be based on Netconf/YANG <xref
      target="I-D.ietf-spring-sr-policy-yang"/>, BGP SR Policy <xref
      target="RFC9830"/> or PCEP <xref target="RFC8664"/> <xref
      target="RFC9603"/>. The distributed computation of resource-aware SR
      paths is also possible, in which the topology, algorithm and resource
      constraints of the NRP are taken into considerations by network nodes.
      The distributed computation can be based on <xref target="RFC4915"/>,
      <xref target="RFC5120"/>, <xref target="I-D.ietf-lsr-isis-sr-vtn-mt"/>
      or <xref target="RFC9350"/>. Extensions to these protocols may be
      introduced to improve the efficiency and scalability in some scenarios,
      the details are out of the scope of this document.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document makes no request of IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section title="Implementation Status">
      <t>This section is to be removed before publishing as an RFC.</t>

      <t>RFC-Editor: Please clean up the references cited by this section
      before publication.</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>

      <t>This section is provided in compliance with the SPRING working group
      policies (<xref target="SPRING-WG-POLICIES"/>).</t>

      <section title="Huawei Technologies">
        <t>Huawei Technologies reported the following implementations of the
        resource-aware segments (Section 2). The resource-aware segments are
        used to build SR based NRPs and resource guaranteed SR Policies.</t>

        <t><list style="symbols">
            <t>Huawei ATN9XX, CX600 routers.</t>

            <t>Huawei NE40E, NE8000, NE5000E routers.</t>
          </list>At the time of this report, all the implementations listed
        above are in production and follow the specification in the latest
        version of this document, including all the "MUST" and "SHOULD"
        clauses for the resource-aware segments.</t>

        <t>This report was last updated on August 28, 2025.</t>
      </section>
    </section>

    <section title="Operational Considerations">
      <t>Resource-aware segments can coexist with the existing SR segments.
      Network operators may introduce resource-aware segments into a portion
      of their SR networks to support services which require guaranteed
      network resources (e.g. bandwidth). Whether to use resource-aware SR
      segments for specific service is based on the operators' policy.</t>

      <t>The support for an NRP and the set of SR SIDs or SRv6 locators
      information associated with it MUST be aligned among the network nodes
      in that NRP, so as to ensure that packets with resource-aware SIDs are
      processed consistently within an NRP. A centralized controller or
      management system is responsible for confirming the completion of NRP
      provisioning or update process, and should be able to roll back in case
      of partial provisioning failure. If an attempt to associate a
      resource-aware SID with resources on a router fails (for example, due to
      an error in the amount of resource requested), it MUST be reported so
      that the situation can be corrected. An NRP MUST NOT be used for any
      service until it is fully provisioned. Similarly, an update to an NRP is
      not finished until all changes to the involved network nodes are
      successfully made.<xref target="I-D.ietf-teas-nrp-yang"/> provides some
      guidance on the provisioning of resource-aware SIDs for network resource
      partitions (NRPs). This document defines the resource-aware semantics of
      SR SIDs, the detailed mechanism for NRP provisioning and resource
      allocation are out of the scope of this document. </t>

      <t>The consistency in the binding between resource-aware segments and
      NRPs across all participating nodes in the network is crucial for
      correct and consistent treatment to packets so as to meet the resource
      guarantee and SLA requirements. If this is not the case, it may cause
      problems including service quality degradation or packet drop. Such
      issues could be detected and diagnosed using performance measurement or
      packet trace mechanisms with the same resource-aware segments as in the
      data packets used for forwarding. Control plane mechanisms need to
      include consistency checks to allow the configured state of resource
      allocation in network nodes to be verified against the intended state.
      If inconsistency in resource binding is detected by a network node, by
      default the impacted resource-aware SIDs MUST NOT be used for traffic
      forwarding, and an error SHOULD be logged and reported for trouble
      shooting.</t>

      <t>Resource-aware segments require introducing additional SR SIDs and
      SRv6 locators 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. Although with the
      SR paradigm, per-path state can be avoided in the network. The
      scalability of the deployed solution may also depend on the control
      plane solution that is available in implementations. If no additional
      control plane features are available, the only choice is to use
      different &lt;topology, algorithm&gt; tuples to distinguish the
      resource-aware prefix-SIDs of the same prefix. This approach may be
      suitable for small numbers of NRPs (less than ten or so), but with more
      NRPs, this approach will require more topologies or Flex-Algorithms,
      each of which requires separate management and can stress operational
      systems. If a larger number of NRPs are required, then operators need to
      consider to use the alternate method to allocate additional prefix-SIDs
      or adj-SIDs to identify the NRPs, but must utilize additional control
      plane mechanisms to distribute the association of SIDs to NRPs. The
      control plane extensions for such mechanism needs to be done in relevant
      WGs. Operators need to be aware of the additional cost of introducing
      resource-aware segments, and provide careful planning of the NRPs, so
      that the resource-aware segments can meet the service requirements
      without introducing unacceptable complexity to network operation and
      management.</t>

      <t>When resource-aware SIDs are used for some service, the operator
      needs to specify the policy for traffic which exceeds the allocated
      resources of the resource-aware SID carried. The options include: drop
      the traffic, lower the priority and treat as best-effort, etc. When
      fallback to best-effort is chosen, the event of fallback SHOULD be
      logged and reported.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations of segment routing and SRv6 in <xref
      target="RFC8402"/> <xref target="RFC8660"/> <xref target="RFC8754"/>,
      <xref target="RFC8986"/> and <xref
      target="I-D.ietf-spring-srv6-security"/> are applicable to this
      document.</t>

      <t>The allocation of network resources, the association of
      resource-aware SIDs with the allocated network resources, and the
      distribution of information of the resource-aware SIDs together with the
      associated TE attributes MUST be performed over control or management
      protocol channels that provide mutual authentication, authorization,
      integrity protection, and replay protection, and SHOULD provide
      confidentiality where the channel carries network topology or
      resource-capacity information. The specifications of the control or
      management plane protocols for resource-aware segments MUST specify how
      these security properties are provided. When the control plane of
      resource-aware segments is based on Flex-Algo, the security threats
      described in section 17 of <xref target="RFC9350"/> need to be
      considered, as the hijack of a Flex-Algo which associates with an NRP
      would compromise not just path selection but also resource isolation
      correctness.</t>

      <t>A compromised or misconfigured controller, or a node with local
      configuration authority, could allocate sufficient network resources and
      resource-aware SIDs to exhaust link or node resources, thereby starving
      the base SR forwarding plane. The allocation of network resources and
      resource-aware SIDs MUST be under some admission control, and
      implementations MUST reject network resource and resource-aware SIDs
      allocation when it would exceed a configurable threshold, ensuring that
      base SR forwarding plane availability cannot be compromised by resource
      exhaustion.</t>

      <t>The resource-aware SIDs may be used for provisioning of SR paths or
      NRPs to carry traffic with specific SLA requirements (such as latency).
      By disrupting the SLA of such traffic an attack can be directly targeted
      at the customer application, or can be targeted at the network operator
      by causing them to violate their SLA, triggering commercial
      consequences. Dynamic attacks of this sort are not something that
      networks have conventionally guarded against, and the mechanisms
      described in earlier this section need to be used to defend against this
      type of attack. By rigorously policing ingress traffic and carefully
      provisioning network resources provided to such services, this type of
      attack can be prevented. However care needs to be taken when providing
      shared resources, and when the network needs to be reconfigured as part
      of ongoing maintenance or in response to a failure.</t>

      <t>A compromised network node may choose not to actually allocate the
      claimed resources to the resource-aware SIDs, overstate the available
      resources, or selectively degrade specific NRPs, this may result in the
      expected SLA being disrupted due to lack of resource guarantee.</t>

      <t>The resource-aware SIDs carried in data packets can reveal not just
      where the packets go, but also the corresponding NRPs. The details about
      resource allocation in the underlay network MUST NOT be exposed to third
      parties, so as to prevent attacks aimed at exploiting shared network
      resources.</t>
    </section>

    <section title="Contributors">
      <t><figure>
          <artwork><![CDATA[Stewart Bryant
Email: stewart.bryant@gmail.com

Francois Clad
Email: fclad@cisco.com

Zhenbin Li
Email: robinli314@163.com

Zhibo Hu
Email: huzhibo@huawei.com

Joel Halpern
Email: jmh@joelhalpern.com
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Mach Chen, Stefano Previdi, Charlie
      Perkins, Bruno Decraene, Loa Andersson, Alexander Vainshtein, John Drake
      and Alvaro Retana for the valuable discussion and suggestions to this
      document.</t>
    </section>
  </middle>

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

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

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

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

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

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

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

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

    <references title="Informative References">
      <?rfc include='reference.RFC.2702'?>

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

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

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

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

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

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

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

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

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

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

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

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

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

      <?rfc include='reference.I-D.ietf-teas-nrp-yang'?>

      <?rfc include='reference.I-D.ietf-spring-sr-policy-yang'?>

      <?rfc include='reference.I-D.ietf-lsr-isis-sr-vtn-mt'?>

      <?rfc include='reference.I-D.ietf-spring-srv6-security'?>

      <reference anchor="FLEXE"
                 target="https://www.oiforum.com/wp-content/uploads/2019/01/OIF-FLEXE-01.0.pdf">
        <front>
          <title>Flex Ethernet Implementation Agreement</title>

          <author>
            <organization/>
          </author>

          <date month="March" year="2016"/>
        </front>
      </reference>

      <reference anchor="SPRING-WG-POLICIES"
                 target="https://wiki.ietf.org/en/group/spring/WG_Policies">
        <front>
          <title>SPRING Working Group Policies</title>

          <author fullname="SPRING Working Group Chairs">
            <organization/>
          </author>

          <date day="14" month="October" year="2022"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
