<?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.18 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shi-ippm-congestion-measurement-ipv6-options-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="CM">IPv6 Options for Congestion Measurement</title>
    <seriesInfo name="Internet-Draft" value="draft-shi-ippm-congestion-measurement-ipv6-options-01"/>
    <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="2024" month="August" day="26"/>
    <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="Zhenqiang Li" initials="Z." surname="Li">
              <organization>China Mobile</organization>
            </author>
            <date day="3" month="March" 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 arrive 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-00"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
D/We43FU0/bPqPo/KcSw5/MTAAA=

-->

</rfc>
