<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shi-ippm-congestion-measurement-ipv6-options-02" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="CM">IPv6 Options for Congestion Measurement</title>
    <seriesInfo name="Internet-Draft" value="draft-shi-ippm-congestion-measurement-ipv6-options-02"/>
    <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="Y." surname="Liu" fullname="Ying Liu">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>liuy619@chinaunicom.cn</email>
      </address>
    </author>
    <author initials="M." surname="Han" fullname="Mengyao Han">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>hanmy12@chinaunicom.cn</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>Operations and Management</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>Congestion Measurement</keyword>
    <keyword>IPv6</keyword>
    <abstract>
      <?line 56?>

<t>The Congestion Measurement enables precise congestion control, aids in effective load balancing, and simplifies network debugging by accurately reflecting the degree of congestion across network paths. This document outlines how Congestion Measurement Data-Fields are encapsulated in IPv6.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    IP Performance Measurement Working Group mailing list (ippm@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/VMatrix1900/draft-congestion-measurement-ipv6-options"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="intro">
      <name>Introduction</name>
      <t><xref target="I-D.draft-shi-ippm-congestion-measurement-data"/> defines data fields of Congestion Measurement which enables sender to obtain the degree of congestion across the path. This document defines the IPv6 encapsulation of the Congestion Measurement Data-Fields.</t>
      <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="option">
      <name>Congestion Measurement Option</name>
      <t>One IPv6 option, Congestion Measurement Option is defined to carry the Congestion Measurement Data-Fields.</t>
      <figure anchor="CM-procedure">
        <name>Congestion Measurement Option</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
                                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                |Opt Type = TBD1|  Opt Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
.                                                               .
.        Congestion Measurement Data-Fields (Variable)          .
.                                                               .
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>Opt Type: Type value is TBD1, an 8-bit unsigned integer. Identifier of the type of this Congestion Measurement Option.</t>
        </li>
        <li>
          <t>Opt Data Len: An 8-bit unsigned integer. Length of the Option Data field of this option, that is, length of the Congestion Measurement Data-Fields.</t>
        </li>
        <li>
          <t>Congestion Measurement Data-Fields: Option-Type-specific data. It carries the data fields for Congestion Measurement as specified in <xref target="I-D.draft-shi-ippm-congestion-measurement-data"/>.</t>
        </li>
      </ul>
      <section anchor="congestion-measurement-hop-by-hop-options-header-hbh">
        <name>Congestion Measurement Hop-by-hop Options Header (HBH)</name>
        <t>The Congestion Measurement option can be carried in the IPv6 Hop-by-Hop Options Header. In this case, each node along the path can inspect the Congestion Info Data field if they are configured the support this option. If the U bit of Congestion Measurement Data-Fields is set, intermediate nodes will modify the Congestion Info Data field accordingly.In theory, the presence of the Hop-by-Hop Option should not affect the traffic throughput both on nodes that do not recognize this Option and on the nodes that support it. However, in a real implementation, a packet with a Hop-by-hop Option may be skipped or processed in the slow path. Proposals to mitigate the problem are out of the scope for this document.</t>
      </section>
      <section anchor="congestion-measurement-destination-options-header-doh">
        <name>Congestion Measurement Destination Options Header (DOH)</name>
        <t>The Congestion Measurement option can be carried in the IPv6 Destination Options Header. In this case, it is usually processed by the destination node. Note that, if there is also a Routing Header (RH), any visited destination in the route list can process it. If the U bit of Congestion Measurement Data-Fields is set, intermediate nodes will modify the Congestion Info Data field accordingly.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign an IPv6 Option from the "Destination Options and Hop-by-Hop Options" subregistry of "<eref target="https://www.iana.org/assignments/ipv6-parameters/">Internet Protocol Version 6 (IPv6) Parameters</eref>" as follows:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD1</td>
            <td align="left">Congestion Measurement Option</td>
            <td align="left">
              <xref target="option"/></td>
          </tr>
        </tbody>
      </table>
    </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="I-D.draft-shi-ippm-congestion-measurement-data">
          <front>
            <title>Data Fields for Congestion Measurement</title>
            <author fullname="Hang Shi" initials="H." surname="Shi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Tianran Zhou" initials="T." surname="Zhou">
              <organization>Huawei</organization>
            </author>
            <author fullname="Guangyu Zhao" initials="G." surname="Zhao">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Zhenqiang Li" initials="Z." surname="Li">
              <organization>China Mobile</organization>
            </author>
            <date day="16" month="October" year="2024"/>
            <abstract>
              <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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-shi-ippm-congestion-measurement-data-02"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
6j3H46ih7Z9Q9X8AgeV0TfMTAAA=

-->

</rfc>
