<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lx-spring-srv6-rate-control-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="SRv6-based Rate Control ">SRv6-based Rate Control</title>
    <seriesInfo name="Internet-Draft" value="draft-lx-spring-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="July" day="03"/>
    <workgroup>spring</workgroup>
    <abstract>
      <?line 37?>

<t>This document describes a rate control mechanism for
   Segment Routing over IPv6 (SRv6) network slices.  It addresses
   the challenge of balancing resource utilization and congestion
   avoidance in over-committed slice deployments.  The mechanism
   leverages a token-based scheduler to differentiate between
   Committed Information Rate (CIR) and Peak Information Rate (PIR) 
   traffic, and defines procedures for calculating initial PIR values
   and dynamically adjusting them based on network conditions.<br/>
   Dynamic rate adjustments are triggered by localized congestion 
   or underutilization, enabling proactive rate control and efficient
   bandwidth sharing among slices sharing common physical links.</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-based-queue-scheduling">
        <name>Token-Based Queue Scheduling</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 exceeding the CIR
(up to the PIR).  The scheduler MUST prioritize servicing
high-priority tokens to guarantee the CIR before processing
low-priority tokens.</t>
          </li>
          <li>
            <t>Queue resources (bandwidth) can be shared.  If CIR tokens for a
specific queue are not fully consumed, the unused capacity MAY be
utilized by low-priority traffic (PIR traffic) from other slices
after the scheduled traffic for the current slice is served.
However, if overall network bandwidth utilization becomes
excessively high, the PIR value for one or more slices MAY be
adjusted downward.</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), upstream or
headend nodes SHOULD be promptly notified to reduce the sending
rate or adjust the PIR to prevent buffer overflow and packet loss.</t>
          </li>
        </ul>
      </section>
      <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.  A typical 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 iteratively
   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>A transit or egress node SHOULD generate a rate notification to trigger a
   PIR update (e.g., using a mechanism as described in
   <xref target="I-D.xz-rtgwg-srv6-rate-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., using a mechanism such as
   Destination Options and Hop-by-Hop option described in <xref target="I-D.xz-6man-rate-option"/>) and use
   this value to update or inform the source about the effective
   bottleneck PIR.</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/RFC0768"/>
        </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>
      </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.xz-rtgwg-srv6-rate-notification">
          <front>
            <title>SRv6-based 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="2" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies a 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-xz-rtgwg-srv6-rate-notification-01"/>
        </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>
      </references>
    </references>
    <?line 277?>



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

-->

</rfc>
