<?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-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 Notification ">SRv6-based Rate Notification</title>
    <seriesInfo name="Internet-Draft" value="draft-xz-rtgwg-srv6-rate-notification-00"/>
    <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="June" day="23"/>
    <workgroup>rtgwg</workgroup>
    <abstract>
      <?line 31?>

<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 42?>

<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 282?>



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

-->

</rfc>
