<?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.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-intarea-dhcp-rate-signaling-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>DHCP Explicit Rate Signaling</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-intarea-dhcp-rate-signaling-00"/>
    <author fullname="Christian Giese">
      <organization>RtBrick</organization>
      <address>
        <email>christian@rtbrick.com</email>
      </address>
    </author>
    <author fullname="Richard Patterson">
      <organization>Sky UK</organization>
      <address>
        <email>Richard.Patterson@sky.uk</email>
      </address>
    </author>
    <date year="2026" month="August" day="27"/>
    <area>Internet Area</area>
    <workgroup>Internet Area Working Group</workgroup>
    <abstract>
      <?line 46?>

<t>This document defines new Dynamic Host Configuration Protocol (DHCP)
options for both DHCPv4 and DHCPv6 to explicitly
signal available upstream and downstream data rates. In many broadband
access networks, Customer Premises Equipment (CPE) and intermediate
nodes lack visibility into the subscriber's provisioned service tier.
By communicating these capacities natively via DHCP, clients, relay agents,
and snooping switches can dynamically configure localized traffic shaping
and queuing. This explicit signaling improves overall network performance
by reducing the reliance on indiscriminate packet dropping and policing at the
service edge. Additionally, it provides the necessary capacity awareness
to enable effective Active Queue Management (AQM) and the Low Latency,
Low Loss, and Scalable Throughput (L4S) architecture.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-intarea-dhcp-rate-signaling/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/GIC-de/draft-dhcp-rate-signaling"/>.</t>
    </note>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>In typical broadband access networks, the Customer Premises Equipment (CPE)
is often unaware of the actual available data rates. This lack of visibility
may occur when an external modem or Optical Network Terminal (ONT) <xref target="G.984.1"/>
connects to the CPE at a physical link speed that significantly exceeds the
subscriber's provisioned service rate. Furthermore, operators commonly deploy
unified access profiles where the available rate is artificially limited at
the service edge, such as the Broadband Network Gateway (BNG) <xref target="TR101"/>,
to match the subscriber's purchased service tier.</t>
        <t>When the network bottleneck resides between the BNG and the CPE, intermediate
devices are typically not well equipped to provide deep buffering, priority
scheduling, or Active Queue Management (AQM) <xref target="RFC7567"/>. Relying on indiscriminate
packet dropping or policing at the service edge severely degrades the user experience.
Conversely, network performance improves significantly by performing intelligent shaping
and prioritization. When combined with AQM and the Low Latency, Low Loss, and
Scalable Throughput (L4S) architecture <xref target="RFC9330"/>,
these localized traffic management benefits are further amplified.</t>
      </section>
      <section anchor="architectural-context">
        <name>Architectural Context</name>
        <t>In many IP over Ethernet (IPoE) <xref target="TR101"/> architectures, the
Broadband Network Gateway (BNG) operates strictly as a DHCP relay agent.
While per-subscriber traffic management policies, such as queues, shapers,
and policers, are typically provisioned out-of-band via
Authentication, Authorization, and Accounting (AAA) protocols like RADIUS <xref target="RFC2865"/>,
deployments lacking direct AAA integration at the service edge require an in-band
signaling alternative.</t>
        <t>Transporting available data rates natively within DHCP options addresses this
architectural constraint. This mechanism allows the BNG to dynamically instantiate
downstream shapers and upstream policers based on the DHCP payload, while concurrently
equipping the Customer Premises Equipment (CPE) with the parameters required to manage
upstream traffic locally.</t>
        <t>Furthermore, intermediate Layer 2 access nodes performing DHCP snooping can passively
extract these explicitly signaled rate parameters to optimize their local queues and
shapers. By distributing capacity awareness across the entire forwarding path, this
in-band signaling mitigates buffer congestion within the access segment and significantly
improves end-to-end transport performance.</t>
      </section>
      <section anchor="applicability-and-benefits">
        <name>Applicability and Benefits</name>
        <t>While auto-configuration protocols such as TR-069 <xref target="TR069"/> can provision rate information, they are
not universally deployed by all service providers. Furthermore, the increasing prevalence of
customer-owned, unmanaged CPE devices, including devices running open-source firmware or custom projects,
limits the effectiveness of operator-managed configuration servers. A standardized DHCP option
addresses this gap by providing a universal mechanism to explicitly signal available data rates
directly from the DHCP server, across BNGs and access nodes, down to the CPE.
This localized approach is particularly advantageous because it serves the entire path,
whereas auto-configuration servers exclusively target the end device. This method also
integrates seamlessly with architectures where RADIUS servers inject DHCP options.</t>
        <t>Although primarily designed for IPoE deployments, this mechanism is equally applicable
to Point-to-Point Protocol over Ethernet (PPPoE) <xref target="RFC2516"/> environments. Since DHCP
is frequently utilized over PPPoE, most notably for IPv6 Prefix Delegation, this option
provides a standardized method for rate signaling. Consequently, this approach can supersede
the fragmented, proprietary methods currently in use, such as embedding rate limits within
PPP <xref target="RFC1661"/> authentication reply messages.</t>
        <t>Conveying rates via DHCP natively supports dynamic updates through regular lease renewals
or triggered reconfiguration requests. As an auxiliary benefit, this explicit rate
information can be exposed in the CPE user interface to satisfy customer expectations
regarding bandwidth visibility. Ultimately, introducing a DHCP option to signal available
data rates represents a simple, standardized enhancement that yields widespread improvements
in internet service delivery.</t>
        <t>Operational requirements necessitate the definition of this option for both DHCPv4 and DHCPv6.
This ensures coverage for networks lacking IPv6 support and prevents configuration gaps in
dual-stack scenarios where DHCPv4 is established prior to DHCPv6.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

<t>This document makes use of the terms defined in <xref target="RFC2131"/> and <xref target="RFC8415"/>.
The following additional terms are used:</t>
      <dl>
        <dt>DHCP</dt>
        <dd>
          <t>The abbreviation DHCP is used throughout this document to refer to both DHCPv4 and DHCPv6 protocols.</t>
        </dd>
        <dt>DHCPv4</dt>
        <dd>
          <t>Dynamic Host Configuration Protocol <xref target="RFC2131"/></t>
        </dd>
        <dt>DHCPv6</dt>
        <dd>
          <t>Dynamic Host Configuration Protocol for IPv6 <xref target="RFC8415"/></t>
        </dd>
        <dt>Subscriber</dt>
        <dd>
          <ul empty="true">
            <li>
              <t>The individual, organization, or entity that maintains a contractual relationship with a
 Broadband Service Provider for network access services. Within the network infrastructure,
 a subscriber is typically represented by an authenticated logical session (e.g., IPoE or PPPoE)
 and an associated policy profile that dictates service attributes, including provisioned
 upstream and downstream data rates.</t>
            </li>
          </ul>
        </dd>
      </dl>
    </section>
    <section anchor="dhcp-rate-option">
      <name>DHCP Rate Option</name>
      <t>The DHCP Rate Option specified in this document is a container option with a sub-option structure for
both DHCPv4 and DHCPv6. The top-level option encapsulation strictly conforms to the
requirements of each base protocol. Specifically, DHCPv4 utilizes an 8-bit option
code set to TBD1 alongside an 8-bit length field, whereas DHCPv6 utilizes a 16-bit
option code set to TBD2 alongside a 16-bit length field.</t>
      <t>While the underlying semantics of the rate information remain identical across both IP versions,
the internal payload sizing differs to align with the conventions of each respective protocol.
For DHCPv4, the encapsulated sub-options utilize an 8-bit sub-option code and an 8-bit sub-option
length field, mirroring the format of DHCPv4 Option 82 (Relay Agent Information Option) <xref target="RFC3046"/>.
Conversely, for DHCPv6, the encapsulated sub-options utilize a 16-bit sub-option code and a
16-bit sub-option length field.</t>
      <section anchor="sub-options-format">
        <name>Sub-Options Format</name>
        <t>The rate information field consists of a sequence of sub-option (SubOpt) Code/Length/Value tuples.
Because the field sizing differs between the two protocols to align with their
respective base specifications, the sub-options are encoded as follows:</t>
        <t>DHCPv4 Sub-Option Format:</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
              <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="52" y="84">SubOpt</text>
                <text x="100" y="84">Code</text>
                <text x="172" y="84">SubOpt</text>
                <text x="228" y="84">Length</text>
                <text x="300" y="84">SubOpt</text>
                <text x="352" y="84">Value</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SubOpt Code  | SubOpt Length | SubOpt Value                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
        <t>DHCPv6 Sub-Option Format:</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="528" viewBox="0 0 528 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="116" y="84">SubOpt</text>
                <text x="164" y="84">Code</text>
                <text x="364" y="84">SubOpt</text>
                <text x="420" y="84">Length</text>
                <text x="236" y="116">SubOpt</text>
                <text x="288" y="116">Value</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          SubOpt Code          |         SubOpt Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         SubOpt Value                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
        <t>No "pad" sub-option is defined, and the rate information field <bcp14>SHALL NOT</bcp14>
be terminated with a 255 sub-option. The length of OPTION_RATE <bcp14>MUST</bcp14> include
all bytes of the sub-option code/length/value tuples. The sub-option length
<bcp14>MUST</bcp14> equal the number of octets in the sub-option's value field. A sub-option
length <bcp14>MAY</bcp14> be zero. The sub-options need not appear in sub-option code order.</t>
        <t>The initial assignment of DHCP Rate Sub-options is as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="right">Code</th>
              <th align="right">Length</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="right">-</td>
              <td align="left">Reserved</td>
            </tr>
            <tr>
              <td align="right">1</td>
              <td align="right">8</td>
              <td align="left">Available Rate Upstream in bits per second (bps)</td>
            </tr>
            <tr>
              <td align="right">2</td>
              <td align="right">8</td>
              <td align="left">Available Rate Downstream in bits per second (bps)</td>
            </tr>
            <tr>
              <td align="right">3</td>
              <td align="right">1</td>
              <td align="left">Rate Type (L2 or L3)</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sub-options">
        <name>Sub-Options</name>
        <section anchor="available-rate-upstream">
          <name>Available Rate Upstream</name>
          <t>The sub-option Available Rate Upstream defines the rate in bits per second (bps) available from the
DHCP client towards the DHCP server direction. The rate format is a 64-bit unsigned integer in
network byte order.</t>
          <t>DHCPv4 Sub-Option Format:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="44" y="84">SubOpt</text>
                  <text x="100" y="84">Code=1</text>
                  <text x="172" y="84">SubOpt</text>
                  <text x="224" y="84">Len=8</text>
                  <text x="56" y="116">Available</text>
                  <text x="116" y="116">Rate</text>
                  <text x="172" y="116">Upstream</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code=1 | SubOpt Len=8  |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
| Available Rate Upstream                                       |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
          <t>DHCPv6 Sub-Option Format:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="44" y="84">SubOpt</text>
                  <text x="100" y="84">Code=1</text>
                  <text x="300" y="84">SubOpt</text>
                  <text x="352" y="84">Len=8</text>
                  <text x="56" y="116">Available</text>
                  <text x="116" y="116">Rate</text>
                  <text x="172" y="116">Upstream</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code=1                 | SubOpt Len=8                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Available Rate Upstream                                       |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
          <t>A value of 0 in this context signifies an unrestricted rate. It can be interpreted as a request to
remove a previously set rate, thereby resetting to the device default configuration.</t>
        </section>
        <section anchor="available-rate-downstream">
          <name>Available Rate Downstream</name>
          <t>The available rate downstream defines the rate in bits per second (bps) available from the DHCP
server towards the DHCP client direction. The rate format is a 64-bit unsigned integer in network byte order.</t>
          <t>DHCPv4 Sub-Option Format:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="44" y="84">SubOpt</text>
                  <text x="100" y="84">Code=2</text>
                  <text x="172" y="84">SubOpt</text>
                  <text x="224" y="84">Len=8</text>
                  <text x="56" y="116">Available</text>
                  <text x="116" y="116">Rate</text>
                  <text x="180" y="116">Downstream</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code=2 | SubOpt Len=8  |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
| Available Rate Downstream                                     |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
          <t>DHCPv6 Sub-Option Format:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="44" y="84">SubOpt</text>
                  <text x="100" y="84">Code=2</text>
                  <text x="300" y="84">SubOpt</text>
                  <text x="352" y="84">Len=8</text>
                  <text x="56" y="116">Available</text>
                  <text x="116" y="116">Rate</text>
                  <text x="180" y="116">Downstream</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code=2                 | SubOpt Len=8                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Available Rate Downstream                                     |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
          <t>A value of 0 in this context signifies an unrestricted rate. It can be interpreted as a request to
remove a previously set rate, thereby resetting to the device default configuration.</t>
        </section>
        <section anchor="rate-type">
          <name>Rate Type</name>
          <t>The rate type defines the networking layer to which the stated rates apply. The default value of 2
is defined as the Layer 2 rate, which signifies that the rate encompasses the entire Ethernet frame.
Implementations <bcp14>SHOULD</bcp14> calculate this rate using the Ethernet header and all payload, excluding the
Ethernet Frame Check Sequence (FCS) and Inter-Packet Gap (IPG).</t>
          <t>DHCPv4 Sub-Option Format:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="400" viewBox="0 0 400 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 392,64 L 392,96" fill="none" stroke="black"/>
                <path d="M 8,64 L 392,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 392,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="44" y="84">SubOpt</text>
                  <text x="100" y="84">Code=3</text>
                  <text x="172" y="84">SubOpt</text>
                  <text x="224" y="84">Len=1</text>
                  <text x="292" y="84">Rate</text>
                  <text x="332" y="84">Type</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code=3 | SubOpt Len=1  | Rate Type     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
          <t>DHCPv6 Sub-Option Format:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="528" viewBox="0 0 528 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 136,96 L 136,128" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 136,128" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="44" y="84">SubOpt</text>
                  <text x="100" y="84">Code=3</text>
                  <text x="300" y="84">SubOpt</text>
                  <text x="352" y="84">Len=1</text>
                  <text x="36" y="116">Rate</text>
                  <text x="76" y="116">Type</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code=3                 | SubOpt Len=1                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Rate Type     |
+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
          <t>If the rate type is set to 0, the explicitly signaled rates are informational only. Devices receiving this
rate type <bcp14>MUST NOT</bcp14> apply the specified rate limits to their physical interfaces, traffic shapers, policers,
or Active Queue Management (AQM) parameters. This value accommodates deployments where the network exposes
the provisioned service tier to the Customer Premises Equipment (CPE) solely to populate user interfaces
or for telemetry purposes, without altering the device's localized forwarding behavior.</t>
          <t>If the rate type is set to 3, the rate applies to Layer 3, encompassing only the IP header and its
payload. This rate calculation is frequently utilized by end-user speed test applications and is
often regarded as the marketable "product bandwidth". Its primary advantage is its independence from
the variable overhead introduced by differing numbers of VLAN tags or tunnel encapsulations.</t>
          <t>In the absence of the Rate Type sub-option, the client <bcp14>MUST</bcp14> assume that the signaled values are
defined as the Layer 2 rate.</t>
          <t>The values 1 and 4-255 are currently unassigned and reserved for future use. If a client, server,
or relay agent receives a Rate Type sub-option containing an unrecognized or reserved value,
it <bcp14>MUST</bcp14> ignore the entire OPTION_RATE. Applying explicitly signaled rate limits without understanding
the intended networking layer could result in incorrect localized traffic management. Therefore,
to fail safely, the receiving device <bcp14>MUST</bcp14> discard the option entirely and rely on its default
rate configuration.</t>
          <t>The initial assignment of rate types is as follows:</t>
          <table>
            <thead>
              <tr>
                <th align="right">Type</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="right">0</td>
                <td align="left">Informational</td>
              </tr>
              <tr>
                <td align="right">1</td>
                <td align="left">Reserved</td>
              </tr>
              <tr>
                <td align="right">2</td>
                <td align="left">Layer 2 rate</td>
              </tr>
              <tr>
                <td align="right">3</td>
                <td align="left">Layer 3 rate</td>
              </tr>
              <tr>
                <td align="right">4-255</td>
                <td align="left">Unassigned</td>
              </tr>
            </tbody>
          </table>
          <t>A client <bcp14>MAY</bcp14> include the Rate Type sub-option within its initial requests to serve as a hint to the
server regarding its preferred calculation method (e.g., requesting a Layer 3 rate instead of a
Layer 2 rate). Sending this hint is <bcp14>OPTIONAL</bcp14> for the client, and honoring the hint is <bcp14>OPTIONAL</bcp14>
for the server.</t>
        </section>
      </section>
    </section>
    <section anchor="dhcpv4">
      <name>DHCPv4</name>
      <section anchor="dhcpv4-rate-option">
        <name>DHCPv4 Rate Option</name>
        <t>The DHCPv4 OPTION_RATE code is TBD1.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="528" viewBox="0 0 528 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,272" fill="none" stroke="black"/>
              <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
              <path d="M 136,144 L 136,176" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
              <path d="M 264,144 L 264,176" fill="none" stroke="black"/>
              <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,96" fill="none" stroke="black"/>
              <path d="M 392,208 L 392,240" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,240" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,144 L 520,144" fill="none" stroke="black"/>
              <path d="M 8,176 L 264,176" fill="none" stroke="black"/>
              <path d="M 264,208 L 520,208" fill="none" stroke="black"/>
              <path d="M 8,240 L 520,240" fill="none" stroke="black"/>
              <path d="M 8,272 L 120,272" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="36" y="84">Code</text>
                <text x="76" y="84">TBD1</text>
                <text x="172" y="84">Length</text>
                <text x="208" y="84">N</text>
                <text x="300" y="84">SubOpt</text>
                <text x="348" y="84">Code</text>
                <text x="428" y="84">SubOpt</text>
                <text x="484" y="84">Length</text>
                <text x="44" y="116">SubOpt</text>
                <text x="96" y="116">Value</text>
                <text x="44" y="164">SubOpt</text>
                <text x="92" y="164">Code</text>
                <text x="172" y="164">SubOpt</text>
                <text x="228" y="164">Length</text>
                <text x="300" y="164">SubOpt</text>
                <text x="352" y="164">Value</text>
                <text x="300" y="228">SubOpt</text>
                <text x="348" y="228">Code</text>
                <text x="428" y="228">SubOpt</text>
                <text x="484" y="228">Length</text>
                <text x="44" y="260">SubOpt</text>
                <text x="96" y="260">Value</text>
                <text x="132" y="276">..</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Code TBD1     | Length N      | SubOpt Code   | SubOpt Length |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Value                                                  |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Code   | SubOpt Length | SubOpt Value                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
 |                                                               |
 |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                               | SubOpt Code   | SubOpt Length |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Value
 +-+-+-+-+-+-+-...
]]></artwork>
        </artset>
        <t>The option length (N) gives the total number of octets of all sub-options,
with a minimum value of 2 bytes, which is the sub-options header length.</t>
      </section>
      <section anchor="dhcpv4-client-behavior">
        <name>DHCPv4 Client Behavior</name>
        <t>DHCPv4 clients that support the DHCP Rate Option <bcp14>SHOULD</bcp14> include the corresponding OPTION_RATE code in
the Parameter Request List (PRL). This inclusion explicitly signals client support, enabling the DHCP
server to determine whether to include the rate parameters in its response. Furthermore, this
signaling provides network operators with visibility into client capabilities, which aids in
troubleshooting and resolving customer service quality complaints.</t>
        <t>A client <bcp14>MAY</bcp14> include the DHCP Rate Option directly within its DHCPREQUEST messages to serve as a hint
to the server proposing their maximum data rates or preferred rate type (L2 or L3 rates). For
example, when a CPE device is connected via a 1 Gbps WAN interface to an external Optical Network
Terminal (ONT) or modem capable of exceeding 1 Gbps on the WAN side, the CPE can explicitly signal
this physical limitation to the service provider. This enables the network to align its shaping
parameters directly with the device's actual capacity, ensuring traffic does not exceed the physical
limit.</t>
        <t>However, providing this hint is <bcp14>OPTIONAL</bcp14>. The manner in which a DHCP server processes or utilizes
these client-provided hints is implementation-specific and outside the scope of this document.
Because the server remains authoritative, the client <bcp14>MUST</bcp14> accept and apply the rate type ultimately
provided by the server in the DHCPACK message, regardless of the hint it originally sent.</t>
        <t>Clients <bcp14>MUST</bcp14> ignore the OPTION_RATE when received within a message other than DHCPACK. If the
OPTION_RATE is present in a DHCPOFFER message, the client <bcp14>MUST NOT</bcp14> apply the specified rate limits to
its interfaces. However, a client <bcp14>MAY</bcp14> evaluate the rate information provided in a DHCPOFFER as a
selection criterion to prefer one server's offer over another.</t>
      </section>
      <section anchor="dhcpv4-server-behavior">
        <name>DHCPv4 Server Behavior</name>
        <t>When a DHCPv4 server is configured to support the DHCP Rate Option and receives a client request
(e.g., DHCPDISCOVER or DHCPREQUEST) that includes the OPTION_RATE within the Parameter Request List
(PRL), the server <bcp14>MUST</bcp14> include the OPTION_RATE in the resulting DHCPOFFER and DHCPACK messages.</t>
        <t>The server <bcp14>MAY</bcp14> derive the specific upstream and downstream rates and rate type from local
configuration profiles, centralized Authentication, Authorization, and Accounting (AAA) systems such
as RADIUS, or external policy servers. If no non-zero values are configured or signaled to be used,
the server <bcp14>MAY</bcp14> return rate values of 0.</t>
        <t>A server <bcp14>MAY</bcp14> include the OPTION_RATE in its responses even if the client did not explicitly request
it via the Parameter Request List (PRL), provided the operator has explicitly configured the server
to forcefully inject the option to provision intermediate nodes, such as DHCP relay agents or Layer 2
snooping switches, which <bcp14>MAY</bcp14> drop these options before forwarding the message to the client.</t>
      </section>
      <section anchor="dhcpv4-relay-agent-behavior">
        <name>DHCPv4 Relay Agent Behavior</name>
        <t>DHCPv4 Relay Agents, including L2 DHCPv4 Relay Agents <xref target="TR101"/>, <bcp14>MAY</bcp14> extract the OPTION_RATE from
DHCPACK messages traversing the network. Relay agents that perform localized traffic management <bcp14>MAY</bcp14>
utilize these extracted values to dynamically instantiate shapers and policers on their
subscriber-facing interfaces.</t>
        <t>Furthermore, a relay agent <bcp14>MAY</bcp14> add, modify, or remove the OPTION_RATE before forwarding the DHCP
message to the client. This accommodates deployments where the relay agent (e.g., a BNG) is
responsible for policy enforcement and populates or overrides the OPTION_RATE based on subscriber
attributes retrieved directly from an external Authentication, Authorization, and Accounting (AAA)
server, such as RADIUS.</t>
      </section>
    </section>
    <section anchor="dhcpv6">
      <name>DHCPv6</name>
      <section anchor="dhcpv6-rate-option">
        <name>DHCPv6 Rate Option</name>
        <t>The DHCPv6 OPTION_RATE code is TBD2.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="528" viewBox="0 0 528 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,240" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
              <path d="M 264,176 L 264,208" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,208" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 520,176" fill="none" stroke="black"/>
              <path d="M 8,208 L 520,208" fill="none" stroke="black"/>
              <path d="M 8,240 L 120,240" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="36" y="84">Code</text>
                <text x="76" y="84">TBD2</text>
                <text x="300" y="84">Length</text>
                <text x="336" y="84">N</text>
                <text x="44" y="116">SubOpt</text>
                <text x="92" y="116">Code</text>
                <text x="300" y="116">SubOpt</text>
                <text x="356" y="116">Length</text>
                <text x="44" y="148">SubOpt</text>
                <text x="96" y="148">Value</text>
                <text x="44" y="196">SubOpt</text>
                <text x="92" y="196">Code</text>
                <text x="300" y="196">SubOpt</text>
                <text x="356" y="196">Length</text>
                <text x="44" y="228">SubOpt</text>
                <text x="96" y="228">Value</text>
                <text x="132" y="244">..</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Code TBD2                     | Length N                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Code                   | SubOpt Length                 |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Value                                                  |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Code                   | SubOpt Length                 |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | SubOpt Value
 +-+-+-+-+-+-+-...
]]></artwork>
        </artset>
        <t>The option length (N) gives the total number of octets of all sub-options,
with a minimum value of 4 bytes, which is the sub-options header length.</t>
      </section>
      <section anchor="dhcpv6-client-behavior">
        <name>DHCPv6 Client Behavior</name>
        <t>DHCPv6 clients that support the DHCP Rate Option <bcp14>SHOULD</bcp14> include the corresponding OPTION_RATE code in
the Option Request Option (ORO) <xref target="RFC8415"/>. This inclusion explicitly signals client support,
enabling the DHCPv6 server to determine whether to include the rate parameters in its response.
Furthermore, this signaling provides network operators with visibility into client capabilities,
which aids in troubleshooting and resolving customer service quality complaints.</t>
        <t>A client <bcp14>MAY</bcp14> include the OPTION_RATE with any or all sub-options within its DHCPv6 Request messages
to serve as a hint to the server proposing their maximum data rates or preferred rate type
(L2 or L3 rates).</t>
        <t>Providing this hint is <bcp14>OPTIONAL</bcp14>. The manner in which a DHCPv6 server processes these client-provided
hints is implementation-specific. Because the server remains authoritative, the client <bcp14>MUST</bcp14> accept
and apply the rate type ultimately provided by the server in the REPLY message, regardless of the
hint it originally sent.</t>
        <t>Clients <bcp14>MUST</bcp14> ignore the OPTION_RATE when received within a message other than REPLY. If the
OPTION_RATE is present in an ADVERTISE message, the client <bcp14>MUST NOT</bcp14> apply the specified rate limits
to its interfaces. However, the client <bcp14>MAY</bcp14> evaluate this early rate visibility as a selection
criterion to prefer one server's advertisement over another.</t>
      </section>
      <section anchor="dhcpv6-server-behavior">
        <name>DHCPv6 Server Behavior</name>
        <t>A DHCPv6 server <bcp14>MAY</bcp14> embed the OPTION_RATE directly within a REPLY message encapsulated inside
RELAY-REPL messages to explicitly provision the end client. The server <bcp14>MAY</bcp14> include the option within
the RELAY-REPL message to target the corresponding relay agent, instructing it to apply rate limits
locally. The nested relay header architecture of DHCPv6 empowers the server to explicitly address
each relay agent in the path, in addition to the end client, ensuring precise targeting of signaling
parameters.</t>
        <t>If network policy dictates localized traffic management at both the Customer Premises Equipment (CPE)
and the relay node, the server <bcp14>MAY</bcp14> include the OPTION_RATE at all encapsulation levels
simultaneously. When provisioning multiple levels, the server <bcp14>MAY</bcp14> supply different rate values to
each respective node. For example, an operator might configure a relay agent's upstream policer with
a slightly higher rate limit than the CPE's upstream shaper. This operational delta accommodates
minor traffic burstiness from the CPE and prevents premature packet drops at the intermediate access
node. This capability to independently target different nodes along the forwarding path is unique to
the nested relay header architecture of DHCPv6, as DHCPv4 lacks a comparable mechanism for addressing
multiple relay agents distinctly.</t>
        <t>Furthermore, to dynamically update a client's rate limits mid-lease, the server <bcp14>MAY</bcp14> utilize
RECONFIGURE messages to apply updates before the T1 timer expires. By triggering the client to
initiate a Renew or Information-request transaction, this mechanism allows the server to push newly
modified rate parameters without waiting for timer expiration.</t>
      </section>
      <section anchor="dhcpv6-relay-agent-behavior">
        <name>DHCPv6 Relay Agent Behavior</name>
        <t>DHCPv6 Relay Agents, including Lightweight DHCPv6 Relay Agents (LDRA) <xref target="RFC6221"/>, <bcp14>MUST</bcp14> extract and
consume the OPTION_RATE from their corresponding Relay-Reply header. Because the DHCPv6 architecture
provides a dedicated signaling channel for intermediate nodes, relay agents <bcp14>MUST NOT</bcp14> passively
inspect the encapsulated client-facing REPLY payload to extract rate information. Relay agents that
perform localized traffic management <bcp14>MAY</bcp14> utilize these explicitly targeted values to dynamically
instantiate shapers, policers, or Active Queue Management (AQM) disciplines on their
subscriber-facing interfaces.</t>
        <t>In many architectures, the Broadband Network Gateway (BNG) or similar intermediary device serves as
the authoritative policy enforcement point rather than a transparent relay. In such deployments, the
intermediary device <bcp14>MAY</bcp14> populate, modify, or remove the OPTION_RATE destined for the client. This
allows the network edge to inject dynamic rate parameters based on subscriber attributes retrieved
directly from an external Authentication, Authorization, and Accounting (AAA) server, such as RADIUS,
before the message reaches the downstream client.</t>
      </section>
    </section>
    <section anchor="dhcp-snooping">
      <name>DHCP Snooping</name>
      <t>DHCP snooping switches are typically deployed as intermediate Layer 2 devices that passively monitor
DHCP message exchanges to enforce security policies and build binding databases, all without
modifying the DHCP payloads. These devices <bcp14>MAY</bcp14> passively inspect the DHCP Rate Option within messages
destined for clients. By extracting these explicit rate parameters, snooping devices can dynamically
provision appropriate traffic shapers, policers, or hardware queues on the corresponding downstream,
client-facing ports.</t>
    </section>
    <section anchor="pppoe">
      <name>PPPoE</name>
      <t>In Point-to-Point Protocol over Ethernet (PPPoE) <xref target="RFC2516"/> architectures, the Customer Premises
Equipment (CPE) typically employs DHCPv6 over the PPP <xref target="RFC1661"/> link to request an IPv6
Delegated Prefix (IA_PD) <xref target="RFC8415"/>. This encapsulated DHCPv6 exchange provides a standardized
transport mechanism for the explicit DHCP Rate Option. While less prevalent in modern deployments,
DHCPv4 transactions operating within a PPPoE session <bcp14>MAY</bcp14> similarly convey these rate options.</t>
      <t>The foundational processing rules and client behavior for rate options received over PPPoE are
identical to those defined for IP over Ethernet (IPoE) environments.</t>
      <t>If a client receives rate limits embedded within the PPP authentication reply message and concurrently
receives the DHCP OPTION_RATE, the explicitly signaled DHCP OPTION_RATE <bcp14>MUST</bcp14> take priority. This
precedence ensures that the standardized, dynamic DHCP signaling supersedes fragmented or proprietary
rate limits previously negotiated during the PPP authentication phase.</t>
      <t>Because the PPP session dictates the primary logical link state, the applied rate <bcp14>MUST</bcp14> revert to
the device's default configuration under two specific conditions. First, the client <bcp14>MUST</bcp14> reset the
applied limits if it receives a valid DHCP message explicitly signaling rate removal with a
sub-option containing a rate value of zero. Second, the rate <bcp14>MUST</bcp14> be implicitly revoked if the
underlying PPPoE session itself is terminated.</t>
    </section>
    <section anchor="interaction-with-aqm-and-l4s">
      <name>Interaction with AQM and L4S</name>
      <t>Active Queue Management (AQM) mechanisms, as recommended in <xref target="RFC7567"/>, are most effective when
they operate at or near the true bottleneck rate for a given service. In many broadband deployments
today, Customer Premises Equipment (CPE) and intermediate access nodes configure shaping and AQM
parameters against the physical port speed rather than the subscriber's provisioned rate, which can
lead either to persistent queues and excess latency when configured too high, or to underutilization
when configured too low.</t>
      <t>By explicitly signaling per-subscriber upstream and downstream rates via the DHCP Rate Option, this
document enables CPE devices, relay agents, and snooping switches to instantiate shapers and AQM instances
that closely track the actual bottleneck capacity for each subscriber. Placing the bottleneck queue
under control of an AQM that follows the recommendations in <xref target="RFC7567"/> allows operators to limit
queue growth and reduce queuing delay while still efficiently utilizing the contracted bandwidth.
The Low Latency, Low Loss, and Scalable Throughput (L4S) architecture <xref target="RFC9330"/> relies on shallow
queues under an L4S-compatible AQM and on congestion controllers that react promptly to Explicit
Congestion Notification (ECN) signals. Providing accurate rate information to devices at or near the
bottleneck link allows those devices to configure L4S-capable AQMs at the appropriate shaping rate,
so that L4S flows can achieve consistently low queuing delay while still fully utilizing the
subscriber's provisioned service tier. The DHCP Rate Option defined in this document is therefore an
enabler for deploying L4S and other modern AQM schemes in access networks, even though the detailed
design of AQM and congestion control algorithms remains outside the scope of this specification.</t>
    </section>
    <section anchor="errors">
      <name>Errors and Conflicts</name>
      <t>Clients receiving conflicting rate information across DHCPv4 and DHCPv6 <bcp14>SHOULD</bcp14> prefer a rate learned
via DHCPv6 over a rate learned via DHCPv4. Implementations <bcp14>MUST</bcp14> retain the applied rate together with
its source protocol. If the applied rate was learned via DHCPv6 and the corresponding DHCPv6 lease
expires while a valid DHCPv4 lease remains active, the client <bcp14>MUST</bcp14> treat the retained rate as
DHCPv4-derived for the purpose of subsequent updates and continue using that rate until superseded
by a later valid update. If no valid DHCPv4 lease remains active when the DHCPv6 lease expires,
the client <bcp14>MUST</bcp14> reset the applied rate to the device’s default configuration.</t>
      <t>To ensure forward compatibility, clients, servers, and relay agents <bcp14>MUST</bcp14> ignore unrecognized sub-option
codes and continue processing the remainder of the Rate Option.</t>
      <t>Conversely, if a device receives a recognized sub-option containing an unrecognized or reserved value
that dictates the fundamental interpretation of the rate parameters (such as an unassigned Rate Type),
it <bcp14>MUST</bcp14> discard the entire OPTION_RATE. Applying explicitly signaled rates without understanding the
intended networking layer could result in incorrect localized traffic management. In such cases,
the device <bcp14>MUST</bcp14> rely on its default rate configuration.</t>
      <t>If multiple instances of the same sub-option code are present, the last instance <bcp14>MUST</bcp14> be processed.</t>
      <t>A client may receive an OPTION_RATE indicating an Available Rate that exceeds the maximum physical
link speed of its upstream or downstream interfaces (e.g., signaling 2 Gbps to a CPE with a 1 Gbps
WAN port). In such scenarios, the client <bcp14>SHOULD</bcp14> cap the applied traffic shaping, policing, or Active
Queue Management (AQM) parameters to the maximum capacity of the physical link.</t>
    </section>
    <section anchor="operations">
      <name>Operational or Manageability Considerations</name>
      <t>Deploying explicit rate signaling via DHCP introduces several operational benefits and deployment
considerations for network management. When combined with appropriately configured AQM and, where
deployed, L4S-compatible queue management, these per-subscriber rate parameters help to concentrate
congestion control at a well-defined bottleneck and minimize queuing delay in the access segment.</t>
      <t>Implementations <bcp14>SHOULD</bcp14> expose the explicitly signaled, DHCP-learned rate parameters within
Customer Premises Equipment (CPE) management interfaces, such as the local Web User Interface (UI)
or remote management protocols. Providing end-users and operators with immediate visibility into the
locally provisioned service tier significantly reduces support inquiries related to perceived
bandwidth issues and improves overall user satisfaction.</t>
      <t>As noted in <xref format="title" target="errors"/>, a client may receive an OPTION_RATE indicating an available rate that
exceeds the maximum physical link speed of its interfaces. In such scenarios, management interfaces
<bcp14>SHOULD</bcp14> expose both the originally signaled rate value and the effective, capped rate value applied by
the device. Additionally, implementations <bcp14>SHOULD</bcp14> log this discrepancy if logging facilities are
enabled. Capturing and exposing these specific events provides critical telemetry for network
operators, as they frequently indicate a mismatch between the subscriber's provisioned service tier
and their installed physical equipment.</t>
    </section>
    <section anchor="cpe">
      <name>Customer-Owned and Open Source CPE</name>
      <t>A key motivation for this option is to support customer-owned or subscriber-managed CPE, including
retail routers and devices running open-source firmware (for example, OpenWrt) that are not
integrated with operator auto-configuration systems such as TR-069. In these environments, the access
network can expose the provisioned upstream and downstream rates via DHCP, and CPE implementations
that understand this option <bcp14>MAY</bcp14> use the learned values to configure local shaping, policing, queue
management, or simple rate indicators in their user interfaces.</t>
      <t>Because the option format is intentionally simple and identical for DHCPv4 and DHCPv6, it is
straightforward for open-source projects and custom CPE implementations to add support without
requiring coupling to any specific vendor management system. Even if no advanced AQM features are
present, aligning any local rate limits with the signaled values helps avoid misconfiguration and
reduces the likelihood of bufferbloat in the customer-owned equipment.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>DHCP messages are typically transmitted as plaintext and are unauthenticated. Consequently, the DHCP
Rate Options defined in this document are vulnerable to interception, modification, or spoofing by
on-path attackers. A malicious actor or a successfully deployed rogue DHCP server could inject
artificially low rate limits to severely throttle a client's connection, resulting in a localized
Denial of Service (DoS).</t>
      <t>The severity of this specific risk is generally no greater than standard DHCP threat vectors, such as
rogue default gateway assignment, DNS hijacking, or IP pool exhaustion, which typically yield a much
more critical and immediate loss of service.</t>
      <t>To mitigate the impact of malicious or malformed options, clients <bcp14>MAY</bcp14> implement basic sanity checks
and threshold validations before applying rate parameters. For example, clients <bcp14>MAY</bcp14> ignore downstream
or upstream rates that fall below a basic operational minimum (e.g., 1000 bps) to prevent complete
session starvation. Furthermore, as mandated in the client behavior specification, if a maliciously
injected rate is impractically high, the client implicitly mitigates this by capping the applied rate
to the physical link capacity.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests that IANA assign the same numeric value in both registries
for DHCPv4 and DHCPv6, if feasible.</t>
      <section anchor="dhcpv4-option">
        <name>DHCPv4 Option</name>
        <t>IANA is requested to assign a new DHCP Option Code (TBD1) in the "BOOTP Vendor Extensions and
DHCP Options" registry for OPTION_RATE.</t>
      </section>
      <section anchor="dhcpv6-option">
        <name>DHCPv6 Option</name>
        <t>IANA is requested to assign a new DHCPv6 Option Code (TBD2) in the "Option Codes"
registry for OPTION_RATE.</t>
      </section>
      <section anchor="dhcp-rate-sub-options-registry">
        <name>DHCP Rate Sub-Options Registry</name>
        <t>IANA is requested to create a new registry titled "DHCP Rate Sub-Options" within the
"Dynamic Host Configuration Protocol (DHCP) and Bootstrap Protocol (BOOTP) Parameters"
registry group. This single registry applies to the sub-options encapsulated within both
the DHCPv4 OPTION_RATE (TBD1) and the DHCPv6 OPTION_RATE (TBD2).</t>
        <table>
          <thead>
            <tr>
              <th align="right">Value</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="left">Reserved</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">1</td>
              <td align="left">Available Rate Upstream in bits per second (bps)</td>
              <td align="left">RFC-TBD</td>
            </tr>
            <tr>
              <td align="right">2</td>
              <td align="left">Available Rate Downstream in bits per second (bps)</td>
              <td align="left">RFC-TBD</td>
            </tr>
            <tr>
              <td align="right">3</td>
              <td align="left">Rate Type</td>
              <td align="left">RFC-TBD</td>
            </tr>
            <tr>
              <td align="right">4-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="dhcp-rate-types-registry">
        <name>DHCP Rate Types Registry</name>
        <t>IANA is requested to create a new registry titled "DHCP Rate Types" within the
"Dynamic Host Configuration Protocol (DHCP) and Bootstrap Protocol (BOOTP) Parameters"
registry group. This registry defines the values for the Rate Type sub-option (Code 3)
used in both the DHCPv4 and DHCPv6 OPTION_RATE.</t>
        <table>
          <thead>
            <tr>
              <th align="right">Value</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="left">Informational</td>
            </tr>
            <tr>
              <td align="right">1</td>
              <td align="left">Reserved</td>
            </tr>
            <tr>
              <td align="right">2</td>
              <td align="left">Layer 2 rate</td>
            </tr>
            <tr>
              <td align="right">3</td>
              <td align="left">Layer 3 rate</td>
            </tr>
            <tr>
              <td align="right">4-255</td>
              <td align="left">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
    </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>
        <reference anchor="RFC2131">
          <front>
            <title>Dynamic Host Configuration Protocol</title>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network. DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2131"/>
          <seriesInfo name="DOI" value="10.17487/RFC2131"/>
        </reference>
        <reference anchor="RFC8415">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="RFC3046">
          <front>
            <title>DHCP Relay Agent Information Option</title>
            <author fullname="M. Patrick" initials="M." surname="Patrick"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>Newer high-speed public Internet access technologies call for a high- speed modem to have a local area network (LAN) attachment to one or more customer premise hosts. It is advantageous to use the Dynamic Host Configuration Protocol (DHCP) as defined in RFC 2131 to assign customer premise host IP addresses in this environment. However, a number of security and scaling problems arise with such "public" DHCP use. This document describes a new DHCP option to address these issues. This option extends the set of DHCP options as defined in RFC 2132. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3046"/>
          <seriesInfo name="DOI" value="10.17487/RFC3046"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TR101">
          <front>
            <title>Migration to Ethernet-Based Broadband Aggregation</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2011" month="July"/>
          </front>
          <seriesInfo name="TR" value="101 Issue 2"/>
        </reference>
        <reference anchor="TR069">
          <front>
            <title>CPE WAN Management Protocol</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2020" month="June"/>
          </front>
          <seriesInfo name="TR" value="069 Issue 6"/>
        </reference>
        <reference anchor="G.984.1">
          <front>
            <title>Gigabit-capable passive optical networks (GPON): General characteristics</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2008" month="March"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="G.984.1"/>
        </reference>
        <reference anchor="RFC7567">
          <front>
            <title>IETF Recommendations Regarding Active Queue Management</title>
            <author fullname="F. Baker" initials="F." role="editor" surname="Baker"/>
            <author fullname="G. Fairhurst" initials="G." role="editor" surname="Fairhurst"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This memo presents recommendations to the Internet community concerning measures to improve and preserve Internet performance. It presents a strong recommendation for testing, standardization, and widespread deployment of active queue management (AQM) in network devices to improve the performance of today's Internet. It also urges a concerted effort of research, measurement, and ultimate deployment of AQM mechanisms to protect the Internet from flows that are not sufficiently responsive to congestion notification.</t>
              <t>Based on 15 years of experience and new research, this document replaces the recommendations of RFC 2309.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="197"/>
          <seriesInfo name="RFC" value="7567"/>
          <seriesInfo name="DOI" value="10.17487/RFC7567"/>
        </reference>
        <reference anchor="RFC9330">
          <front>
            <title>Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service: Architecture</title>
            <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
            <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="G. White" initials="G." surname="White"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This document describes the L4S architecture, which enables Internet applications to achieve low queuing latency, low congestion loss, and scalable throughput control. L4S is based on the insight that the root cause of queuing delay is in the capacity-seeking congestion controllers of senders, not in the queue itself. With the L4S architecture, all Internet applications could (but do not have to) transition away from congestion control algorithms that cause substantial queuing delay and instead adopt a new class of congestion controls that can seek capacity with very little queuing. These are aided by a modified form of Explicit Congestion Notification (ECN) from the network. With this new architecture, applications can have both low latency and high throughput.</t>
              <t>The architecture primarily concerns incremental deployment. It defines mechanisms that allow the new class of L4S congestion controls to coexist with 'Classic' congestion controls in a shared network. The aim is for L4S latency and throughput to be usually much better (and rarely worse) while typically not impacting Classic performance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9330"/>
          <seriesInfo name="DOI" value="10.17487/RFC9330"/>
        </reference>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC2516">
          <front>
            <title>A Method for Transmitting PPP Over Ethernet (PPPoE)</title>
            <author fullname="L. Mamakos" initials="L." surname="Mamakos"/>
            <author fullname="K. Lidl" initials="K." surname="Lidl"/>
            <author fullname="J. Evarts" initials="J." surname="Evarts"/>
            <author fullname="D. Carrel" initials="D." surname="Carrel"/>
            <author fullname="D. Simone" initials="D." surname="Simone"/>
            <author fullname="R. Wheeler" initials="R." surname="Wheeler"/>
            <date month="February" year="1999"/>
            <abstract>
              <t>This document describes how to build PPP sessions and encapsulate PPP packets over Ethernet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2516"/>
          <seriesInfo name="DOI" value="10.17487/RFC2516"/>
        </reference>
        <reference anchor="RFC1661">
          <front>
            <title>The Point-to-Point Protocol (PPP)</title>
            <author fullname="W. Simpson" initials="W." role="editor" surname="Simpson"/>
            <date month="July" year="1994"/>
            <abstract>
              <t>This document defines the PPP organization and methodology, and the PPP encapsulation, together with an extensible option negotiation mechanism which is able to negotiate a rich assortment of configuration parameters and provides additional management functions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="51"/>
          <seriesInfo name="RFC" value="1661"/>
          <seriesInfo name="DOI" value="10.17487/RFC1661"/>
        </reference>
        <reference anchor="RFC6221">
          <front>
            <title>Lightweight DHCPv6 Relay Agent</title>
            <author fullname="D. Miles" initials="D." role="editor" surname="Miles"/>
            <author fullname="S. Ooghe" initials="S." surname="Ooghe"/>
            <author fullname="W. Dec" initials="W." surname="Dec"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="A. Kavanagh" initials="A." surname="Kavanagh"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>This document proposes a Lightweight DHCPv6 Relay Agent (LDRA) that is used to insert relay agent options in DHCPv6 message exchanges identifying client-facing interfaces. The LDRA can be implemented in existing access nodes (such as Digital Subscriber Link Access Multiplexers (DSLAMs) and Ethernet switches) that do not support IPv6 control or routing functions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6221"/>
          <seriesInfo name="DOI" value="10.17487/RFC6221"/>
        </reference>
      </references>
    </references>
    <?line 730?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Glenn Deen and Jason Livingood for their valuable
review comments and discussion, which helped to significantly improve the clarity,
applicability, and operational guidance of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
