<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lx-srv6ops-srv6-rate-control-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="SRv6-based Rate Control ">SRv6-based Rate Control</title>
    <seriesInfo name="Internet-Draft" value="draft-lx-srv6ops-srv6-rate-control-00"/>
    <author initials="Y." surname="Liu" fullname="Yisong Liu">
      <organization>China Mobile</organization>
      <address>
        <email>liuyisong@chinamobile.com</email>
      </address>
    </author>
    <author initials="Q." surname="Xiong" fullname="Quan Xiong">
      <organization>ZTE Corporation</organization>
      <address>
        <email>xiong.quan@zte.com.cn</email>
      </address>
    </author>
    <author initials="X." surname="Zhu" fullname="Xiangyang Zhu">
      <organization>ZTE Corporation</organization>
      <address>
        <email>zhu.xiangyang@zte.com.cn</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <workgroup>srv6ops</workgroup>
    <abstract>
      <?line 39?>

<t>This document describes a deployment model and operational
   considerations for rate control in Segment Routing over IPv6 (SRv6)
   network slices.  It leverages a token-bucket scheduler to
   differentiate Committed Information Rate (CIR) and Peak Information
   Rate (PIR) traffic, and describes how a headend may enforce a rate
   profile on an SR Policy and adjust the PIR based on network
   conditions.  It addresses the operational trade-off between resource
   utilization and congestion avoidance in over-committed slice
   deployments.</t>
    </abstract>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In Segment Routing over IPv6 (SRv6) networks, traffic engineering is primarily 
achieved by encoding explicit paths in the SRv6 Segment Identifier (SID) list, 
as specified in <xref target="RFC8754"/>. To meet Service Level Agreements (SLAs), slice 
resources are typically reserved for SRv6 SID according to user subscription 
requirements, ensuring the Committed Information Rate (CIR). The conventional 
approach involves allocating dedicated queues to each slice and enforcing 
bandwidth guarantees through token bucket mechanisms, often implemented using
exclusive modes (e.g., via flex-channel) to provide isolated queue and bandwidth 
access, thereby protecting the CIR. However, strictly enforcing such SLA-based 
slice configurations can result in low resource utilization, particularly when 
reserved bandwidth for critical services remains underutilized, leading to idle
network resources and increased operational costs.</t>
      <t>Therefore, in SRv6 network slice deployments, traffic is often over-
   committed.  In addition to set the CIR, a Peak Information Rate
   (PIR) is also defined to specify the maximum bandwidth a slice is
   allowed to use, accommodating burst traffic and balancing resource
   utilization with network stability.  In this scenario, queues and
   bandwidth for slices operate in shared mode, allowing traffic
   assigned to a specific slice to exceed its reserved or committed
   resources (e.g., bandwidth, queues).  If the PIR is set too low,
   bandwidth utilization remains suboptimal.  Conversely, if the PIR is
   set too high, simultaneous bursts from multiple intelligent computing
   slices may cause total traffic to exceed physical link capacity.
   Without timely rate adjustments and throttling, this can trigger
   chain-reaction congestion across the network, failing to meet the
   latency and packet loss requirements essential for intelligent
   computing interconnectivity.</t>
      <t>To ensure the efficient transmission in SRv6 network slicing, this 
   document proposes a rate control mechanism for SRv6-based networks.<br/>
   It is applicable to scenarios where traffic in SRv6 network slices 
   is over-committed. By collecting congestion information and rate control 
   parameters along the path, the method enables the dynamic rate control for
   traffic across the network.  The dynamic rate adjustment are
   triggered by localized congestion or underutilization, enabling
   proactive rate control and efficient bandwidth sharing among slices
   sharing common physical links. This mechanism not only guarantees the 
   committed rate of the slice but also improves overall link utilization 
   while aiming to ensure high-throughput transmission.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions Used in This Document</name>
      <section anchor="abbreviations">
        <name>Abbreviations</name>
        <t>CIR:  Committed Information Rate</t>
        <t>PIR:  Peak Information Rate</t>
        <t>SID:  Segment Identifier</t>
        <t>SRv6: Segment Routing over IPv6</t>
      </section>
      <section anchor="requirements-language">
        <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>
    </section>
    <section anchor="rate-control">
      <name>SRv6-based Rate Control</name>
      <section anchor="token-bucket-scheduler-for-srv6-queuing-model">
        <name>Token-Bucket Scheduler for SRv6 Queuing Model</name>
        <t>The following figure illustrates this two-priority queuing model for SRv6-based slices:</t>
        <artwork><![CDATA[
                                         
                                          Token Bucket Scheduler
 CIR+PIR  +--------------------+           +----------------+
--------> | Queue 1 for Slice 1|---------->|  High Priority +----+----------+
          +--------------------+*** +----->+----------------+    |  SP      +----->
                                  * |                            | Scheduler|
 CIR+PIR  +--------------------+--*-+      +----------------+----+----------+
--------> |Queue 2 for Slice 2 |  ********>|  Low Priority  |
          +--------------------+**********>+----------------+
                           --------> traffic <= CIR (High Priority) 
                           ********> CIR< traffic <= PIR (low Priority) 
                                                                
                   Figure 1 Rate-based Queuing Scheuler for SRv6 Networks                                                               
]]></artwork>
        <t>In the described model, when a network node processes SRv6 slice
   traffic, queues utilize a token bucket scheduler to manage the
   scheduling of multiple traffic classes.  The scheduling strategy is
   as follows:</t>
        <ul spacing="normal">
          <li>
            <t>The token bucket scheduler assigns high-priority tokens to traffic
up to the CIR and low-priority tokens to traffic between CIR and
PIR.  In operational deployments, high-priority (CIR) traffic is
scheduled first so that the committed rate is served before burst
(PIR) traffic.</t>
          </li>
          <li>
            <t>Queue resources (bandwidth) is typically shared across slices. 
If the CIR tokens of a specific queue are not fully consumed, 
    operators commonly allow that spare capacity to be used by PIR 
    traffic from other slices after the scheduled traffic for the 
    current slice is served. When aggregate link utilization gets high,
operators lower the PIR of one or more slices to protect the link.</t>
          </li>
          <li>
            <t>When CIR traffic in a queue requires scheduling, high-priority CIR
traffic MUST be processed first.  Low-priority PIR traffic is
temporarily buffered. If PIR traffic buffering accumulates
significantly (e.g., exceeds a high watermark), the headend is 
    usually signaled to reduce the sending rate or shrink the PIR to 
    prevent buffer overflow and packet loss.</t>
          </li>
        </ul>
      </section>
      <section anchor="rate-enforcement-in-srv6-networks">
        <name>Rate Enforcement in SRv6 Networks</name>
        <t>In the deployment model described in this document, rate enforcement
   is applied at the SR Policy headend.  The headend steers traffic into 
   an SR Policy according to a rate profile (CIR, PIR) bound to the policy, 
   candidate path, or steering class (Color, Slice ID, NRP ID, etc.).
   Packets steered into the SR Policy are shaped or policed at the headend
   before being placed on the segment list. The rate profile may be:</t>
        <ul spacing="normal">
          <li>
            <t>statically configured, or</t>
          </li>
          <li>
            <t>provisioned by a controller via BGP SR Policy, PCEP, NETCONF or YANG 
   (e.g.,<xref target="I-D.xl-idr-bgp-sr-policy-pathrate"/> and <xref target="I-D.xl-pce-pcep-pathrate"/>), or</t>
          </li>
          <li>
            <t>adjusted dynamically based on rate notification feedback (e.g., <xref target="I-D.xzl-fann-srv6-rate-notification"/>) 
   or rate update along the forward path (e.g., <xref target="I-D.xz-6man-rate-option"/>).  </t>
            <t>
The headend classifies traffic against the rate profile as follows:</t>
          </li>
          <li>
            <t>Within CIR: admitted as high priority.</t>
          </li>
          <li>
            <t>Above CIR and within PIR: admitted as low priority, subject to
scheduler availability.</t>
          </li>
          <li>
            <t>Above PIR: dropped, buffered in a low-priority queue, or counted
for congestion notification, per local policy.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="initial-rate-setting">
        <name>Initial Rate Setting</name>
        <t>When establishing an SRv6 slice, an initial minimum rate (e.g.,CIR) and
   maximum rate (e.g.,PIR) are configured.  The CIR is the committed,
   guaranteed rate per the service contract.  The initial PIR can be
   calculated based on several factors to allow for efficient burst
   accommodation without causing congestion.  An operational formula for
   calculating the initial PIR for a slice could be:</t>
        <t>Initial PIR = CIR + ((maxBufferSize / RTT) + maxLinkBw - sumCIR) * p. (1)</t>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>CIR: The Committed Information Rate for the slice.</t>
          </li>
          <li>
            <t>maxBufferSize: The maximum buffer size allocated to the slice's
queue at bottleneck nodes.</t>
          </li>
          <li>
            <t>RTT: The round-trip time of the slice's SRv6 path.</t>
          </li>
          <li>
            <t>maxLinkBw: The maximum available bandwidth of the bottleneck link
shared by the slices.</t>
          </li>
          <li>
            <t>sumCIR: The sum of the CIRs of all slices sharing the bottleneck
path.</t>
          </li>
          <li>
            <t>p: An allocation coefficient (0 &lt;= p &lt;= 1) for the specific slice,
calculated based on empirical values related to its traffic
characteristics (e.g., burstiness). The sum of 'p' for all slices
on the path equals 1.</t>
          </li>
        </ul>
      </section>
      <section anchor="dynamic-rate-adjusting">
        <name>Dynamic Rate Adjusting</name>
        <t>A statically configured PIR is inefficient; it may not meet peak
   demand during busy periods or may waste bandwidth during idle times.
   Networks are dynamic, and in wide-area SRv6 networks where multiple
   slices share physical links, dynamic PIR adjustment is necessary.</t>
        <ul spacing="normal">
          <li>
            <t>When other slices experience bursts and consume extra resources,
dynamically reducing the current slice's PIR can prevent the total
link capacity from being exceeded, avoiding network-wide congestion.</t>
          </li>
          <li>
            <t>When link resources are underutilized, dynamically increasing a
slice's PIR allows its traffic to utilize the spare bandwidth,
enhancing overall transmission efficiency and resource utilization.</t>
          </li>
        </ul>
        <t>This dynamic adjustment enables coordinated resource allocation
   across the network, helping to prevent localized congestion from
   spreading.  The PIR at a given node 'h' can be adjusted operationally
   based on the PIR from the previous hop and local conditions:</t>
        <artwork><![CDATA[
        PIR(h) = CIR + (PIR(h-1) - CIR) * a.     (2)
]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>PIR(h): The maximum rate limit at the current node h.</t>
          </li>
          <li>
            <t>PIR(h-1): The maximum rate limit at the previous hop (node h-1).</t>
          </li>
          <li>
            <t>a: An empirical allocation ratio coefficient (0 &lt;= a &lt;= 1)
determined by the current node based on local state such as
bandwidth utilization, traffic policy, and traffic priority.</t>
          </li>
        </ul>
        <t>The end-to-end PIR for a flow traversing N nodes is the minimum
   PIR value encountered along the path:</t>
        <artwork><![CDATA[
   End-to-end PIR = Min{ PIR(h), h = 1, 2, ... N}.   (3) 
]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>N is the nodes' number along the path.</t>
          </li>
        </ul>
      </section>
      <section anchor="rate-update-trigger">
        <name>Rate Update Trigger</name>
        <t>In deployments that use rate notifications to trigger a PIR update 
   (e.g., I-D.xzl-fann-srv6-rate-notification), a transit or egress node
   commonly generate a notification when one of the following
   conditions is met:</t>
        <ul spacing="normal">
          <li>
            <t>Impending Congestion: Conditions indicate impending congestion
for a specific slice or queue.  This could be:
            </t>
            <ul spacing="normal">
              <li>
                <t>Buffer occupancy exceeding a configured high watermark (e.g., 75%
of queue depth) for a sustained period.</t>
              </li>
              <li>
                <t>Sustained high queuing delay for a particular traffic priority.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Congestion Mitigation / Underutilization: Conditions indicate
that congestion has subsided or bandwidth is underutilized.
This could be:
            </t>
            <ul spacing="normal">
              <li>
                <t>Queue buffer occupancy is consistently low (e.g., below 50%) AND
the link utilization for the traffic class is lower than a
configured watermark (e.g., 75%) for a sustained period.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Alternatively, an egress node may track the minimum PIR value
   discovered along the forward path (e.g., Destination Options and Hop-by-Hop 
   option described in <xref target="I-D.xz-6man-rate-option"/>) and report it to the headend.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>To be discussed in future versions of this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not currently require any IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC768"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4443">
          <front>
            <title>Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="M. Gupta" initials="M." role="editor" surname="Gupta"/>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol). ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="89"/>
          <seriesInfo name="RFC" value="4443"/>
          <seriesInfo name="DOI" value="10.17487/RFC4443"/>
        </reference>
        <reference anchor="RFC9256">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="I-D.xzl-fann-srv6-rate-notification">
          <front>
            <title>SRv6-based Fast Rate Notification</title>
            <author fullname="Quan Xiong" initials="Q." surname="Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Xiangyang Zhu" initials="X." surname="Zhu">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Jinming Li" initials="J." surname="Li">
              <organization>China Mobile</organization>
            </author>
            <date day="29" month="October" year="2026"/>
            <abstract>
              <t>   This document specifies a fast rate notification mechanism for
   Segment Routing over IPv6 (SRv6) networks.  It enables a transit or
   egress node to dynamically notify the ingress (headend) node about a
   recommended rate range (MinRate and MaxRate) when localized
   congestion is detected or when underutilized bandwidth is identified,
   allowing the headend to perform proactive traffic shaping and rate
   enforcement.  This mechanism enhances transmission efficiency in SRv6
   networks by enabling fine-grained, congestion-aware rate control.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-xzl-fann-srv6-rate-notification-00"/>
        </reference>
        <reference anchor="I-D.xz-6man-rate-option">
          <front>
            <title>IPv6 Rate Hop-by-Hop Option</title>
            <author fullname="Quan Xiong" initials="Q." surname="Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Xiangyang Zhu" initials="X." surname="Zhu">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Jinming Li" initials="J." surname="Li">
              <organization>China Mobile</organization>
            </author>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   This document defines a new IPv6 Hop-by-Hop Option that enables
   Minimum Rate Limit Discovery along the forward path between a source
   host and a destination host.  Each router along the path can update
   the option with the minimum of its local Maximum Rate (MRate) and the
   recorded value.  The discovered rate can then be communicated back to
   the source via a return mechanism, enabling the source to adapt its
   transmission rate to match the bottleneck link capacity and queue
   buffer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-xz-6man-rate-option-01"/>
        </reference>
        <reference anchor="I-D.xl-idr-bgp-sr-policy-pathrate">
          <front>
            <title>BGP SR Policy for Path Rate</title>
            <author fullname="Quan Xiong" initials="Q." surname="Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Jinming Li" initials="J." surname="Li">
              <organization>China Mobile</organization>
            </author>
            <date day="29" month="October" year="2026"/>
            <abstract>
              <t>   In AI/ML compute fabrics and data center interconnects, collective
   communication patterns (e.g., All-Reduce, All-to-All) generate
   microbursts that can saturate queuing buffers before reactive
   congestion control mechanisms take effect.  This document specifies a
   BGP SR Policy extension to carry Path Rate information (e.g., Path
   Committed Rate and Path Maximum Rate), enabling a central controller
   to compute and distribute per-segment-list rate limits along with the
   SR Policy Candidate Path.  The headend enforces these rate limits on
   traffic steered to the corresponding segment list, thereby
   proactively preventing the microburst-induced congestion before
   traffic enters the network.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-xl-idr-bgp-sr-policy-pathrate-00"/>
        </reference>
        <reference anchor="I-D.xl-pce-pcep-pathrate">
          <front>
            <title>PCEP Extension for Path Rate</title>
            <author fullname="Quan Xiong" initials="Q." surname="Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Jinming Li" initials="J." surname="Li">
              <organization>China Mobile</organization>
            </author>
            <date day="29" month="October" year="2026"/>
            <abstract>
              <t>   This document specifies extensions for PCEP to carry a Path Rate
   (PRate), enabling a PCE to compute and distribute the maximum
   sustainable rate for an end-to-end path.  A new METRIC type and a new
   objective function are defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-xl-pce-pcep-pathrate-00"/>
        </reference>
      </references>
    </references>
    <?line 304?>



  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
