<?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-xz-rtgwg-srv6-rate-notification-01" 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 Notification ">SRv6-based Rate Notification</title>
    <seriesInfo name="Internet-Draft" value="draft-xz-rtgwg-srv6-rate-notification-01"/>
    <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>
    <author initials="J." surname="Li" fullname="Jinming Li">
      <organization>China Mobile</organization>
      <address>
        <email>lijinming@chinamobile.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="03"/>
    <workgroup>rtgwg</workgroup>
    <abstract>
      <?line 36?>

<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>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In Segment Routing over IPv6 (SRv6) networks, traffic engineering is
   primarily achieved through the explicit path encoded in the SRv6
   Segment Identifier (SID) list as per <xref target="RFC8754"/>.  However, dynamic
   network conditions, such as transient congestion on a specific link
   or node, can degrade the Quality of Service (QoS) for engineered
   flows.  Static provisioning of rate limits (e.g., Committed and Peak
   Information Rates - CIR/PIR) at the ingress may be insufficient to
   respond to such localized, real-time events.</t>
      <t>This document defines an SRv6 Rate Notification mechanism.  It allows
   a transit or egress node experiencing or anticipating congestion, or
   conversely, detecting underutilized bandwidth, to compute an
   appropriate rate range and send a notification back to the ingress
   (headend) node.  The headend can then adapt its traffic shaping
   policy and perform rate enforcement accordingly, providing dynamic, 
   network-assisted rate control and congestion mitigation.</t>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>Existing QoS and congestion control mechanisms often operate at the
   device level or rely on end-to-end transport-layer feedback, which 
   may be too slow or coarse-grained for fine-tuning SRv6 flows within 
   a network domain.  A network-based notification mechanism offers the 
   following advantages:</t>
        <ul spacing="normal">
          <li>
            <t>Proactive Congestion Mitigation: Allows the headend to proactively
throttle traffic before severe congestion causes packet loss or
excessive queueing delay, improving flow completion times.</t>
          </li>
          <li>
            <t>Improve Bandwidth Utilization: Enables flows to safely increase their rate
when underutilized bandwidth is detected along the path, improving
overall network efficiency.</t>
          </li>
          <li>
            <t>Flow-Aware Control: Notifications can be associated with specific
SRv6 policies, network slices, or queues, enabling precise control
that aligns with the intended traffic engineering objectives.</t>
          </li>
          <li>
            <t>Simplified Operation: Leverages the existing SRv6 architecture for
in-band notification, avoiding dependency on complex out-of-band
control protocols.</t>
          </li>
        </ul>
      </section>
    </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-notification">
      <name>SRv6 Rate Notification Mechanism</name>
      <section anchor="overview-and-operation">
        <name>Overview and Operation</name>
        <artwork><![CDATA[
      +----------+                                      +----------+
      |   Data   |                                      |   Data   |
      | center A |                                      | center B |
      +----------+                                      +----------+
          |                           Buffer Accumulation   ^
          |                                    |            |
          v                                    v            |
        +----+       +----+      +----+      +----+      +----+
        | R1 | <-->  | R2 | <--> | R3 | <--> | R4 | <--> | R5 |
        +----+       +----+      +----+      +----+      +----+
Rate       ^                                     |
Enforcement|                                     |
           +-------------------------------------+
                   Rate Notification

             Figure 1: Rate Notification in SRv6 Network

]]></artwork>
        <t>As shown in Figure 1, two data centers, A and B, connected via an SRv6 path
   defined as R1 -&gt; R2 -&gt; R3 -&gt; R4 -&gt; R5, as shown in Figure 1.  The
   process follows these steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The headend node (R1) forwards traffic for a specific flow or
slice along a predetermined SRv6 path (e.g., R1-&gt;R2-&gt;R3-&gt;R4-&gt;R5),
applying initial rate shaping (e.g., based on CIR/PIR).</t>
          </li>
          <li>
            <t>Transit nodes (R2, R3, R4) forward data according to the SID
list, with each node checking its local SID table for forwarding
and slice-related information.</t>
          </li>
          <li>
            <t>A transit node (e.g., R4) monitors its queues for that
slice.  Upon detecting a congestion condition (see Section 3.2), it
calculates a new recommended rate range (MinRate, MaxRate).</t>
          </li>
          <li>
            <t>Node R4 generates a Rate Notification message containing the
 calculated MinRate, MaxRate, a Slice/Flow identifier (Slice ID),
 and a queue Priority identifier.  It sends this message (e.g.,ICMPv6 or UDP)
 towards the headend node R1.</t>
          </li>
          <li>
            <t>Upon receiving and validating the notification, R1 may apply the
new rate range and perform the rate enforcement, thereby alleviating 
    the incipient congestion at R4.</t>
          </li>
        </ol>
      </section>
      <section anchor="notification-trigger-and-rate-calculation">
        <name>Notification Trigger and Rate Calculation</name>
        <t>A transit node SHOULD generate a Rate-Down Notification when
   conditions indicative of impending congestion are met for a specific
   slice or queue, suggesting the rate should be lowered. Example
   trigger conditions include:</t>
        <ul spacing="normal">
          <li>
            <t>Buffer accumulation exceeding a configured high watermark (e.g., 80%
of queue depth) for a sustained period.</t>
          </li>
          <li>
            <t>Sustained high queueing delay for a particular traffic priority.</t>
          </li>
        </ul>
        <t>A node (transit or egress) SHOULD generate a Rate-Up Notification
   when conditions indicate that bandwidth is underutilized along the
   SRv6 path, suggesting the rate could be safely increased. Example 
   trigger conditions include:</t>
        <ul spacing="normal">
          <li>
            <t>Queue buffer is not occupied and the link utilization for the traffic 
   class is lower than a configured watermark (e.g., 80%) for a sustained period.</t>
          </li>
        </ul>
        <t>The method for calculating the MinRate and MaxRate values is
   implementation-specific. For Rate-Down notifications, MaxRate might
   be derived from the available buffer and queue depth. For Rate-Up 
   notifications, MaxRate might be increased based on the detected spare 
   capacity. MinRate could be set to guarantee a minimum service rate or
   derived from the original CIR.  The notification is advisory;
   the final decision to enforce resides at the headend node.</t>
      </section>
    </section>
    <section anchor="message-formats-message-formats">
      <name>Message Formats {#message formats}</name>
      <t>The rate notification message can be encapsulated in either
   ICMPv6 <xref target="RFC4443"/> or UDP <xref target="RFC768"/> messages as described in the 
   followings sections.</t>
      <section anchor="icmpv6-message-format">
        <name>ICMPv6 message format</name>
        <t>A new ICMPv6 message format for the SRv6 rate notification is as following:</t>
        <artwork><![CDATA[

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Type=TBD1    |      Code     |           Checksum            |
   +---------------+---------------+-------------------------------+
   |R|     Flags   |     Priority  |          Reserved             |
   +---------------+---------------+-------------------------------+
   |                            MinRate                            |
   +---------------------------------------------------------------+
   |                            MaxRate                            |
   ----------------------------------------------------------------+
   |                            Slice ID                           |
   +---------------------------------------------------------------+

]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>Type and Code: TBD1, 16bits, indicate the rate notification type and its sub-type.</t>
          </li>
          <li>
            <t>Checksum: 16bits, it is used for error-checking the packet.</t>
          </li>
          <li>
            <t>R (Rate Control Flag):  1 bit, it set to 0 indicates a Rate-Down notification, 1 indicates a
Rate-Up notification. Other bits in the Flags octet are for future use.</t>
          </li>
          <li>
            <t>Priority: 8bits, the queue priority identifier. It identifies the queue or traffic class priority 
within the slice. Enables head node to map the notification to a specific queue.</t>
          </li>
          <li>
            <t>MinRate: 32bits, the recommended minimum data rate in bits per second (bps) for the head node to 
shape the flows within the slice or queue, typically corresponding to the CIR of the slice to 
guarantee minimum service rate. The headend node should ensure traffic shaping is not below this rate.</t>
          </li>
          <li>
            <t>MaxRate: 32bits, the recommended maximal rate in bps for the head node to shape the flows within 
the slice or queue, typically corresponding to the PIR of the slice. The headend node should 
dynamically adjust this rate based on network conditions.</t>
          </li>
          <li>
            <t>Slice ID: 32bits, the slice identifier for the network slice or flows to which this rate adjustment 
applies. It could map to an SRv6 SID or a local policy identifier known to both head and transit nodes.</t>
          </li>
        </ul>
      </section>
      <section anchor="udp-packet-format">
        <name>UDP Packet Format</name>
        <t>A new UDP packet format for the SRv6 rate notification is as following:</t>
        <artwork><![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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     UDP source port           |   UDP destination port=TBD2   |
   +-------------------------------+-------------------------------+
   |          UDP length           |           UDP checksum        |
   +---------------+---------------+-------------------------------+
   |     Flags     |    Priority   |          Reserved             |
   +---------------+---------------+-------------------------------+
   |                            MinRate                            |
   +---------------------------------------------------------------+
   |                            MaxRate                            |
   ----------------------------------------------------------------+
   |                            Slice ID                           |
   +---------------------------------------------------------------+  
   
]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>Source Port: (16 bits) UDP source port of the notification sender.</t>
          </li>
          <li>
            <t>Destination Port: (16 bits) TBD2 (To Be Assigned by IANA). A new well-known port for SRv6 Rate Notification.</t>
          </li>
          <li>
            <t>UDP Length &amp; Checksum: As defined in <xref target="RFC768"/>.</t>
          </li>
          <li>
            <t>Flags, Priority, Reserved, MinRate, MaxRate, Slice ID: Semantics identical to the fields defined in Section 4.1.</t>
          </li>
        </ul>
      </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 requests IANA to allocate a new ICMP message type and UDP port.</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>
      </references>
    </references>
    <?line 287?>



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

-->

</rfc>
