<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers --> encoding="UTF-8"?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-6man-pio-pflag-12" number="9762" ipr="trust200902" obsoletes=""
  updates="4861,4862" updates="4861, 4862" submissionType="IETF" xml:lang="en"
  version="3">  version="3" tocInclude="true" sortRefs="true" symRefs="true" consensus="true">

  <front>

<!--[rfced] Document title

a) Note that we updated "DHCPv6 Prefix" to "DHCPv6 Prefix Delegation" in the
document title. In addition, please review "Availability to Hosts" and
consider updating in one of the following ways to improve clarity of the
title.

Original:
  Signaling DHCPv6 Prefix per Client Availability to Hosts

Current:
  Signaling DHCPv6 Prefix Delegation per Client Availability to Hosts

Perhaps (1):
  Signaling to Hosts the Availability of DHCPv6 Prefix Delegation per Client

Perhaps (2):
  Signaling to Hosts the Preference for Using DHCPv6 Prefix Delegation per Client

b) Note that we have updated the short title, which appears in the
running header in the PDF output, as follows.

Original:
  pio-p-flag

Current:
  PIO P Flag
-->

<title abbrev="pio-p-flag">Signaling abbrev="PIO P Flag">Signaling DHCPv6 Prefix Delegation per Client Availability to Hosts</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-6man-pio-pflag-12"/> name="RFC" value="9762"/>

 <author initials="L." surname="Colitti" fullname="Lorenzo Colitti">
      <organization>Google</organization>
      <address>
        <postal>
          <street>Shibuya 3-21-3</street>
          <country>Japan</country>
        </postal>
        <email>lorenzo@google.com</email>
      </address>
    </author>
    <author fullname="Jen Linkova" initials="J" surname="Linkova">
      <organization>Google</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>1 Darling Island Rd</street>
          <city>Pyrmont</city>
          <region>NSW</region>
          <code>2009</code>
          <country>AU</country>
          <country>Australia</country>
        </postal>
        <email>furry13@gmail.com</email>
        <email>furry@google.com</email>
      </address>
    </author>
<author fullname="Xiao Ma" initials="X" role="editor" surname="Ma">
      <organization>Google</organization>
      <address>
        <postal>
          <street>Shibuya 3-21-3</street>
          <country>Japan</country>
        </postal>
        <email>xiaom@google.com</email>
      </address>
    </author>
<author fullname="David 'equinox' Lamparter" initials="D" surname="Lamparter">
      <organization>NetDEF, Inc.</organization>
      <address>
        <postal>
          <city>San Jose</city>
          <country>USA</country>
          <city>Leipzig</city>
	  <code>04229</code>
          <country>Germany</country>
        </postal>
        <email>equinox@diac24.net</email>
        <email>equinox@opensourcerouting.org</email>
      </address>
    </author>

    <date year="2024"/>
<area>Internet</area>
    <workgroup>IPv6 Maintenance</workgroup> year="2025" month="March"/>

    <area>INT</area>
    <workgroup>6man</workgroup>

    <keyword>ipv6</keyword>
    <keyword>slaac</keyword>
    <keyword>pio</keyword>
    <keyword>dhcpv6-pd</keyword>

    <abstract>
 <t>
This document defines a the "P" flag in the Prefix Information Option (PIO) of
IPv6 Router Advertisements (RAs).  The flag is used to indicate that the
network prefers that clients use the RFC9663 deployment model in RFC 9663
instead of using individual adresses addresses in the on-link prefix assigned using
Stateless Address Autoconfiguration (SLAAC) or DHCPv6 address assignment.
</t>
<t>
This document updates RFC4862 RFC 4862 to indicate that the Autonomous flag in a PIO
needs to be ignored if the PIO has the P flag set.  It also updates RFC4861 RFC 4861
to specify that the P flag indicates DHCPv6 Prefix Delegation support for
clients.
</t>

    </abstract>

  </front>

  <middle>

    <section>
      <name>Introduction</name>
<t>
<xref target="RFC9663"/> documents an IPv6 address assignment model where IPv6 devices obtain dedicated prefixes from the network via DHCPv6 Prefix Delegation (DHCPv6-PD, (DHCPv6-PD) <xref target="RFC8415"/>). target="RFC8415"/>. This model provides devices with a large IPv6 address space they can use to create addresses for communication, individually number virtual machines (VM)s (VMs) or containers, or extend the network to downstream devices. It also provides scalability benefits on large networks because network infrastructure devices do not need to maintain per-address state, such as IPv6 neighbor cache, Source Address Validation Improvement (SAVI, (SAVI) <xref target="RFC7039"/>) target="RFC7039"/>  mappings, Virtual eXtensible Local Area Network (VXLAN, (VXLAN) <xref target="RFC7348"/>) target="RFC7348"/> routes, etc.
</t>
<t>
  On networks with fewer devices, however, this model may not be appropriate, because scaling to support multiple individual IPv6 addresses per device is less of a concern. Also, many home networks currently offer prefix delegation but assume that a limited number of specialized devices and/or applications will require delegated prefixes, prefixes and thus do not allocate enough address space to offer prefixes to every device that connects to the network.

<!--[rfced] How may we clarify the use of "[RFC9663]" in the two sentences below?

Original:
   For example,
   if clients enable [RFC9663] on a home network that only receives a
   /60 from the ISP, and each client obtains a /64 prefix...
   ...
   Therefore, to safely roll out [RFC9663] implementations on the client
   side, it is necessary to have a mechanism for the network to signal
   to the client which address assignment method is preferred.

Perhaps:
   For example,
   if clients enable the mechanism described in [RFC9663] on a
   home network that only receives a /60 from the ISP and each client
   obtains a /64 prefix...
   ...
   Therefore, to safely roll out implementations using the mechanism in [RFC9663]
   on the client side, it is necessary to have a mechanism for the network
   to signal to the client which address assignment method is preferred.

Or:
   For example,
   if clients enable DHCPv6-PD [RFC9663] on a
   home network that only receives a /60 from the ISP and each client
   obtains a /64 prefix...
   ...
   Therefore, to safely roll out implementations using DHCPv6-PD [RFC9663]
   on the client side, it is necessary to have a mechanism for the network
   to signal to the client which address assignment method is preferred.
-->

  For example, if clients enable <xref target="RFC9663"/> on a home network that only receives a /60 from the ISP, ISP and each client obtains a /64 prefix, then the network will run out of prefixes after 15 devices have been connected.
</t>
<t>
Therefore, to safely roll out <xref target="RFC9663"/> implementations on the client side, it is necessary to have a mechanism for the network to signal to the client which address assignment method is preferred.
</t>

<t>
</t>

    </section>

      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", "<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 "OPTIONAL" "<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>
      </section>

      <section>
	<name>Terminology</name>
<t>
                              Node: a

	<dl spacing="normal" newline="false">
          <dt>Node:</dt><dd>a device that implements IPv6, IPv6 <xref target="RFC8200"/>.
              </t>
              <t>
                              Host: any target="RFC8200"/></dd>
          <dt>Host:</dt><dd>any node that is not a router, router <xref target="RFC8200"/>.
              </t>
<t>
Client: a target="RFC8200"/></dd>
	  <dt>Client:</dt><dd>a node which that connects to a network and acquires
	  addresses. The node may wish to obtain addresses for its own use, or it
	  may be a router that wishes to extend the network to its physical or
	  virtual subsystems, or both. It may be either a host or a router as
	  defined by <xref target="RFC8200"/>.
        </t>
<t>
DHCPv6-PD: DHCPv6 (<xref target="RFC8415"/>) target="RFC8200"/>.</dd>

	  <dt>DHCPv6-PD:</dt><dd>DHCPv6 Prefix Delegation [RFC8415]; a mechanism to delegate IPv6 prefixes to clients.
</t>
<t>
DHCPv6 IA_NA: Identity clients.</dd>
	  <dt>DHCPv6 IA_NA:</dt><dd>Identity Association for Non-temporary Addresses (Section 21.4 of <xref target="RFC8415"/>).
</t>
<t>
DHCPv6 IA_PD: Identity (<xref section="21.4" sectionFormat="of" target="RFC8415"/>)</dd>
	  <dt>DHCPv6 IA_PD:</dt><dd>Identity Association for Prefix Delegation (Section 21.21 of <xref target="RFC8415"/>).
</t>
              <t>
                      ND: Neighbor Discovery, (<xref section="21.21" sectionFormat="of" target="RFC8415"/>)</dd>
          <dt>ND:</dt><dd>Neighbor Discovery <xref target="RFC4861"/>.
              </t>

<t>
On-link address: an target="RFC4861"/></dd>
	  <dt>On-link address:</dt><dd>an address that is assigned to an interface on a specified link (<xref target="RFC4861"/>).
</t>
<t>
On-link prefix: a <xref target="RFC4861"/></dd>
	  <dt>On-link prefix:</dt><dd>a prefix that is assigned to a specified link.
</t>
<t>
Off-link: the link</dd>
	  <dt>Off-link:</dt><dd>the opposite of "on-link" (see <xref target="RFC4861"/>).
</t>
<t>
PIO: Prefix target="RFC4861"/>)</dd>
	  <dt>PIO:</dt><dd>Prefix Information Option, Option <xref target="RFC4862"/>.
</t>
              <t>
                      SLAAC: IPv6 Stateless target="RFC4862"/></dd>
          <dt>SLAAC:</dt><dd>Stateless Address Autoconfiguration, Autoconfiguration <xref target="RFC4862"/>.
              </t> target="RFC4862"/></dd>
	</dl>
      </section>

    <section anchor="rationale">
<name>Rationale</name>
<t>
The network administrator might want to indicate to clients that requesting a prefix via DHCPv6-PD and using that prefix for address assignment (see <xref target="RFC9663"/>) should be preferred over using individual addresses from the on-link prefix.
The information is passed to the client via a P flag in the Prefix Information Option (PIO). The reason reasons for it being a PIO flag is are as follows:
</t>
<ul>

<!-- [rfced] We added numbers in this long sentence to improve
readability. Please review.

Original:
   Forming addresses via SLAAC is
   suboptimal because if the client later acquires a prefix using
   DHCPv6-PD, it can either use both the prefix and SLAAC addresses,
   reducing the scalability benefits of using DHCPv6-PD, or can
   remove the SLAAC addresses, which would be disruptive for
   applications that are using them.

Updated:
   Forming addresses via SLAAC is
   suboptimal because if the client later acquires a prefix using
   DHCPv6-PD, it can either 1) use both the prefix and SLAAC
   addresses, reducing the scalability benefits of using DHCPv6-PD,
   or 2) remove the SLAAC addresses, which would be disruptive for
   applications that are using them.
-->

  <li>
The information must be contained in the Router Advertisement because it must be available to the client before it decides to form IPv6 addresses from the PIO prefix using SLAAC. Otherwise, the client might use SLAAC to form IPv6 addresses from the PIO provided and start using them, even if a unique per-client prefix is available via DHCPv6-PD.
Forming addresses via SLAAC is suboptimal because if the client later acquires a prefix using DHCPv6-PD, it can either 1) use both the prefix and SLAAC addresses, reducing the scalability benefits of using DHCPv6-PD, or can 2) remove the SLAAC addresses, which would be disruptive for applications that are using them.

</li>

<li>
This information is specific to the particular prefix being announced. For
example, a network administrator might want clients to assign global addresses
from delegated prefixes, prefixes but use the PIO prefix to form Unique Local IPv6
Unicast (ULA, Addresses <xref target="RFC4193"/>) addresses. target="RFC4193"/>.  Also, in a multihoming situation,
one upstream network might choose to assign prefixes via prefix delegation, delegation and
another via PIOs.

</li>
</ul>

<t>
Note that setting the 'P' flag in a PIO expresses the network operator's preference as to whether that clients should attempt using DHCPv6-PD instead of performing individual address configuration on the prefix.
For clients that honor this preference by requesting prefix delegation, the actual delegated prefix will necessarily be a prefix different from the one from the PIO.
</t>

    </section>

<section anchor="flag-over">
<name>P Flag Overview</name>
<t>
The P flag (also called the DHCPv6-PD preferred flag) is a 1-bit PIO flag, located after the R flag (<xref target="RFC6275"/>). <xref target="RFC6275"/>.

The presence of a PIO with the P flag set indicates that the network prefers that clients use Prefix Delegation instead of acquiring individual addresses via SLAAC or DHCPv6 address assignment. This implies that the network has a DHCPv6 server capable of making DHCPv6 Prefix Delegations to every device on the network, as described in <xref target="RFC9663"/>.</t>

<t>
The
<xref target="fig_pio_new"/> shows the resulting format of the Prefix Information Option is as follows (see Figure 1): Option.
</t>

<figure align="center" anchor="fig_pio_new">
<artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |    Length     | Prefix Length |L|A|R|P| Rsvd1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Valid Lifetime                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Preferred Lifetime                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Reserved2                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                            Prefix                             +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>

<t>
The P flag is independent of the value of the M and O flags in the Router Advertisement.
If the network desires to delegate prefixes to devices that support DHCPv6 Prefix Delegation but do not support the P flag, it SHOULD <bcp14>SHOULD</bcp14> also set the M or O bits in the RA to 1, because some devices, such as <xref target="RFC7084"/> Customer Edge (CE) routers, routers <xref target="RFC7084"/>, might not initiate DHCPv6 Prefix Delegation if both the M and O bits are set to zero.
</t>
</section>

<section anchor="Router">
<name>Router Behaviour</name> Behavior</name>
<t>
Routers SHOULD <bcp14>SHOULD</bcp14> set the P flag to zero by default, unless explicitly configured by the administrator, and SHOULD <bcp14>SHOULD</bcp14> allow the operator to set the P flag value for any given prefix advertised in a PIO.
Routers MUST <bcp14>MUST</bcp14> allow the P flag to be configured separately from the A flag.

<!--[rfced] Should "MUST not" be updated to "MUST NOT" here? Note that "MUST
NOT" is listed in the Requirements Language section.

Original:
   In particular, enabling or disabling the P flag MUST not trigger
   automatic changes in the A flag value set by the router.
-->

In particular, enabling or disabling the P flag <bcp14>MUST</bcp14> not trigger automatic changes in the A flag value set by the router.
</t>
</section>
<section anchor="client">
<name>Client Behaviour</name> Behavior</name>
<section>
<name>Processing the P Flag</name>
<t>
This specification only applies to clients which that support DHCPv6 Prefix Delegation.
Clients which that do not support DHCPv6 prefix delegation MUST <bcp14>MUST</bcp14> ignore the P flag.
The P flag is meaningless for link-local prefixes prefixes, and any Prefix Information Option containing
the link-local prefix MUST <bcp14>MUST</bcp14> be ignored as specified in <xref target="RFC4862" section="5.5.3"/>.
In the following text, all prefixes are assumed not to be link-local.
</t>

<t>
For each interface, the client MUST <bcp14>MUST</bcp14> keep a list of every prefix that was received
from a PIO with the P flag set and currently has a non-zero Preferred Lifetime.
The list affects the behaviour behavior of the DHCPv6 client as follows:
</t>
<ul>
<li>When a prefix's Preferred Lifetime becomes zero, either because the Preferred
Lifetime expires or because the client receives a PIO for the prefix with a zero
Preferred Lifetime, the prefix MUST <bcp14>MUST</bcp14> be removed from the list.
</li>
<li>When the length of the list increases to one, the client SHOULD <bcp14>SHOULD</bcp14> start requesting
prefixes via DHCPv6 prefix delegation unless it is already doing so.</li>
<li>When the length of the list decreases to zero, the client SHOULD <bcp14>SHOULD</bcp14> stop requesting
or renewing prefixes via DHCPv6 prefix delegation if it has no other reason to do so.
The lifetimes of any prefixes already obtained via DHCPv6 are unaffected.</li>
<li>
If the client has already received delegated prefix(es) from one or more
servers, then any time a prefix is added to or removed from the list, the client MUST <bcp14>MUST</bcp14>
consider this to be a change in configuration information as
described in <xref target="RFC8415" section="18.2.12"/>. In that case case, the client MUST <bcp14>MUST</bcp14> perform
a REBIND, unless the list is now empty.
This is in addition to performing a REBIND in the other cases required by that
section. Issuing a REBIND allows the client to obtain new prefixes if necessary, for example example,
when the network is being renumbered. It also refreshes the state related to the
delegated prefix(es).
</li>
</ul>
<t>
When a client requests a prefix via DHCPv6-PD, it MUST <bcp14>MUST</bcp14> use the prefix length hint (<xref target="RFC8415" section="18.2.4"/>) to request a prefix that is short enough to form addresses via SLAAC.</t>

<t>In order to achieve the scalability benefits of using DHCPv6-PD, the client SHOULD
<bcp14>SHOULD</bcp14> prefer to form addresses from the delegated prefix
instead of using individual addresses in the on-link prefix(es). Therefore,
when the client requests a prefix using DHCPv6-PD, the client
SHOULD NOT <bcp14>SHOULD
NOT</bcp14> use SLAAC to obtain IPv6 addresses from PIOs with the P and A bits
set.  Similarly, if all PIOs processed by the client have the P bit set, the
client SHOULD NOT <bcp14>SHOULD NOT</bcp14> request individual IPv6 addresses from
DHCPv6, i.e., it SHOULD NOT <bcp14>SHOULD NOT</bcp14> include any IA_NA options in
SOLICIT (<xref target="RFC8415"/>) messages. messages <xref target="RFC8415"/>.  The client MAY <bcp14>MAY</bcp14>
continue to use addresses that are already configured.
</t>

<t>If the client does not obtain any suitable prefixes via DHCPv6-PD that are suitable for SLAAC, it MAY <bcp14>MAY</bcp14> choose to disable further processing of the P flag on that interface, allowing the client to fall back to other address assignment mechanisms, such as forming addresses via SLAAC (if the PIO has the A flag set to 1) and/or requesting individual addresses via DHCPv6.</t>
   </section>

<section anchor="received">
<name>
Using Delegated Prefix(es)
</name>

	<t>
		If the delegated prefix is too long to be used for SLAAC, the client MUST <bcp14>MUST</bcp14> ignore it, as Section 7 of <xref section="7" sectionFormat="of" target="RFC9663"/> requires the network to provide a SLAAC-suitable prefix to clients.
	If the prefix is shorter than required for SLAAC, the client SHOULD <bcp14>SHOULD</bcp14> accept it, allocate one or more longer prefix prefixes suitable for SLAAC SLAAC, and use the prefixes as described below.
	</t>
<t>
For every accepted prefix:
</t>

<ul>
<li>
The client MAY <bcp14>MAY</bcp14> form as many IPv6 addresses from the prefix as it chooses.
</li>
<li>
The client MAY <bcp14>MAY</bcp14> use the prefix to provide IPv6 addresses to internal components such as virtual machines VMs or containers.
</li>
<li>
The client MAY <bcp14>MAY</bcp14> use the prefix to allow devices directly connected to it to obtain IPv6 addresses. For example, the client MAY <bcp14>MAY</bcp14> route traffic for that prefix to the interface and send a Router Advertisement containing a PIO for the prefix on the interface. That interface MUST NOT <bcp14>MUST NOT</bcp14> be the interface the prefix is obtained from. If the client advertises the prefix on an interface, interface and it has formed addresses from the prefix, then it MUST <bcp14>MUST</bcp14> act as though the addresses were assigned to that interface for the purposes of Neighbour Neighbor Discovery and Duplicate Address Detection.
</li>
</ul>

<t>The client MUST NOT <bcp14>MUST NOT</bcp14> send or forward packets with destination addresses within a delegated prefix to the interface that it obtained the prefix on, as this can cause a routing loop. This problem will not occur if the client has assigned the prefix to another interface. Another way the client can prevent this problem is to add to its routing table a high-metric discard route for the delegated prefix.
</t>

</section>

<section anchor="p0">
<name>Absence of PIOs with the P bit set</name> Bit Set</name>
<t>
The P bit is purely a positive indicator, telling nodes that DHCPv6
Prefix Delegation is available and the network prefers that nodes use it,
even if they do not have any other reason to run a Prefix Delegation client.
The absence of any PIOs with the P bit does not carry any kind of signal to
the opposite, opposite and MUST NOT <bcp14>MUST NOT</bcp14> be processed to mean that DHCPv6-PD is absent. In
particular, nodes that run DHCPv6-PD due to explicit configuration or by default
(e.g., to extend the network) MUST NOT <bcp14>MUST NOT</bcp14> disable DHCPv6-PD on the absence of PIOs
with the P bit set.
A very common example of this are CE routers as described
by <xref target="RFC7084"/>.
</t>
</section>

<section anchor="onlink">
<name>On-link
<name>On-Link Communication</name>
<t>
When the network delegates unique prefixes to clients, each client will consider other client's destination addresses to be off-link, because those addresses are from the delegated prefixes and are not within any on-link prefix. When a client sends traffic to another client, packets will initially be sent to the default router. The router may respond with an ICMPv6 redirect message (Section 4.5 of [RFC4861]). (<xref section="4.5" sectionFormat="of" target="RFC4861"/>). If the client receives and accepts the redirect, then traffic can flow directly from device to device. Therefore, hosts supporting the P flag SHOULD <bcp14>SHOULD</bcp14> process redirects unless configured otherwise.
Hosts which that do not process ICMPv6 redirects, and routers, which routers that do not act on ICMPv6 redirects, may experience higher latency while communicating to prefixes delegated to other clients on the same link.
</t>
</section>

<section anchor="addrselect">
<name>Source Address Selection</name>
<t>
  For the purpose of source address selection <xref target="RFC6724"/>, if the host creates any addresses from a delegated prefix, it SHOULD <bcp14>SHOULD</bcp14> treat those addresses as if they were assigned to the interface on which the prefix was received.

<!--[rfced] FYI - We have added a citation to RFC 6724 for Rule 5. Please
let us know of any objections.

Original:
   This includes placing them in the candidate
   set, and associating them with the outgoing interface when
   implementing Rule 5 of the source address selection algorithm.

Current:
   This includes placing them in the candidate
   set, and associating them with the outgoing interface when
   implementing Rule 5 of the source address selection algorithm [RFC6724].
-->

  This includes placing them in the candidate set and associating them with the outgoing interface when implementing Rule 5 of the source address selection algorithm <xref target="RFC6724"/>.
</t>
</section>

</section>

<section anchor="mhoming">
<name>
Multihoming
</name>

<t>
In multi-prefix multihoming, the host generally needs to associate the prefix with the router that advertised it (see for (for example, <xref target="RFC6724"/> see Rule 5.5). 5.5 in <xref target="RFC6724"/>). If the host supports Rule 5.5, then it SHOULD <bcp14>SHOULD</bcp14> associate each prefix with the link-local address of the DHCPv6 server or relay from which it received the REPLY packet.
When receiving multiple REPLYs carrying the same prefix from distinct
link-local addresses, the host SHOULD <bcp14>SHOULD</bcp14> associate that prefix with all of these
addresses.  This can commonly happen in networks with redundant routers and
DHCPv6 servers or relays.

</t>

</section>

<section anchor="rfcchanges">
<name>
Modifications to RFC-Mandated Behaviour Behavior
</name>

     <section>
<name>
Changes
       <name>Changes to RFC4861
</name>
<t>
This RFC 4861</name>
       <t>This document makes the following changes to <xref section="4.2" sectionFormat="of" target="RFC4861"/>:</t>

<!-- [rfced] *AD and authors - There is an open erratum report against RFC
4861 regarding the text that is being updated in Section 4.2 9.1 of <xref target="RFC4861"/>:
</t>

<t>
OLD TEXT:
</t>
<t>
====
</t>
<t>
Note: this
document. Are any updates needed?

See https://www.rfc-editor.org/errata/eid8055.
-->

       <t>OLD TEXT:</t>
       <blockquote>Note: If neither M nor O flags are set, this indicates that
       no information is available via DHCPv6.
</t>
<t>
====
</t>

<t>
NEW TEXT:
</t>
<t>
====
</t>
<t>
Note: DHCPv6.</blockquote>

       <t>NEW TEXT:</t>
       <blockquote>Note: If none of the M, O, or P (draft-ietf-6man-pio-pflag) (RFC 9762)
       flags are not set, this indicates that no information is available via DHCPv6.
</t>
<t>
====
</t>
       DHCPv6.</blockquote>

     </section>
     <section>
<name>
Changes
       <name>Changes to RFC4862
</name>
<t>
This RFC 4862</name>
       <t>This document makes the following changes to Section 5.5.3 of <xref target="RFC4862"/>:
</t>

<t>
OLD TEXT:
</t>
<t>
===
</t>

<t>

For section="5.5.3" sectionFormat="of" target="RFC4862"/>:</t>

       <t>OLD TEXT:</t>
       <blockquote><t>For each Prefix-Information option in the Router Advertisement:
</t>

<t>

    a)  If Advertisement:</t>
       <ol type="%c)">
	 <li>If the Autonomous flag is not set, silently ignore the Prefix
	 Information option.
</t>
<t>
 b)  If option.</li>
	 <li>If the prefix is the link-local prefix, silently ignore the Prefix Information option.
</t>
<t>
c)  If option.</li>
	 <li>If the preferred lifetime is greater than the valid lifetime,
	 silently ignore the Prefix Information option.  A node MAY
	 <bcp14>MAY</bcp14> wish to log a system management error in this case.
</t>
<t>
d)  If
	 case.</li>
	 <li>If the prefix advertised is not equal to the prefix of an address
	 configured by stateless autoconfiguration already in the list of
	 addresses associated with the interface (where "equal" means the two
	 prefix lengths are the same and the first prefix-
      length prefix-length bits of the
	 prefixes are identical), and if the Valid Lifetime is not 0, form an
	 address (and add it to the list) by combining the advertised prefix
	 with an interface identifier of the link as follows:
</t>

<t>
===
</t>
<t>
NEW TEXT:
</t>
<t>
===
</t>
<t>
For follows:</li>
       </ol>
       </blockquote>

       <t>NEW TEXT:</t>
       <blockquote><t>For each Prefix-Information option Prefix Information Option in the Router Advertisement:
</t>

<t>
a) If Advertisement:</t>
       <ol type="%c)">
	 <li>If the P flag is set, set and the node implements draft-ietf-6man-pio-pflag,
	 RFC 9762, it SHOULD <bcp14>SHOULD</bcp14> treat the
	 Autonomous flag as if it was unset, unset and use prefix delegation to
	 obtain addresses as described in draft-ietf-6man-pio-pflag.
</t>

<t>

    b)  If RFC 9762.</li>
	 <li>If the Autonomous flag is not set, silently ignore the Prefix
	 Information option.
</t>
<t>
 c)  If Option.</li>
	 <li>If the prefix is the link-local prefix, silently ignore the
	 Prefix Information option.
</t>
<t>
d)  If Option.</li>
	 <li>If the preferred lifetime is greater than the valid lifetime,
	 silently ignore the Prefix Information option. Option.  A node MAY
	 <bcp14>MAY</bcp14> wish to log a system management error in this case.
</t>
<t>
e)  If
	 case.</li>
	 <li>If the prefix advertised is not equal to the prefix of an address
	 configured by stateless autoconfiguration already in the list of
	 addresses associated with the interface (where "equal" means the two
	 prefix lengths are the same and the first prefix-
      length prefix-length bits of the
	 prefixes are identical), identical) and if the Valid Lifetime is not 0, form an
	 address (and add it to the list) by combining the advertised prefix
	 with an interface identifier of the link as follows:
</t>

<t>
===
</t> follows:</li>
       </ol>
       </blockquote>
     </section>
</section>

    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t> The mechanism described in this document relies on the information
      provided in the Router Advertisement and therefore shares the same
      security model as SLAAC.  If the network does not implement RA Guard RA-Guard
      <xref target="RFC6105"/>, an attacker might send RAs containing the PIO
      used by the network, set the P flag to 1 1, and force hosts to ignore the A
      flag.  In the absence of DHCPv6-PD infrastructure, hosts would either
      obtain no IPv6 addresses or, if they fall back to other IPv6 address
      assignment mechanisms such as SLAAC and IA_NA, would experience delays
      in obtaining IPv6 addresses. If the network does not support
      DHCPv6-Shield <xref target="RFC7610"/>, the attacker could also run a
      rogue DHCPv6 server, providing the host with invalid prefixes or other
      invalid configuration information.
</t>
	    <t>
		    The information.</t>
      <t>The attacker might force hosts to oscillate between DHCPv6-PD and
      PIO-based SLAAC by sending the same set of PIOs with and then w/o without the P flag
      set.  That would cause the clients to issue REBIND requests, increasing
      the load on the DHCP infrastructure.  However, Section 14.1 of <xref section="14.1" sectionFormat="of"
      target="RFC8415"/> requires that DHCPv6-PD clients rate limit rate-limit
      transmitted DHCPv6 messages.
</t>

	    <t>
		    It messages.</t>
      <t>It should be noted that if the network allows rogue RAs to be sent,
      the attacker would be able to disrupt hosts connectivity anyway, so this
      document doesn't introduce any fundamentally new security considerations.
	    </t>
        <t>
            Security
      considerations.</t>
      <t>Security considerations inherent to the PD-per-device model are
      documented in Section 15 of <xref target="RFC9663"/>.
        </t> section="15" sectionFormat="of" target="RFC9663"/>.</t>
    </section>

    <section anchor="privacy">
      <name>Privacy Considerations</name>
<t>
The privacy implications of implementing the P flag and using DHCPv6-PD to assign prefixes to hosts are similar to the privacy implications of using DHCPv6 for assigning individual addresses.
If the DHCPv6 infrastructure assigns the same prefix to the same client, then an observer might be able to identify clients based on the highest 64 bits of the client's address. Those implications and recommended countermeasures are discussed in Section 13 of <xref section="13" sectionFormat="of" target="RFC9663"/>.</t>
      <t>
        Implementing the P flag support on a host / and receiving side enables DHCPv6 on that host.
Sending DHCPv6 packets  may reveal some minor additional information about the host,
        most prominently the hostname. This is not a new concern and would apply for any network which that uses DHCPv6 and sets the  'M' flag in Router Advertisements.
      </t>
      <t>
        No privacy considerations result from supporting the P flag on the sender side.
      </t>
    </section>

    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>This memo requests that IANA allocate bit 3 from
      <t>IANA has made the following allocation in the "IPv6 Neighbor Discovery
      Prefix Information Option Flags" registry created by <xref target="RFC8425"/> for use as target="RFC8425"/>:
            </t>

<!-- [rfced] Would you like to update the P flag capitalization of "DHCPv6-PD
preferred flag" as described follows to correspond with the other entries in this
        document.  The following entry should be appended:</t> the
"IPv6 Neighbor Discovery Prefix Information Option Flags" registry?

Link to registry: https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#ipv6-neighbor-discovery-prefix-information-options

Original:
  DHCPv6-PD preferred flag

Perhaps:
  DHCPv6-PD Preferred Flag
-->

	    <table>
        <thead>
          <tr><th>PIO Option Bit</th><th>Description</th><th>Reference</th></tr>
        </thead>
        <tbody>
          <tr><td>3</td><td>P - DHCPv6-PD preferred flag</td><td>[THIS DOCUMENT]</td></tr> flag</td><td>RFC 9762</td></tr>
        </tbody>
      </table>
    </section>

    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->

  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>

        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4861.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4862.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6724.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8415.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8425.xml"/>
        <!-- The recommended and simplest way to include a well known reference -->
      </references>

      <references>
	      <name>Informative References</name>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4193.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6105.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6275.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7084.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7039.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7084.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7348.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7610.xml"/>
              <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8200.xml"/>
              <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9663.xml"/>
      </references>
    </references>

<!-- [rfced] FYI - We alphabetized the names listed in the Acknowledgements
section. We believe that was the intent as only two were out of order. Let us
know if you prefer the original order.
-->

    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
<t>
Thanks
      <t>Thanks to Nick Buraglio, Brian Carpenter, Tim Chown, David Farmer, Fernando Gont, Susan Hares, Dirk <contact fullname="Nick Buraglio"/>, <contact
      fullname="Brian Carpenter"/>, <contact fullname="Tim Chown"/>, <contact
      fullname="David Farmer"/>, <contact fullname="Fernando Gont"/>, <contact
      fullname="Susan Hares"/>, <contact fullname="Mahesh Jethanandani"/>,
      <contact fullname="Suresh Krishnan"/>, <contact fullname="Ted Lemon"/>,
      <contact fullname="Andrew McGregor"/>, <contact fullname="Tomek
      Mrugalski"/>, <contact fullname="Erik Nordmark"/>, <contact
      fullname="Michael Richardson"/>, <contact fullname="John Scudder"/>,
      <contact fullname="Ole Trøan"/>, <contact fullname="Dirk Von Hugo, Mahesh Jethanandani, Suresh Krishnan, Ted Lemon, Andrew McGregor, Erik Nordmark, Tomek Mrugalski, Michael Richardson, John Scudder, Ole Trøan, Eric Vyncke and Timothy Winters Hugo"/>,
      <contact fullname="Éric Vyncke"/> and <contact fullname="Timothy
      Winters"/> for the discussions, reviews, the input input, and all contributions.
</t>
      contributions.</t>
    </section>

<!--[rfced] Abbreviations

a) We updated "Unique Local Unicast (ULA, [RFC4193]) addresses" as
follows. Note that we removed the acronym "ULA" as it is not used elsewhere in
this document or in RFC 4193.

Original:
   For example, a network administrator might want
   clients to assign global addresses from delegated prefixes, but
   use the PIO prefix to form Unique Local Unicast (ULA, [RFC4193])
   addresses.

Current:
   For example, a network administrator might want
   clients to assign global addresses from delegated prefixes but use
   the PIO prefix to form Unique Local IPv6 Unicast Addresses
   [RFC4193].

b) Both the expansion and the acronym for the following terms are used
throughout the document. Would you like to update to using the expansion upon
first usage and the acronym for the rest of the document?

Prefix Information Option (PIO)
Router Advertisement (RA)
-->

<!--[rfced] Terminology

a) How should the names of flags appear (without quotes, with single
quotes, or with double quotes)?

Examples:
P flag
'P' flag
"P" flag
R flag
M and O flag
'M' flag
A flag

b) Throughout the text, the following terminology appears to be used
inconsistently. Please review these occurrences and let us know if/how they
may be made consistent.

Preferred Lifetime vs. preferred lifetime
Prefix Delegation vs. prefix delegation

c) Should "SOLICIT" here be updated to "Solicit"? Although RFC 8415 contains
two instances of "SOLICIT", it contains many instances of "Solicit message".

Original:
   ...i.e., it SHOULD NOT include any IA_NA options
   in SOLICIT ([RFC8415]) messages.

Perhaps:
   ...i.e., it SHOULD NOT include any IA_NA options
   in Solicit messages [RFC8415].
-->

<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed.  Updates of this nature typically
result in more precise language, which is helpful for readers.

Note that our script did not flag any words in particular, but this should
still be reviewed as a best practice.
-->

 </back>
</rfc>