<?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.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="DHCP 4o6 Relay Agent">DHCPv4-over-DHCPv6 (DHCP 4o6) with Relay Agent Support</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-03"/>
    <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
      <organization>Ericsson</organization>
      <address>
        <email>claudio.porfiri@ericsson.com</email>
      </address>
    </author>
    <author initials="S." surname="Krishnan" fullname="Suresh Krishnan">
      <organization>Cisco</organization>
      <address>
        <email>suresh.krishnan@gmail.com</email>
      </address>
    </author>
    <author initials="J." surname="Arkko" fullname="Jari Arkko">
      <organization>Ericsson</organization>
      <address>
        <email>jari.arkko@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Kühlewind" fullname="Mirja Kühlewind">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="02"/>
    <area>Internet</area>
    <workgroup>Dynamic Host Configuration</workgroup>
    <keyword>dhcp</keyword>
    <abstract>
      <?line 56?>

<t>This document describes a mechanism for networks
with legacy IPv4-only clients to use services provided by
DHCPv6 using DHCPv4-over-DHCPv6 (DHCP 4o6) in a Relay Agent.
RFC7341 specifies use of DHCPv4-over-DHCPv6 in the client only.
This document specifies
a RFC7341-based approach that allows DHCP 4o6 to be deployed as a
Relay Agent (4o6RA) that implements the 4o6 DHCP encapsulation
and decapsulation in an intermediate node rather than the client.</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-dhc-dhcpv4-over-dhcpv6-ra/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mirjak/draft-dhc-dhcpv4-over-dhcpv6-ra"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7341"/> describes a transport mechanism for carrying DHCPv4 <xref target="RFC2131"/>
messages using DHCPv6 <xref target="RFC8415"/> for dynamic provisioning
of IPv4 addresses and other DHCPv4 specific configuration parameters
across IPv6-only networks. The deployment of <xref target="RFC7341"/> requires support in
DHCP clients and at the DHCPv6 server.
However, if a client is embedded in a host that only supports IPv4 and cannot
easily be replaced or updated due to a number of technical or business reasons,
this approach does not work.</t>
      <t>Similarly, the specifications for DHCPv6 Relay Agents such as LDRA <xref target="RFC6221"/>
or L3RA <xref target="RFC8415"/> do not foresee the possibility to handle legacy DHCPv4,
other than implementing DHCP 4o6 in the client.</t>
      <t>This document specifies an <xref target="RFC7341"/> based solution that can be
implemented in intermediate nodes such as switches or routers,
without putting any requirements on clients. No new protocols or extensions are needed;
instead this document specifies an amendment to <xref target="RFC7341"/> that allows
a Relay Agent to perform the DHCP 4o6 encapsulation and decapsulation instead of
the client.</t>
      <section anchor="applicability">
        <name>Applicability Scope</name>
        <t>The mechanisms described in this document apply to the configuration phase
of hosts that need to receive an IPv4 address but a DHCP server for IPv4 <xref target="RFC2131"/> is not
reachable directly from the host. Furthermore, the host is unable to implement
a DHCP client conformant to <xref target="RFC7341"/> as it is connected to an IPv4-only
network. But there is a DHCPv6 server that can provide IPv4 addresses by means of
the mechanisms described in <xref target="RFC7341"/>.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The following terms and acronyms are used in this document:</t>
      <ul spacing="normal">
        <li>
          <t>DHCP:
If not otherwise specified, DHCP refers to DHCPv4 and/or DHCPv6.</t>
        </li>
        <li>
          <t>DHCPv4:
 DHCP as defined in <xref target="RFC2131"/>.</t>
        </li>
        <li>
          <t>DHCPv4 over DHCPv6 (or 4o6):
 The architecture, the procedures, and the protocols described in the
 DHCPv4-over-DHCPv6 document <xref target="RFC7341"/>.</t>
        </li>
        <li>
          <t>DHCP Relay Agent:
 This is a concept in all of the following protocols, although the details differ
 between them: BOOTP <xref target="RFC951"/> <xref target="RFC1542"/>, DHCPv4
 <xref target="RFC2131"/> <xref target="RFC2132"/>, and DHCPv6 <xref target="RFC8415"/>.</t>
        </li>
        <li>
          <t>Lightweight DHCPv6 Relay Agent (or LDRA):
 This is an extension of the original DHCPv6 Relay Agent,
 to support also Layer 2 devices performing a Relay Agent function <xref target="RFC6221"/>.</t>
        </li>
        <li>
          <t>DHCPv4 over DHCPv6 Relay Agent (or 4o6RA):
 Refers to a Relay Agent that implements the 4o6
 specified in this document.</t>
        </li>
      </ul>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="dhcpv4-over-dhcpv6-relay-agent-4o6ra">
      <name>DHCPv4 over DHCPv6 Relay Agent (4o6RA)</name>
      <t>This document assumes a network, where IPv4-only hosts are connected
to a network that supports IPv6 and limited IPv4 services.</t>
      <t>To address such a network setup, this document extends
DHCPv6 Relay Agents with DHCPv4-over-DHCPv6, as shown in <xref target="fig_4o6RA"/>.</t>
      <figure anchor="fig_4o6RA">
        <name>Architecture Example with Legacy DHCP Client</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="480" viewBox="0 0 480 208" 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 80,48 L 80,64" fill="none" stroke="black"/>
              <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
              <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
              <path d="M 288,48 L 288,64" fill="none" stroke="black"/>
              <path d="M 288,128 L 288,144" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,128" fill="none" stroke="black"/>
              <path d="M 384,64 L 384,128" fill="none" stroke="black"/>
              <path d="M 400,48 L 400,64" fill="none" stroke="black"/>
              <path d="M 400,128 L 400,144" fill="none" stroke="black"/>
              <path d="M 472,64 L 472,128" fill="none" stroke="black"/>
              <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 304,32 L 384,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
              <path d="M 176,64 L 304,64" fill="none" stroke="black"/>
              <path d="M 384,64 L 472,64" fill="none" stroke="black"/>
              <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
              <path d="M 304,96 L 384,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 384,128 L 472,128" fill="none" stroke="black"/>
              <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
              <path d="M 304,160 L 384,160" fill="none" stroke="black"/>
              <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
              <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
              <path d="M 304,32 C 295.16936,32 288,39.16936 288,48" fill="none" stroke="black"/>
              <path d="M 384,32 C 392.83064,32 400,39.16936 400,48" fill="none" stroke="black"/>
              <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
              <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
              <path d="M 304,160 C 295.16936,160 288,152.83064 288,144" fill="none" stroke="black"/>
              <path d="M 384,160 C 392.83064,160 400,152.83064 400,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="140" y="68">L2</text>
                <text x="340" y="68">IPv6</text>
                <text x="52" y="84">DHCPv4</text>
                <text x="136" y="84">Network</text>
                <text x="236" y="84">DHCPv6</text>
                <text x="344" y="84">Network</text>
                <text x="412" y="84">DHCP</text>
                <text x="448" y="84">4o6</text>
                <text x="52" y="100">Client</text>
                <text x="216" y="100">Relay</text>
                <text x="264" y="100">Agent</text>
                <text x="428" y="100">Server</text>
                <text x="220" y="116">with</text>
                <text x="264" y="116">4o6RA</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.             .-----------.
          |             |           |             |
 +--------+-+    L2   +-+-----------+-+  IPv6   +-+--------+
 |  DHCPv4  | Network |    DHCPv6     | Network | DHCP 4o6 |
 |  Client  +---------+  Relay Agent  +---------+  Server  |
 |          |         |   with 4o6RA  |         |          |
 +--------+-+         +-+-----------+-+         +-+--------+
          |             |           |             |
           '-----------'             '-----------'

]]></artwork>
        </artset>
      </figure>
      <t>This document specifies the encapsulation
and decapsulation described in <xref target="RFC7341"/> to be performed in the Relay Agent
without requiring any changes on the DHCPv4 client.
In this case it is up to the Relay Agent to provide the full DHCP
4o6 support and the legacy DHCPv4 client is not aware that it is being served
via a DHCP 4o6 service.
As the 4o6RA acts as a DHCP 4o6 client, all prerequisites and configuration
that apply to the DHCP client in <xref section="5" sectionFormat="of" target="RFC7341"/> are also applied to the 4o6RA.</t>
      <t>As the 4o6RA takes the role of the client in respect to <xref target="RFC7341"/>,
it also takes the responsibility for finding a suitable interface; that can be
a network interface or another Relay Agent.</t>
      <t>To maintain interoperability with existing DHCPv6 relays and servers,
the message format is unchanged from <xref target="RFC8415"/>. The 4o6RA implements
the same message types as a DHCPv6 Relay Agent <xref section="6" sectionFormat="of" target="RFC7341"/>.</t>
      <t>However, in this specification, the 4o6RA, instead of the client, creates the DHCPV4-QUERY Message
and encapsulates the DHCP request message received from the legacy DHCPv4 client.</t>
      <t>When DHCPV4-RESPONSE Message is received by the 4o6 Relay Agent,
it looks for the DHCPv4 Message option within this message.
If this option is not found or the DHCPv4-RESPONSE message is not well-formed,
it <bcp14>MUST</bcp14> be discarded.
If the DHCPv4 Message option is present, the 4o6RA <bcp14>MUST</bcp14> extract the DHCPv4
message and forward the encapsulated DHCPv4-response to the requesting DHCPv4 client.</t>
      <t>Layer 2 Relay Agents receiving DHCPV4-QUERY or DHCPV4-RESPONSE messages
<bcp14>MUST</bcp14> handle them as specified in <xref section="6" sectionFormat="of" target="RFC6221"/>.</t>
      <t>DHCPv6 servers are expected to be compliant with 4o6 according to <xref target="RFC7341"/>.
No additional requirements on DHCPv6 servers are set by this specification.</t>
      <section anchor="intermediate-relays">
        <name>Intermediate relays</name>
        <t>Intermediate relays shall behave according to section 10 of <xref target="RFC7341"/>.</t>
      </section>
      <section anchor="topology_considerations">
        <name>4o6RA and Topology Discovery</name>
        <t>In some networks the configuration of a host may depend on the
topology.  However, when the new host attaches to a
network, it may be unaware of the topology and respectively how it
has to be configured.</t>
        <t>DHCPv4 <xref target="RFC2131"/> and DHCPv6 <xref target="RFC8415"/> specifications
describe how addresses can be allocated to clients based on network
topology information provided by a DHCP relay, typically.</t>
        <t>Address/prefix allocation decisions are integral to the allocation of
addresses and prefixes in DHCP, as described in detail
in <xref target="RFC7969"/>. This specification aims to guarantee that the 4o6RA does not
break any legacy capability when used for topology discovery.</t>
        <t>Topology discovery as described in <xref target="RFC7969"/> differs between
IPv4 and IPv6 as for IPv4 only the first Relay Agent can
set the giaddr field (section 3.1 of <xref target="RFC7969"/>). Thus in a
network that has more than one Relay Agent only part of the topology
is transported via DHCPv4.</t>
        <t>When using DHCPv6, all Relay Agents can send
link-address and Interface-ID options, that provide
information about the complete path
between the DHCPv6 client and the DHCPv6 server to the DHCPv6 server.</t>
        <t>In L2 networks, Lightweight DHCPv6 Relay Agents <xref target="RFC6221"/>
can be used. Then, topology information for the given IP address
can be obtained from the DHCPv6 server and used for configuration
or other purposes.</t>
        <t><xref target="RFC7341"/> enables the client to use DHCPv6 for topology discovery
even within an DHCPv4 context, as the DHCPv6 Relay Agent knows
the interface where the encapsulated DHCP request is received.
As shown in <xref target="fig_4o6RA_RA"/>, the introduction of 4o6 at the
edge of the IPv6 network, however, hides the L2 network from the DHCPv6 RA.
As such, moving 4o6 in a intermediate node rather than performing it at the client, breaks
the topology propagation as 4o6RA-only does not provide any interface
information in the encapsulated message.</t>
        <figure anchor="fig_4o6RA_RA">
          <name>Topology broken path</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" 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 80,48 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
                <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
                <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
                <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
                <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
                <path d="M 224,48 L 224,64" fill="none" stroke="black"/>
                <path d="M 224,128 L 224,144" fill="none" stroke="black"/>
                <path d="M 256,64 L 256,128" fill="none" stroke="black"/>
                <path d="M 296,64 L 296,128" fill="none" stroke="black"/>
                <path d="M 368,64 L 368,128" fill="none" stroke="black"/>
                <path d="M 432,64 L 432,128" fill="none" stroke="black"/>
                <path d="M 448,48 L 448,64" fill="none" stroke="black"/>
                <path d="M 448,128 L 448,144" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
                <path d="M 240,32 L 432,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
                <path d="M 176,64 L 256,64" fill="none" stroke="black"/>
                <path d="M 296,64 L 368,64" fill="none" stroke="black"/>
                <path d="M 432,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
                <path d="M 256,96 L 296,96" fill="none" stroke="black"/>
                <path d="M 368,96 L 432,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
                <path d="M 176,128 L 256,128" fill="none" stroke="black"/>
                <path d="M 296,128 L 368,128" fill="none" stroke="black"/>
                <path d="M 432,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
                <path d="M 240,160 L 432,160" fill="none" stroke="black"/>
                <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
                <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
                <path d="M 240,32 C 231.16936,32 224,39.16936 224,48" fill="none" stroke="black"/>
                <path d="M 432,32 C 440.83064,32 448,39.16936 448,48" fill="none" stroke="black"/>
                <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
                <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
                <path d="M 240,160 C 231.16936,160 224,152.83064 224,144" fill="none" stroke="black"/>
                <path d="M 432,160 C 440.83064,160 448,152.83064 448,144" fill="none" stroke="black"/>
                <g class="text">
                  <text x="100" y="52">L2</text>
                  <text x="144" y="52">Network</text>
                  <text x="308" y="52">IPv6</text>
                  <text x="360" y="52">Network</text>
                  <text x="52" y="84">DHCPv4</text>
                  <text x="208" y="84">4o6</text>
                  <text x="332" y="84">DHCPv6</text>
                  <text x="460" y="84">DHCP</text>
                  <text x="496" y="84">4o6</text>
                  <text x="52" y="100">Client</text>
                  <text x="216" y="100">Relay</text>
                  <text x="328" y="100">Relay</text>
                  <text x="476" y="100">Server</text>
                  <text x="216" y="116">Agent</text>
                  <text x="328" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.     .-------------------------.
          | L2 Network  |   |        IPv6 Network       |
 +--------+-+         +-+---+---+    +--------+       +-+--------+
 |  DHCPv4  |         |  4o6    |    | DHCPv6 |       | DHCP 4o6 |
 |  Client  +---------+  Relay  +----+ Relay  +-------+  Server  |
 |          |         |  Agent  |    | Agent  |       |          |
 +--------+-+         +-+---+---+    +--------+       +-+--------+
          |             |   |                           |
           '-----------'     '-------------------------'

]]></artwork>
          </artset>
        </figure>
        <t>In order to preserve the topology information, it is <bcp14>RECOMMENDED</bcp14> that the
implementation of 4o6RA is combined with the implementation of LDRA <xref target="RFC6221"/>
and that the implementation has a mechanism for LDRA to get interface information
that can be used for the Interface-ID option, as specified in
<xref section="5.3.2" sectionFormat="of" target="RFC6221"/>.
The internal mechanisms to exchange interface information,
their format and whether the interface information contains an indication that a 4o6RA
is involved are out of the scope for this document.</t>
        <t>The resulting architecture is shown in <xref target="fig_4o6LDRA"/> where
the Relay Agent is implementing 4o6RA and LDRA, and has an internal interface to
propagate topology information from 4o6RA to LDRA.</t>
        <figure anchor="fig_4o6LDRA">
          <name>Topology path preserved with LDRA</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="480" viewBox="0 0 480 208" 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 80,48 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
                <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
                <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
                <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
                <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
                <path d="M 224,48 L 224,64" fill="none" stroke="black"/>
                <path d="M 224,128 L 224,144" fill="none" stroke="black"/>
                <path d="M 248,64 L 248,128" fill="none" stroke="black"/>
                <path d="M 328,64 L 328,128" fill="none" stroke="black"/>
                <path d="M 384,64 L 384,128" fill="none" stroke="black"/>
                <path d="M 464,48 L 464,56" fill="none" stroke="black"/>
                <path d="M 464,136 L 464,144" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,128" fill="none" stroke="black"/>
                <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
                <path d="M 240,32 L 448,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
                <path d="M 176,64 L 328,64" fill="none" stroke="black"/>
                <path d="M 384,64 L 472,64" fill="none" stroke="black"/>
                <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
                <path d="M 328,96 L 384,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
                <path d="M 176,128 L 328,128" fill="none" stroke="black"/>
                <path d="M 384,128 L 472,128" fill="none" stroke="black"/>
                <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
                <path d="M 240,160 L 448,160" fill="none" stroke="black"/>
                <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
                <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
                <path d="M 240,32 C 231.16936,32 224,39.16936 224,48" fill="none" stroke="black"/>
                <path d="M 448,32 C 456.83064,32 464,39.16936 464,48" fill="none" stroke="black"/>
                <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
                <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
                <path d="M 240,160 C 231.16936,160 224,152.83064 224,144" fill="none" stroke="black"/>
                <path d="M 448,160 C 456.83064,160 464,152.83064 464,144" fill="none" stroke="black"/>
                <g class="text">
                  <text x="100" y="52">L2</text>
                  <text x="144" y="52">Network</text>
                  <text x="324" y="52">IPv6</text>
                  <text x="376" y="52">Network</text>
                  <text x="52" y="84">DHCPv4</text>
                  <text x="208" y="84">4o6</text>
                  <text x="284" y="84">LDRA</text>
                  <text x="412" y="84">DHCP</text>
                  <text x="448" y="84">4o6</text>
                  <text x="52" y="100">Client</text>
                  <text x="216" y="100">Relay</text>
                  <text x="288" y="100">RFC6221</text>
                  <text x="428" y="100">Server</text>
                  <text x="216" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.     .---------------------------.
          | L2 Network  |   |          IPv6 Network       |
 +--------+-+         +-+---+--+---------+      +----------+
 |  DHCPv4  |         |  4o6   |  LDRA   |      | DHCP 4o6 |
 |  Client  +---------+  Relay + RFC6221 +------+  Server  |
 |          |         |  Agent |         |      |          |
 +--------+-+         +-+---+--+---------+      +----------+
          |             |   |                             |
           '-----------'     '---------------------------'

]]></artwork>
          </artset>
        </figure>
        <t>In a simple case, where the same node hosts the 4o6RA and the DHCP4o6 server,
it might be enough to only use 4o6RA, as shown in <xref target="fig_4o6RAserver"/>.</t>
        <figure anchor="fig_4o6RAserver">
          <name>Topology path preserved 4o6 Relay Agent in DHCP server</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="344" viewBox="0 0 344 208" 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 80,48 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
                <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
                <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
                <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
                <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
                <path d="M 248,64 L 248,128" fill="none" stroke="black"/>
                <path d="M 336,64 L 336,128" fill="none" stroke="black"/>
                <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
                <path d="M 176,64 L 336,64" fill="none" stroke="black"/>
                <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
                <path d="M 176,128 L 336,128" fill="none" stroke="black"/>
                <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
                <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
                <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
                <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
                <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
                <g class="text">
                  <text x="100" y="52">L2</text>
                  <text x="144" y="52">Network</text>
                  <text x="52" y="84">DHCP</text>
                  <text x="208" y="84">4o6</text>
                  <text x="276" y="84">DHCP</text>
                  <text x="312" y="84">4o6</text>
                  <text x="52" y="100">Client</text>
                  <text x="216" y="100">Relay</text>
                  <text x="292" y="100">Server</text>
                  <text x="36" y="116">on</text>
                  <text x="64" y="116">CPE</text>
                  <text x="216" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.
          | L2 Network  |
 +--------+-+         +-+------+----------+
 |   DHCP   |         |  4o6   | DHCP 4o6 |
 |  Client  +---------+  Relay +  Server  |
 |  on CPE  |         |  Agent |          |
 +--------+-+         +-+------+----------+
          |             |
           '-----------'

]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>As clients are not aware of the presence of 4o6RA, the network deployment needs to ensure that
all DHCPv4 broadcast and unicast messages from clients are steered to a 4o6RA.
This can be achieved by placing the 4o6RA in a central position that can observe all traffic
from the clients or use address translation with the 4o6RA address for unicast
messages.</t>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>This document specifies the applicability of 4o6 DHCP in a scenario where legacy IPv4 clients are
connected to 4o6 DHCP Relay Agents that perform the encapsulation and decapsulation. This document
does not change anything else in the 4o6 DHCP specification and therefore the
security considerations of <xref target="RFC7341"/> still apply.</t>
      <t>The mechanisms defined here differ from <xref target="RFC7341"/> as they allow the DHCP client
to send and receive DHCPv4 messages, whereas in <xref target="RFC7341"/> the client
only sends DHCPv6 messages. This makes it possible that in improperly configured
networks where the client is located on the same L2 scope of a DHCPv4 server,
DHCPv4 messages could reach a DHCPv4 server without using the 4o6RA.
While this can cause erroneous state in both clients and servers
and potentially even lead to misconfigurations that impact reachability,
this is seen as a deployment error rather than a security concern.
Further, even though this mechanism may be used for attacks from within the network,
this is not a new concern introduced by this specification.</t>
      <t>More generally, legacy IPv4 clients are not aware of this mechanism, however, even
when DHCP 4o6 is used, the client does not have any control about the
information provided by the Relay agent. As such this change does not
raise any additional security concerns.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <reference anchor="RFC7341">
          <front>
            <title>DHCPv4-over-DHCPv6 (DHCP 4o6) Transport</title>
            <author fullname="Q. Sun" initials="Q." surname="Sun"/>
            <author fullname="Y. Cui" initials="Y." surname="Cui"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="I. Farrer" initials="I." surname="Farrer"/>
            <date month="August" year="2014"/>
            <abstract>
              <t>IPv4 connectivity is still needed as networks migrate towards IPv6. Users require IPv4 configuration even if the uplink to their service provider supports IPv6 only. This document describes a mechanism for obtaining IPv4 configuration information dynamically in IPv6 networks by carrying DHCPv4 messages over DHCPv6 transport. Two new DHCPv6 messages and two new DHCPv6 options are defined for this purpose.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7341"/>
          <seriesInfo name="DOI" value="10.17487/RFC7341"/>
        </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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC951">
          <front>
            <title>Bootstrap Protocol</title>
            <author fullname="W.J. Croft" initials="W.J." surname="Croft"/>
            <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
            <date month="September" year="1985"/>
            <abstract>
              <t>This RFC describes an IP/UDP bootstrap protocol (BOOTP) which allows a diskless client machine to discover its own IP address, the address of a server host, and the name of a file to be loaded into memory and executed. The bootstrap operation can be thought of as consisting of TWO PHASES. This RFC describes the first phase, which could be labeled `address determination and bootfile selection'. After this address and filename information is obtained, control passes to the second phase of the bootstrap where a file transfer occurs. The file transfer will typically use the TFTP protocol, since it is intended that both phases reside in PROM on the client. However BOOTP could also work with other protocols such as SFTP or FTP. This RFC suggests a proposed protocol for the ARPA-Internet community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="951"/>
          <seriesInfo name="DOI" value="10.17487/RFC0951"/>
        </reference>
        <reference anchor="RFC1542">
          <front>
            <title>Clarifications and Extensions for the Bootstrap Protocol</title>
            <author fullname="W. Wimer" initials="W." surname="Wimer"/>
            <date month="October" year="1993"/>
            <abstract>
              <t>Some aspects of the BOOTP protocol were rather loosely defined in its original specification. In particular, only a general description was provided for the behavior of "BOOTP relay agents" (originally called "BOOTP forwarding agents"). The client behavior description also suffered in certain ways. This memo attempts to clarify and strengthen the specification in these areas. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1542"/>
          <seriesInfo name="DOI" value="10.17487/RFC1542"/>
        </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="RFC2132">
          <front>
            <title>DHCP Options and BOOTP Vendor Extensions</title>
            <author fullname="S. Alexander" initials="S." surname="Alexander"/>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>This document specifies the current set of DHCP options. Future options will be specified in separate RFCs. The current list of valid options is also available in ftp://ftp.isi.edu/in-notes/iana/assignments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2132"/>
          <seriesInfo name="DOI" value="10.17487/RFC2132"/>
        </reference>
        <reference anchor="RFC7969">
          <front>
            <title>Customizing DHCP Configuration on the Basis of Network Topology</title>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <date month="October" year="2016"/>
            <abstract>
              <t>DHCP servers have evolved over the years to provide significant functionality beyond that described in the DHCP base specifications. One aspect of this functionality is support for context-specific configuration information. This memo describes some such features and explains their operation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7969"/>
          <seriesInfo name="DOI" value="10.17487/RFC7969"/>
        </reference>
      </references>
    </references>
    <?line 346?>

<section anchor="usecase">
      <name>Example Use Case: Topology Discovery for IPv4-only Radio Unit in the RAN Switched Fronthaul</name>
      <t>The Radio Fronthaul Network (FH) is built up with Radio Units (RU) and
Baseband Units (BB), each being an IP host.
Each RU is unique as it is tied to a set of antennas, and each antenna
is serving a specific Cell and Sector.
Each RU is configured by the BB depending on the Cell and Sectors it serves.
However, that dependency is only specified by the cabling between RU and antennas.</t>
      <t>If BB is directly cabled to a set of RUs, the
BB can recognize the relationship between RUs and Cell/Sectors
based on the cabling between the RUs and antennas.</t>
      <t>The introduction of a switched network between RUs and BBs has
added a level of complexity that requires the BBs to have a deeper
knowledge of the topology in order to properly configure the RUs,
involving knowledge of all the cabling in the switched network.</t>
      <t>Examples for switched networks are shown in section 3 of <xref target="RFC7969"/>
and demonstrate the different levels of complexity.
An example of a FH is depicted in <xref target="l2_switched_fh"/>.</t>
      <figure anchor="l2_switched_fh">
        <name>Layer 2 Switched Fronthaul Example</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="544" viewBox="0 0 544 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 8,112 L 8,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 8,240" fill="none" stroke="black"/>
              <path d="M 8,272 L 8,320" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 80,112 L 80,160" fill="none" stroke="black"/>
              <path d="M 80,192 L 80,240" fill="none" stroke="black"/>
              <path d="M 80,272 L 80,320" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,144" fill="none" stroke="black"/>
              <path d="M 152,208 L 152,304" fill="none" stroke="black"/>
              <path d="M 168,48 L 168,80" fill="none" stroke="black"/>
              <path d="M 168,208 L 168,240" fill="none" stroke="black"/>
              <path d="M 224,48 L 224,144" fill="none" stroke="black"/>
              <path d="M 224,208 L 224,304" fill="none" stroke="black"/>
              <path d="M 272,48 L 272,320" fill="none" stroke="black"/>
              <path d="M 296,64 L 296,144" fill="none" stroke="black"/>
              <path d="M 296,224 L 296,304" fill="none" stroke="black"/>
              <path d="M 336,64 L 336,96" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,144" fill="none" stroke="black"/>
              <path d="M 392,224 L 392,304" fill="none" stroke="black"/>
              <path d="M 432,48 L 432,320" fill="none" stroke="black"/>
              <path d="M 456,144 L 456,224" fill="none" stroke="black"/>
              <path d="M 536,144 L 536,224" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 152,48 L 224,48" fill="none" stroke="black"/>
              <path d="M 80,64 L 144,64" fill="none" stroke="black"/>
              <path d="M 296,64 L 392,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 224,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 288,96" fill="none" stroke="black"/>
              <path d="M 336,96 L 392,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 80,112" fill="none" stroke="black"/>
              <path d="M 80,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 224,128 L 264,128" fill="none" stroke="black"/>
              <path d="M 392,128 L 424,128" fill="none" stroke="black"/>
              <path d="M 152,144 L 224,144" fill="none" stroke="black"/>
              <path d="M 296,144 L 392,144" fill="none" stroke="black"/>
              <path d="M 456,144 L 536,144" fill="none" stroke="black"/>
              <path d="M 8,160 L 80,160" fill="none" stroke="black"/>
              <path d="M 432,176 L 448,176" fill="none" stroke="black"/>
              <path d="M 8,192 L 80,192" fill="none" stroke="black"/>
              <path d="M 152,208 L 224,208" fill="none" stroke="black"/>
              <path d="M 80,224 L 144,224" fill="none" stroke="black"/>
              <path d="M 296,224 L 392,224" fill="none" stroke="black"/>
              <path d="M 456,224 L 536,224" fill="none" stroke="black"/>
              <path d="M 8,240 L 80,240" fill="none" stroke="black"/>
              <path d="M 168,240 L 224,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 288,256" fill="none" stroke="black"/>
              <path d="M 8,272 L 80,272" fill="none" stroke="black"/>
              <path d="M 80,288 L 144,288" fill="none" stroke="black"/>
              <path d="M 224,288 L 264,288" fill="none" stroke="black"/>
              <path d="M 392,288 L 424,288" fill="none" stroke="black"/>
              <path d="M 152,304 L 224,304" fill="none" stroke="black"/>
              <path d="M 296,304 L 392,304" fill="none" stroke="black"/>
              <path d="M 8,320 L 80,320" fill="none" stroke="black"/>
              <g class="text">
                <text x="40" y="52">RU1</text>
                <text x="132" y="52">P1</text>
                <text x="196" y="68">L2RA</text>
                <text x="364" y="84">L3RA</text>
                <text x="180" y="100">L2</text>
                <text x="132" y="116">P2</text>
                <text x="188" y="116">switch</text>
                <text x="40" y="132">RU2</text>
                <text x="180" y="132">#1</text>
                <text x="348" y="132">Router</text>
                <text x="484" y="180">DHCP</text>
                <text x="492" y="196">Server</text>
                <text x="40" y="212">RU3</text>
                <text x="132" y="212">P1</text>
                <text x="492" y="212">#1</text>
                <text x="196" y="228">L2RA</text>
                <text x="180" y="260">L2</text>
                <text x="340" y="260">Baseband</text>
                <text x="132" y="276">P2</text>
                <text x="188" y="276">switch</text>
                <text x="340" y="276">Unit</text>
                <text x="40" y="292">RU4</text>
                <text x="180" y="292">#2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
     +--------+
     |  RU1   |     P1 +-+------+     |                   |
     |        +--------| | L2RA |     |  +----+------+    |
     +--------+        | +------+     |  |    | L3RA |    |
                       |  L2    |     +--|    +------+    |
     +--------+     P2 | switch |     |  |           |    |
     |  RU2   +--------|  #1    +-----|  |   Router  +----|
     |        |        +--------+     |  +-----------+    |  +---------+
     +--------+                       |                   |  |         |
                                      |                   +--| DHCP    |
     +--------+                       |                   |  | Server  |
     |  RU3   |     P1 +-+------+     |                   |  |   #1    |
     |        +--------| | L2RA |     |  +-----------+    |  +---------+
     +--------+        | +------+     |  |           |    |
                       |  L2    |     +--| Baseband  |    |
     +--------+     P2 | switch |     |  |   Unit    |    |
     |  RU4   +--------|  #2    +-----|  |           +----|
     |        |        +--------+     |  +-----------+    |
     +--------+                       |                   |
]]></artwork>
        </artset>
      </figure>
      <t>Among the various alternatives, DHCP topology knowledge can be used
for solving the RU configuration problem when the FH is IPv6. Such solution
would use the topology discovery mechanisms described in section 3.2
of <xref target="RFC7969"/>. The same mechanisms are applicable when RUs are connected via IPv4 and
implement 4o6 according to <xref target="RFC7341"/>.</t>
      <t>In order to extend the solution described above also to the case where
RUs are using IPv4 but cannot support <xref target="RFC7341"/>,
the mechanisms described in this document can be used by introducing 4o6RA in
the switches.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would also like to acknowledge interesting discussions in
this problem space with Sarah Gannon, Ines Ramadza, and Siddharth Sharma
as well as reviews and comments provided by Eric Vyncke, Mohamed Boucadair,
David Lamparter, Michael Richardson, and Alan DeKok.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61b63Ict5X+j6fAUj9iLYfjkKJli4mTkBQVMaEuISW7XKmU
CtONmUHY05g0ukmNJflZ9kH21+6L7bkAaKBnRqTiZZWtHjQuBwfnfOeC03t7
e6I1baWP5M7T56evbw737I1u9uj5sfwK/5WH9vFDeWvaubzUlVrJ45muW3nV
LZe2aXeEmkwafeMnwM5ptx1RqFbPbLM6kq4thShtUasFrFc2atruGd1O98p5
gf8tw+r0/HivUXu/fSRcN1kY54yt29USxp2fvXkm6m4x0c2RKGHyI1HY2una
de5Itk2nBRDzSKhGKyDqvG51U2sg5NY217PGdkskdQVEmEI+t66Vp7aemlnX
qBYW2RHXegVdyyMh9yRSIm503cEqUt5ntJRM5s6PsJypZ/LPOAjbZ8DBbgJv
Fqb5p7r+mhmwde87QqiundsGCYHhUpoaNng6lq9tMzWNoTbm5WmlutLY7I1t
Zqo2PxNZR/KsMYVztqZXeqFMdSQLHjVe8qg/ad9nXNhFtubVWP61MW5eqzpZ
9KprtJvnb/JFT40rbLqioyHjaz/kTzNsXlvuL2N53Fxf22Stv6jGJI137+2f
MGCscMD2bb2Abf3vf88rfWvqMlnsBZ7P8NXdS9Kxjq877YflC4vaNgsYfUOS
JC+fnT4+ONgPz98+OozP3x3uf3MkhKmnwxFPvomd9r85PAjPB/uP9pPn2P7t
k8dPYCKxt7cn1cS1jSpaId7MjZOghd0CtbjUrmjMRDup5EIXc9ijW0hYWYLO
oMY4QZpf6ZkqVvKcEKKuViA8BsY72VrZOS2dbm5MAdMsG3tjSl3KyUp4FOkc
6sHn4cXUQECCG2PhuSLdUhdmamBqXMdON00Eo9u59jRJpG882GecRajA772J
ckCnWgLJqpjDDKqVqqrsrZMRymB7Ew1cWlZ2hZ2BTyJFwa+g0+XxQx5sFstK
L5gtQA6Op4l0Xail6yoSHqHqEiZMWmjz+H9AqoUuDWCarG2pJWDKXDc4d7q/
MZ/owpRlpYV4IAHiGlt2Bc314YFJfn4S4sMHv99Pn7LTBnGoHSL44NwL1TSr
/sAkjUcR+/RJLLRzakZHEXs85h4otbACzlB6eCRRQOCGvgIODoVHqrIEDHBI
AvDB0gb9Sv6MClmkkCqXqgG1BN7A2RWNdQ4nesxSGIR0LN/MwzHRecNy6cYb
/a/OwLqAQGS1gNkknVGMkRg4QeSy3xVKtG7G4rm91fAwkmYKXPMiBqKlwQKV
KOgkunM0BSQERJdfxvk9w+SFqmvbCq2cgfcgUw0QqwoYDxzrlmjIQCw6jRKn
JNs33EULh1ObQlXYb4J8B+7BYAXA4kaiRSmPIlxa2CIsI5EpICdXZmEq1VSr
Ee0sMJj46uis/GYTkUYewVQg6RdPL4+ZiwhVcPzQ/+JRaPMHXlpaEObSTmta
ZglnZCamMu0KdwOyBYIaEITPeiRsL9pRbYJMkeaYgcxv0WfUnPSkWamdrToS
HjoS4D1wXMR1+NDW9K3fuQPMK+bQADsG842yNyIchGe57FqiVNWrIFes87Cc
F6exfAls0beoAq0tbEUz6fcteCnEenBO4L0G8fkdAL1rtSplu32DIP91Sc3A
z7/7zf4jRSyRoSd2W+oGDUgUaWJqhkRyExIxLXYqMuY/eCCPl8sKRMef61Vh
lxrARqWtn/CUdI8nLgJOyceZbhBHknzQQrnGz+EQETFQqxxvE7mFvRtdaDCJ
yJUUT0A1YEreKGsuiff5AMFQcVENQX+AxgmIZQnHV7RAybSxzCxcdCyfdQ1K
6ALkehSbcXhX0zggJcqT8At7cMDNoOnmc0iFE0TL0CTQpYZleUt+K4RowiPa
WJ50BEcgKKjhOSr1Yu3N7RBbJys4BcD3cJDbjiQhDk8ZndkbVESSUZCOp3pq
akO/+WynFsUNxR+Vx+MmoHK9WrBUd27DYYMX8p+0A3RNzqeEGAQAt8ZFWNLl
iNnY6CkoHHLGGwZY5OuIVeMw180hOTo0ROG+gNRkV3zgSW+JHkPg41cwHzoe
NAVuTDXF3ADYtl04cGAtwDN6rCPapm/z+jyQbB1IGXgmUdxzTjNNqcp6QoBp
dNwgIIVetmRcqooMQcb9SAjQViEuzebUo9QtOKNAnpkCE3HOCQiU1kTj4kie
vHr15jUTA94kiCQ9ojf56dPIbwBHpToTnqkLScWa3actXZjZHNbC/2+wK8Ry
NCkP863WPS6GbdrGzEwNJm99lhGOBckIdlxVzsoLtYKTPYDNex+UoY9AOiNh
2tXeS+qt2jYJGZLOjh771lFAB6i72QnEIVHG13RjzIoFUSda7dLJnRdvr97s
jPhf+fIVPV+e/e3t+eXZU3y+en58cREfhO9x9fzV24un/VM/8vTVixdnL5/y
YGiVWZPYeXH80w4f7M6r12/OX708vtjZgNeN9t4wGc5lo1tyiEWmCSenr//n
v/YRc/+DhGb/CQkQ/vhu/9tD+HE71zWvRp4S/wROrQRYBK2aIPJglkyrSMDB
IM/tbS0RDfG4/o6c+ceR/P2kWO4f/sE34IazxsCzrJF4tt6yNpiZuKFpwzKR
m1n7gNM5vcc/Zb8D35PG3/+xAjyTe/vf/fEPArH5LhllAR06Sso5eEBI8ZZl
hCxvdBLKsZXF841mSbAXyiNYrlOX9jGdXwXeJcoA2Z4QAKI422iV2aGKEznd
dsvRQLBI/UsnNrmiFHuuw2oiEwT34Du8o+2TOv/yyy9KuZuZoOjc/433+r+x
lNveJEM+Zr0+bnmGX0LuhvG7e7vYdHEA/4PnZGZ6Q6zL3uwKnM0fLTy+9Jyi
JTxHeMn+TfTmPtLgU/Y6eiJwpVQy8jdX7EH4wetbwidiOzF0+Gb7nulvw57X
3+z+e0zu/36TrPGbrFv2hiRBfDiSD6J8SEp2fr9znFh7efZeIWbzri/6MMVz
dgdUg1i/pyozq7/fKTCEaHY+bY9JEPjvCvq3+WEeZL0Ni/5FeqIxFOHwIwQj
6OJhcG7rPo49jD78uQf0Anxr74V2y+B/D2MH71WSz9FVbIgFily0u94hyqK6
JDpGD0/dks0go0iNE42kkgtbihujgsNOEzN+jMVxtJtwXKpAZHJpR15jRDYC
jBCxwMFZsi+aBRKCA6Q00Ej9dOL7lWaP4Bt0PhJPHSgn34ICHPbTI1mAMRmV
rbr2h97YSgcvpl8FoBBEYxgNjITx/ksyHnqCrx2iZwxhwKst2ZNxHRhEjD3I
AE9VoX+Xxbc9zsYOGHaqmmPtLLuGIL1Q0E+FSBjiuSZEd6QJ+r1xbZLmaXA8
c5mjEEo/YGxBSSHJ6UoOkVgUSw6qUj+RfG3mWu8o0TQOgtw4F+bQk4MfmLr+
1B5npwbb6rM1XtyznMeoP7RREusmxzWSBcSGrT8OXPuHw72/vT27/Em+YNpI
lXvlTnqSOmrXxl34WLXsY8tN6gJU/whOUFjs8uzq9auXV2dhPWRonAjiupBZ
zJxikKTK2mvO6STKH+awS2IXnmtgjCcSgGHKDb6PV96p7WrKTfWz9aQtetIo
26Srao/RikghbwzTpsYVqil16RfZRpbBtLF2xP5eq2gWcA4wbZ0MDklIEkRY
FECmHACuLgPFXp90UF9/Qkl6M55BCCIy/4MZH7pHUfDB6A/rLHGCyPY5L4y5
yFVJvf916Y2BSBbks0um3y9jomCCHhpojcHUQrDRgJEFxA0Ukts8zHxJjhiF
7xBMDXNVGxYD/4xFbKg4nAI6TzNmDAdCbGgE1wzReaLnCjM1KX3Ob33/t4MU
La/gUR9O9o1d2srOQFfwEgkoXMkPD1rf+A5v/MBAMcy7T0iFdHahY0J4Q1bJ
TkOedgEHXOqlphiEgvcwMXiGEUEwMqFpMJFH41TbKkoLoncsoj9teEY4na5m
m+chJcxKG/JGANSYXO5bGCbmysVzZVJRV8R65n1L2D3I6MZQjObvs0FsHyhT
WCgvSyHxzflSYIPfTmSFjBdQtk5vdYItpqMeIVJjdhpvXMQxr/g1KPPUvA/r
sbNTmD7zifZm1oBIeq1MOtqpyG8IeC74YVhiR5zrSXwnTnmI6EU9efyEDc1Q
iKUyC+L3rFMNqJD2zkkPOSF/LiZgBK7JqfKIDdASjSPKBaW5CGwDu8ogp2Rc
h41rVCe0+mSNC6kaES8NONRyfSqT4jXyykwDApkaRThkgfqLb2cGmQiddFXK
r4LOPRrv90pHKz9ENnXE2yjPzBOUTMx9cobe1rmLSGQswS0eSroAnseLJdgo
OnkszcHKpTdH7MRlgIuiCoagFBD8gsPtw0jiRfBp9s6fesPhRkysl06RSqya
WE6gMmRqAKelauciSYcFhfKOWnBpB5lWu944JryBIC+gzeiO3JfLrlG8OqII
kT+EbskmpQu2fAaYgSnioNFhAjtB7y11L3LScUNRTnPHGBrYKVx2zdI6CtvT
GERTktulfqy/6PVLbBZ9oZFS72WoOtpYC2f3viXVTchMJeq6xksMfNn7rpyn
2Gjao6uVOEcUOmxKCrzDvAB7FundKMou2U8SE6HLWQRu0ruI7/NgEeam9Dzp
z36N+RgeHHPmYwQqRM6Dv89Sd9zxJnlLDA3azC8lSGIWRcaD4C/VzAu8YxDj
nE68CQyhHGJZZG2mKT6+zHgcncP7JlPSlvwvT6kA40IigyL8GOUTy+OreyQZ
djmdkWQ3drP3G9MrSXIBzyQQ8DEc3sf4/v5JFm7bzX7dO9XiMzSeivSX/IKE
y315sYGG8Ctvyf/uSL6kLfnfphTMuz4LE83kpLHXuiaA/ky2BTAXHEnGZIoX
gLu5n5WI9cjnHJIMbLT2/U2wSoAAQ1K8mVtMCFTJvybMWOu8djHOpsMr7KD/
XK3X1tAE6IjoNsG7hHqRxPWJr4HQtG4GR8MQQyRpjfGj8cEgzHgTUBajguRm
EAjS7zly30wVxfumCZE+7how2uPXljEE/mCmHJe4lMEX49QM8x29BlPf2ApD
XPKfu+hZOLpo5t2v35qAFHQV38anGT2zyRAg0/n+odFimPRCCtIyhD4QwWF8
X0EnWfes6/fbWhGgeLM0spXw2SJLc/5/YOu90fXfw9cM7DJ4uQeywgOJeXz5
JZi6G+Q1vPwSNF3LWH8Jjt6x5w3rhl+fQ9BfgaGbUJTxYwCiiJ4RFz1+YcfP
I6qSjgSf8sKjxOeifBy5KKEKQydaERyekLoF9wgzPwtygCfoTfCVtOVYAT1H
n3bbcnPDk9zz/ma70N91L7EmwSyUWyT4SwR2IJ+g86evz+6Qzy+ld5v0bZWt
DfY3xDWfl55BhjFE3/6sPyNSD+TTvgrvNEvTUNY8FtxhBVS8JPBgz1nAQkeL
PPIJGD7epL4Py4HYYtVYVEzmRCh/UwGIBB6FKkGk2Up1WEHXJ2Ydw3FKims1
CD6X44Qk/xu+LuHcCVgX7TOwWLdH6aw+lY16hDzApAbEUyavPbMT9lWQPugy
nZpCxLAhUIFlgKAlIeSlKNpfFUVXxOuf74JG0e8sVmZSFQ8Y/67BVEXOf/nh
gdNFwQmzz11dZUVdIUyi46eNOtipaoz1YJGUBqcsFVmNU5whi4o5ek8K1e6o
T/NZnUC2iFGO91ogyMHQcyZ1hZdcdV6GO0gGMYo1esppDi1cYFueXRzWkrrW
wDnSrdJ4Q8EbVyERZzivk1yC9GVgWPDApXvDaylBWVIsq6KkIVe7eakOp+xx
Wrm1u8MoUILrUPFmPQQ3UUaYiwu6dQLQ5nrNKlzVUUEmXQdVqyQvKWJqtbcR
/X1fyCz6u0cyHgDM7L1R5jUU+XpjMdgRLNRVuF9FBQNZZxmuOzl3lFzD/Tg3
RLbX00KhBummsbW2HdiZFv0x2NDEggKlpb4+6U2O+9K26PRhDlNS/qKiakwL
xsxlWRMXC3zwRsKXEJKO+DpcdDsxt0QefwJWSFGTRfpKpsJWgD85Fr7icMRE
xJouuqoJwUPIM4eIgDLS1x7P4u1ORMyeLoJaymT79WIqJNwqbUj5v0DNAE0F
TaiwhniLpg9xPKU4yZ7gtsRtuOninAgV9ZejVJiiTvPlQU0cAlKrPqUntqWm
e69e0TWn9IkYLyIMEjHJ2yisPsQVkluS4bkgomKN/fHL4zVzlmMohge15Z6K
oi8aC2ZYTuCQcJZQafAW1j0Ff+to0zVHSPZyIudS4Yc9b2vTxkKA45fyiguU
S/kMZB0kqqsA3IGV6MT5Klwe2L8PPtJXz54/pMv4zlQtlgDwl11xGSe/unz7
ELVEnMBsE1QR335y8hCOETWUb/KpcJXrZcUZNl++5etf869O98WurQmGFfPT
CAbgLNS18nWVrPLcJEiFmht/4R0+CDjViLjQF8Na22Sr9QgVJODkxN/u4Cwe
kAYzEGkEAi6p8Cf15qFgiFY4O6NojK39CmAbK5w8JJOBEiqE9fvC/PAUyUDx
CPXFOGbAh8u3lMHWAroifkFPO6vNz9rfVbLRc3OzTFZiAMP9fO33IuIdziba
SGT8qITANxuyoSoUvpfR5Rque3LiUNDxkgZjdYCEG03lqZxlf081/8jG+MUF
n4jjLwFQo4HDwOJGYMq3SrOuSeCcJnqGlijsCAIOyhngZrO5yM1KOOH1Zrg3
YILXR3alhu+9YxhilXiLMrhD8aU9Czgo8NlaJo8tP6ICMcjlHBqLY6x6ZSwg
vj97TrKil6Zow/1QdfAukPRuOs8jIx8k5JEBBAWXb/djdPB6PwkjNkQNWewQ
X8VJP1JoBe7mx9BhNwlIdpOxa0lH6Dxc1yc46fORj2sxS0aQL5/z6+4iJf0i
n1n39QEMYY71NK9VlH1MeHWQ71c+2O+n9WMv6esP3zjk1TrT4n6zMri1tt1t
jFvnxaa2JKbcxsV7TESc9dHv9qO8L0VJ9OvbLt8+igPuKYvczMfwpYL55cze
IqXpTr9ISqO5zMbeV0rJxA/WJS4eyoGUHvTTDmj+9VL6a8Qg5hpy5AqphlBg
s8F38Tj8mbTCMeAru/43GHqCc68qSsNiQYXzH45EA9KbgySFLgjkvcFgGzL8
7qixYKMXfeUHwzKmTsfyCv3I8F2ZuKVwBcONzHL19/3bvrjpL+MPRG5IuDbO
l8HFwVSI6OPxSjNpZIzTcm26Zw9VA/3txh3lQdmFCldhs6EMH8/1hIPrfeML
IsMXW1hGyrn0QA6HZ0QGfo3FXzzGitGs8rG992di6R3IZBVdlj5Hb2qRWHdO
gBwXQQK4vvDDEX9Qqcvvd6awC73jnWT+wh5CWjpO2l9lrvkjzKKXIsr0+7ox
POLOcTELrU3Vayw4bkn31uhQX6lGzeWfkQf1SJ7X4GRcqoUqf1bs9V6ZspyD
uENP+GehBLjLt+Sk4o32jdG3oaB1wRVbaZyDn5/LH1Z1ca1H8oWdK6wTPrFd
oUplMLhW0FVegFLBCujZvjDAa3DULvHfpnTWf4JxXOEtvf6rBW/o/wDa8ufU
DEIAAA==

-->

</rfc>
