<?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-6man-rate-option-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="IPv6 Rate Hop-by-Hop Option ">IPv6 Rate Hop-by-Hop Option</title>
    <seriesInfo name="Internet-Draft" value="draft-xz-6man-rate-option-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>6man</workgroup>
    <abstract>
      <?line 34?>

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>In IPv6 networks, applications often need to determine the bottleneck 
   rate along a network path to avoid network congestion such as:</t>
      <ul spacing="normal">
        <li>
          <t>Adaptive Streaming: Video streaming applications can adjust
their bitrate to match the available bandwidth, reducing
buffering and improving quality of experience.</t>
        </li>
        <li>
          <t>Bulk Data Transfer: File transfer protocols can optimize
their window sizes and pacing rates based on the discovered
bottleneck rate.</t>
        </li>
        <li>
          <t>Real-time Communications: Interactive applications can avoid
congestion by limiting their transmission to the discovered rate.</t>
        </li>
        <li>
          <t>Network Diagnostics: Network operators can use this mechanism
to identify bottleneck links in their infrastructure.</t>
        </li>
      </ul>
      <t>This document specifies a new IPv6 Hop-by-Hop (HBH) Option to record
   the minimum MRate along the forward path between a source and a 
   destination host.  The source host creates a packet with this Option 
   and initializes the Min-MRate field with the value of the 
   Rate for the outbound link that will be used to forward the packet towards
   the destination host. The transit nodes along the path can compute
   the new minimal MRate and compare with the Min-MRate field. Then it
   will replace the Min-MRate field if it is lower than the latter one.</t>
      <t>This method has the potential to complete MaxRate Discovery 
   in a single round-trip time, even over paths that have successive
   links, each with a lower MRate. The proposed Hop-by-Hop Option provides 
   a lightweight, in-band mechanism for rate discovery that completes in 
   one round-trip time, even over paths with multiple constrained links. 
   This efficiency makes it suitable for dynamic rate adaptation in real-time
   applications.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions Used in This Document</name>
      <section anchor="abbreviations">
        <name>Abbreviations</name>
        <t>HBH:  Hop-by-Hop</t>
        <t>MRate: Maximum Rate</t>
        <t>RTT:  Round-Trip Time</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>Minimum MRate Discovery Operation</name>
      <artwork><![CDATA[
      +----------+                                      +-----------+
      | Source   |                                      |Destination|
      | Host     |                                      |Host       |
      +----------+                                      +-----------+
          |                                                 ^
          |                                                 |
          v                                                 |
        +----+       +----+      +----+      +----+      +----+
        | R1 | <-->  | R2 | <--> | R3 | <--> | R4 | <--> | R5 |
        +----+       +----+      +----+      +----+      +----+
          ---->20Gbps ----> 10Gbps---->5Gbps---->10Gbps---->
                                                            |
        <---------------------------------------------------+
                              Minimum MRate (e.g.,5Gbps)

         Figure 1: An Example IPv6/SRv6 Path between the Source 
                 Host and the Destination Host
                                                          
]]></artwork>
      <t>The Minimum MRate Discovery mechanism operates as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>The source host creates a packet with the Minimum MRate Hop-by-Hop
Option.  It initializes the Min-MRate field in section 4 with the 
    maximum rate of its egress interface that will be used to forward 
    the packet towards the destination.</t>
        </li>
        <li>
          <t>Each transit router that processes the Hop-by-Hop Option
examines the Min-MRate field.  The router compares this value
with the maximum rate which is computed based on the given slice and
    queue information.</t>
        </li>
        <li>
          <t>If the router's limited maximum rate is lower than the current 
Min-MRate value, the router updates Min-MRate to the lower value. 
    This ensures that Min-MRate always contains the minimum MRate 
    encountered along the path so far.</t>
        </li>
        <li>
          <t>When the packet reaches the destination, the Min-MRate field
contains the bottleneck rate along the forward path.</t>
        </li>
        <li>
          <t>The destination can then communicate this rate back to
the source using a return mechanism (e.g., in a reverse-direction
packet containing the same option). The Min-MRate can also be
    notified to the source with the rate notification as per xz-rtgwg-srv6-rate-notification.</t>
        </li>
      </ol>
    </section>
    <section anchor="rate-option">
      <name>IPv6 Minimum MRate Hop-by-Hop Option</name>
      <t>The Minimum MRate Hop-by-Hop Option has the following format:</t>
      <artwork><![CDATA[
   +---------------+---------------+---------------+---------------+
   |   Option Type |Option Data Len|R|     Flags   |     Priority  | 
   +---------------+---------------+-------------------------------+
   |                        Minimal MRate                          |
   ----------------------------------------------------------------+
   |                            Slice ID                           |
   +---------------------------------------------------------------+

         Figure 2: Format of the Minimum MRate Hop-by-Hop Option
                 
]]></artwork>
      <ul spacing="normal">
        <li>
          <t>Option Type and Option Data Len (see Section 4.2 of <xref target="RFC8200"/>): TBD1.</t>
        </li>
        <li>
          <t>Mininal MRate: 32bits.  The minimum MRate recorded along the path
in octets, reflecting the smallest recommended MRate that
the packet experienced along the path.</t>
        </li>
        <li>
          <t>R  :  1bit.  R-Flag.   Set by the source to signal that
the destination host should include the Min-MRate value
when the destination host is to send a Rate Option back
to the source host.</t>
        </li>
        <li>
          <t>Priority: 8bits, the queue priority identifier. It identifies the queue or
traffic class priority within the slice. Enables the nodes to
compute the MRate within a specific queue.</t>
        </li>
        <li>
          <t>Slice ID: 32bits, the slice identifier. It identifies the slice which
the MRate 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="example-usage-scenario">
      <name>Example Usage Scenario</name>
      <t>Consider a source (S) sending to a destination (D) via routers R1, R2, R3, R4 and 
   R5.  The links have the following maximum rates and minial MRates:</t>
      <ul spacing="normal">
        <li>
          <t>R1-&gt;R2: MRate=20Gbps, Minial MRate=20Gbps</t>
        </li>
        <li>
          <t>R2-&gt;R3: MRate=10Gbps, replace, Minial MRate=10Gbps</t>
        </li>
        <li>
          <t>R3-&gt;R4: MRate=5Gbps, replace, Minial MRate=5Gbps</t>
        </li>
        <li>
          <t>R4-&gt;R5: MRate=10Gbps, not replace, Minial MRate=5Gbps</t>
        </li>
      </ul>
    </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 to register an IPv6 Hop-by-Hop Option type in the
"Destination Options and Hop-by-Hop Options" registry within the
"Internet Protocol Version 6 (IPv6) Parameters" registry group.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="RFC8200">
        <front>
          <title>Internet Protocol, Version 6 (IPv6) Specification</title>
          <author fullname="S. Deering" initials="S." surname="Deering"/>
          <author fullname="R. Hinden" initials="R." surname="Hinden"/>
          <date month="July" year="2017"/>
          <abstract>
            <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="86"/>
        <seriesInfo name="RFC" value="8200"/>
        <seriesInfo name="DOI" value="10.17487/RFC8200"/>
      </reference>
    </references>
    <?line 209?>



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

-->

</rfc>
