<?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.27 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shi-ippm-congestion-measurement-data-03" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="CM">Data Fields for Congestion Measurement</title>
    <seriesInfo name="Internet-Draft" value="draft-shi-ippm-congestion-measurement-data-03"/>
    <author initials="H." surname="Shi" fullname="Hang Shi" role="editor">
      <organization>Huawei</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>shihang9@huawei.com</email>
      </address>
    </author>
    <author initials="T." surname="Zhou" fullname="Tianran Zhou">
      <organization>Huawei</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhoutianran@huawei.com</email>
      </address>
    </author>
    <author initials="G." surname="Zhao" fullname="Guangyu Zhao">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhaoguangyu@chinamobile.com</email>
      </address>
    </author>
    <author initials="Z." surname="Li" fullname="Zhenqiang Li">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>li_zhenqiang@hotmail.com</email>
      </address>
    </author>
    <date year="2025" month="April" day="14"/>
    <area>Operations and Management</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>Congestion Measurement</keyword>
    <abstract>
      <?line 104?>

<t>Congestion Measurement collects the congestion information in the packet while the packet traverses a path. The sender sets the congestion measurement command in the packet header indicating the network device along the path to update the congestion information field in the packet. When the packet arrives at the receiver, the congestion information field will reflect the degree of congestion across network path. Congestion Measurement can enable precise congestion control, aids in effective load balancing, and simplifies network debugging. This document defines data fields for Congestion Measurement. Congestion Measurement Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Congestion Control Working Group Working Group mailing list (ccwg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccwg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/VMatrix1900/draft-ccwg-advanced-ecn"/>.</t>
    </note>
  </front>
  <middle>
    <?line 108?>

<section anchor="intro">
      <name>Introduction</name>
      <t>To effectively manage network congestion, a detailed understanding of congestion levels across the network is imperative. Congestion control algorithms, therefore, necessitate precise congestion measurements to adapt and optimize data flow. This approach involves monitoring various metrics such as packet loss, delay variations, and throughput, which can provide a glimpse of the network's congestion state. Enhanced congestion metrics allow for a more nuanced response to congestion, enabling algorithms to adjust sending rates with greater precision, thereby improving overall network performance and efficiency.</t>
      <t>Furthermore, the detailed congestion measurements obtained are not solely beneficial for congestion control; they serve multifaceted purposes, including load balancing and network operations debugging. By analyzing congestion data, network operators can identify and resolve bottlenecks, optimize traffic distribution, and ensure a balanced load across the network. This data-driven approach facilitates proactive network management, allowing for timely interventions that can preempt potential disruptions and enhance network reliability and performance.</t>
      <t>Addressing the limitations of High Precision Congestion Control (HPCC)<xref target="I-D.draft-an-ccwg-hpcc"/>, which leverages in-band telemetry for detailed congestion signal collection but faces challenges with packet size increases and computational redundancy, our proposed solution introduces data fields for Congestion Measurement. Congestion Measurement expands the conventional single-bit ECN to multiple bits, allowing network devices to update congestion information at each hop more granularly. Consequently, when packets reach the receiver, the congestion information field in the packet accurately not just the presence of congestion but the degree of congestion across the link's path. This nuanced approach facilitates a richer set of data for decision-making, supporting not only more precise congestion control but also improving load balancing and network debugging efforts. By overcoming HPCC's shortcomings, our approach enhances network efficiency, reduces computational overhead at endpoints, and offers a scalable solution to managing congestion in complex network environments. Congestion Measurement Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <ul spacing="normal">
          <li>
            <t>ECN: Explicit Congestion Notification</t>
          </li>
          <li>
            <t>HPCC: High Precision Congestion Control<xref target="I-D.draft-an-ccwg-hpcc"/></t>
          </li>
          <li>
            <t>DRE: Discounting Rate Estimator<xref target="CONGA"/></t>
          </li>
        </ul>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
        <?line -18?>

</section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t><xref target="CM-procedure"/> shows the overview procedure of Congestion Measurement. First the sender <bcp14>MUST</bcp14> marks the packet with data fields for Congestion Measurement (see <xref target="format"/>) which specifies what kind of the congestion information that the sending node intends to collect from transit nodes. As the packet traverses through the network, each router should inspect the data fields and update the Congestion Info field accordingly. Upon reaching the receiver, the updated congestion info data within the packet is extracted and then send back to the sender. The sender, now equipped with the congestion information reflective of the packet's journey, uses this data to make informed adjustments to its sending rate or load balancing decisions.</t>
      <figure anchor="CM-procedure">
        <name>Overview of Congestion Measurement</name>
        <artwork><![CDATA[
   Mark              Update            Update             Export
Congestion         Congestion        Congestion         Congestion
Measurement          Info               Info               Info
    |                 |                  |                  |
    |                 |                  |                  |
    |                 |                  |                  |
+-------+         +-------+          +-------+         +---------+
|Sending|========>|Transit|=========>|Transit|======= >|Receiving|
|  Node |         | Node1 |          | Node2 |         |  Node   |
+-------+  Link-1 +-------+  Link-2  +-------+ Link-3  +---------+
]]></artwork>
      </figure>
    </section>
    <section anchor="format">
      <name>Data fields for Congestion Measurement</name>
      <t><xref target="CM-header"/> shown the format of data fields for Congestion Measurement.</t>
      <figure anchor="CM-header">
        <name>Data Fields for Congestion Measurement</name>
        <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U| Reserved  |C|           Congestion Info Type                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Congestion Info Data                      |
~                            ....                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>Flags: An 8-bit field.
          </t>
          <ul spacing="normal">
            <li>
              <t>The first bit(U) indicates whether the Congestion Info Data field needs to be updated by transit nodes. If set, the transit nodes will update the Congestion Info Data. If not, the transit node will not update it.</t>
            </li>
            <li>
              <t>The last bit(C) indicates the Congestion Info Data is customized and used only in limited domain such as Data center network. If the C is 0, the Congestion Info Type is a bitmap. Other bits are reserved.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Congestion Info Type: A 24-bit map that specifies the present Congestion Info Data. Supported Congestion Info Data is listed in <xref target="congestion-info"/>. Note that it is possible for multiple Congestion Info Data to coexist in one packet for the endpoint to collect the detailed raw congestion information.</t>
        </li>
        <li>
          <t>Congestion Info Data: A variable length field including the congestion information data. Router <bcp14>MUST</bcp14> update this field based on local load status. The length and the update operation is listed in <xref target="congestion-info"/>.</t>
        </li>
      </ul>
      <table anchor="congestion-info">
        <name>Congestion Info Data</name>
        <thead>
          <tr>
            <th align="center">Bit</th>
            <th align="left">Congestion Info Data</th>
            <th align="center">Length</th>
            <th align="left">Operation</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center">0</td>
            <td align="left">Inflight Ratio</td>
            <td align="center">8</td>
            <td align="left">Max</td>
          </tr>
          <tr>
            <td align="center">1</td>
            <td align="left">DRE</td>
            <td align="center">8</td>
            <td align="left">Max</td>
          </tr>
          <tr>
            <td align="center">2</td>
            <td align="left">Queue Utilization Ratio</td>
            <td align="center">8</td>
            <td align="left">Max</td>
          </tr>
          <tr>
            <td align="center">3</td>
            <td align="left">Queue Delay</td>
            <td align="center">8</td>
            <td align="left">Add</td>
          </tr>
          <tr>
            <td align="center">4</td>
            <td align="left">Congested Hops</td>
            <td align="center">8</td>
            <td align="left">Add</td>
          </tr>
          <tr>
            <td align="center">5</td>
            <td align="left">Available Bandwidth</td>
            <td align="center">8</td>
            <td align="left">Min</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="example-1-hpcc-with-congestion-measurement">
      <name>Example 1: HPCC with Congestion Measurement</name>
      <t>HPCC calculates the inflight ratio of each link(represent the link utilization of the link) from the collected raw load information carried in the INT. Then maximum inflight ratio along the path is identified and used to adjust the sending rate. The formula to calculate the inflight ratio of each link is shown below:</t>
      <artwork><![CDATA[
txRate = (txBytes_1 - txBytes_2)/(t_1-t_2)
inflight ratio = qlen/(B*T) + txRate/B
]]></artwork>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>txBytes: link total transmitted bytes associated with timestamp ts</t>
        </li>
        <li>
          <t>qlen: link queue length</t>
        </li>
        <li>
          <t>B: link bandwidth</t>
        </li>
        <li>
          <t>T: Baseline RTT</t>
        </li>
      </ul>
      <t>Leveraging Congestion Measurement, the router participates in calculation of the maximum inflight ratio. Each router <bcp14>MUST</bcp14> calculate the inflight ratio of the down link and then compare it to the one in the Congestion Info Data field and keep the larger one. When the packet arrives at the endpoint, the Congestion Info Data field already contains the maximum inflight ratio. The sending rate adjustment algorithm remains unchanged. By allowing routers to conduct these calculations, the computing overhead is reduced for the endpoint. Since the update of value is in-place, the packet size remains unchanged regardless of the hops count.</t>
    </section>
    <section anchor="example-2-available-bandwidth">
      <name>Example 2: Available bandwidth</name>
      <t>The ABW(available bandwidth) of links can be applied in existing CC algorithms to optimize their throughput performance, such as TCP Reno and CUBIC. The sending rate and congestion window can be dynamically adjusted during the CC's slow-start and loss recovery phases. The BBR algorithm, which detects link bottleneck bandwidth based on rate and round-trip time (RTT), can utilize the ABW to obtain the bottleneck bandwidth of the link and optimize data throughput efficiency. Alternatively, a completely new CC algorithm can be designed based on ABW to predict and avoid congestion in advance.</t>
      <t>The method for obtaining the ABW of a link is shown as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>The sending node can obtain the ABW of its egress port, mark the packet with data fields for ABW Measurement, and then send the packet to the Receiving node.</t>
        </li>
        <li>
          <t>Transit Node identify the ABW probe action based on the Congestion Measurement header, compare the ABW of their egress port with the ABW in the packet. If the ABW of the current node is smaller than that in the packet, it updates to the link's ABW and forwards the packet; otherwise, it directly forwards the packet.</t>
        </li>
        <li>
          <t>After receiving the ABW packet, the receiving node parses the link's ABW, constructs an ABW response packet, and sends it back to the sending node.</t>
        </li>
      </ol>
      <t>The calculation of the current node's ABW can be referenced as follows:
~~~
ABW = B - T - R
~~~</t>
      <t>where B is the bandwidth of the egress port where the flow passes, T is the traffic size of that egress port, and R is the reserved bandwidth. The reserved bandwidth takes into account the fairness of the CC algorithm, facilitating the entry of newly added flow. The value of R can be set according to the specific circumstances of each node, allowing TOR switches and backbone routers to reserve different percentages of bandwidth.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CONGA">
          <front>
            <title>CONGA: distributed congestion-aware load balancing for datacenters</title>
            <author initials="M." surname="Alizadeh" fullname="Mohammad Alizadeh">
              <organization/>
            </author>
            <author initials="T." surname="Edsall" fullname="Tom Edsall">
              <organization/>
            </author>
            <author initials="S." surname="Dharmapurikar" fullname="Sarang Dharmapurikar">
              <organization/>
            </author>
            <author initials="R." surname="Vaidyanathan" fullname="Ramanan Vaidyanathan">
              <organization/>
            </author>
            <author initials="K." surname="Chu" fullname="Kevin Chu">
              <organization/>
            </author>
            <author initials="A." surname="Fingerhut" fullname="Andy Fingerhut">
              <organization/>
            </author>
            <author initials="V." surname="Lam" fullname="Vinh The Lam">
              <organization/>
            </author>
            <author initials="F." surname="Matus" fullname="Francis Matus">
              <organization/>
            </author>
            <author initials="R." surname="Pan" fullname="Rong Pan">
              <organization/>
            </author>
            <author initials="N." surname="Yadav" fullname="Navindra Yadav">
              <organization/>
            </author>
            <author initials="G." surname="Varghese" fullname="George Varghese">
              <organization/>
            </author>
            <date year="2014" month="August"/>
          </front>
          <seriesInfo name="DOI" value="10.1145/2619239"/>
          <refcontent>Proceedings of the 2014 ACM conference on SIGCOMM</refcontent>
        </reference>
        <reference anchor="I-D.draft-an-ccwg-hpcc">
          <front>
            <title>HPCC++: Enhanced High Precision Congestion Control</title>
            <author fullname="Qing An" initials="Q." surname="An">
              <organization>Alibaba Group</organization>
            </author>
            <author fullname="Jiaqi Gao" initials="J." surname="Gao">
              <organization>Alibaba Group</organization>
            </author>
            <author fullname="Surendra Anubolu" initials="S." surname="Anubolu">
              <organization>Broadcom, Inc.</organization>
            </author>
            <author fullname="Rong Pan" initials="R." surname="Pan">
              <organization>Intel, Corp.</organization>
            </author>
            <author fullname="Jeongkeun Lee" initials="J." surname="Lee">
              <organization>Intel, Corp.</organization>
            </author>
            <author fullname="Barak Gafni" initials="B." surname="Gafni">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Yuval Shpigelman" initials="Y." surname="Shpigelman">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Guy Caspary" initials="G." surname="Caspary">
              <organization>Cisco Systems</organization>
            </author>
            <date day="30" month="June" year="2023"/>
            <abstract>
              <t>   Congestion control (CC) is the key to achieving ultra-low latency,
   high bandwidth and network stability in high-speed networks.
   However, the existing high-speed CC schemes have inherent limitations
   for reaching these goals.

   In this document, it describes HPCC++ (High Precision Congestion
   Control), a new high-speed CC mechanism which achieves the three
   goals simultaneously.  HPCC++ leverages inband telemetry to obtain
   precise link load information and controls traffic precisely.  By
   addressing challenges such as delayed signaling during congestion and
   overreaction to the congestion signaling using inband and granular
   telemetry, HPCC++ can quickly converge to utilize all the available
   bandwidth while avoiding congestion, and can maintain near-zero in-
   network queues for ultra-low latency.  HPCC++ is also fair and easy
   to deploy in hardware, implementable with commodity NICs and
   switches.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-an-ccwg-hpcc-00"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
