<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC2373 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2373.xml">
<!ENTITY RFC3315 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY RFC4861 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4861.xml">
<!ENTITY RFC4862 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4862.xml">
<!ENTITY RFC5942 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5942.xml">
<!ENTITY RFC6164 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6164.xml">
<!ENTITY RFC6583 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6583.xml">
<!ENTITY RFC7421 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7421.xml">
<!ENTITY RFC7608 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7608.xml">
<!ENTITY RFC7707 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7707.xml">
<!ENTITY RFC7721 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7721.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8273 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8273.xml">
<!ENTITY I-D.jinmei-6man-prefix-clarify SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.jinmei-6man-prefix-clarify.xml">
<!ENTITY I-D.bourbaki-6man-classless-ipv6 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.bourbaki-6man-classless-ipv6.xml">
<!ENTITY I-D.jaeggli-v6ops-indefensible-nd SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.jaeggli-v6ops-indefensible-nd.xml">
      
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-farmer-6man-exceptions-64-00" ipr="trust200902">
 <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <title abbrev="Exceptions to the 64-bit Boundary">Exceptions to the 64-bit Boundary in IPv6 Addressing</title>
   <author fullname="David Farmer" initials="D.E." surname="Farmer">
     <organization>University of Minnesota</organization>
     <address>
       <postal>
         <street>2218 University Ave SE</street>
         <city>Minneapolis</city>
         <region>MN</region>
         <code>55414</code>
         <country>US</country>
       </postal>
       <phone>+16126260815</phone>
       <email>farmer@umn.edu</email>
     </address>
   </author>
   <date year="2018" />
   <area>Internet Area</area>
   <workgroup>6man Working Group</workgroup>
   <keyword>IPv6 subnet assignment prefix on-link exceptions 64-bit boundary </keyword>
   <abstract>
     <t>This document clarifies exceptions to the 64-bit boundary in IPv6 addressing. The exceptions include,
        unicast IPv6 addresses with the first three bits 000, manually configured addresses, DHCPv6 assigned 
        addresses, IPv6 on-link determination, and the possibility of an exception specified in separate IPv6 
        link-type specific documents. Further, operational guidance is provided and Appendix A. discusses the 
        valid options for configuring IPv6 subnets</t>
   </abstract>
 </front>
 <middle>
   <section anchor="Intro" title=" Introduction">

     <t>The 64-bit boundary in IPv6 addressing provides the basis for unicast addresses to be autonomously
        generated using stateless address auto-configuration (SLAAC) <xref target="RFC4862">RFC&nbsp;4862</xref>.
        SLAAC allows hosts to connect to link networks without any pre-configuration, which is especially 
        useful for general-purpose hosts and mobile devices. In this circumstance, unicast addresses have an
        internal structure composed of 64-bit interface identifiers (IIDs) and therefore 64-bit subnet prefixes,  
        as defined in the IPv6 Addressing Architecture <xref target="RFC4291bis"></xref>. For additional
        discussion of the 64-bit boundary in IPv6 addressing see
        <xref target="RFC7421">RFC&nbsp;7421</xref>.</t>

     <t>However, in other circumstances, such as with manually configured addresses or DHCPv6
        <xref target="RFC3315"></xref> assigned addresses, unicast addresses are considered to have no internal
        structure and are assigned to interfaces on hosts as opaque 128-bit quantities without any knowledge 
        of the subnets present on the link network. The idea that unicast addresses may have no internal
        structure is also defined in IPv6 Addressing Architecture <xref target="RFC4291bis"></xref>, "a node
        may consider that unicast addresses (including its own) have no internal structure."</t> 

     <t>Further, unlike IPv4 where there is a single subnet mask parameter with the two aspects of a subnet, 
        address assignment and on-link determination, tightly coupled together. In IPv6, these two aspects are 
        split into two logically separate parameters serving the two aspects independently. The subnet
        assignment prefix is used by SLAAC to perform autonomous address assignment. Separately, the on-link 
        prefix is used to determine if an address can be delivered using a directly connected link network. 
        IPv6 Neighbor Discovery (ND) <xref target="RFC4861"></xref>, the IPv6 subnet model 
        <xref target="RFC5942"></xref>, SLAAC <xref target="RFC4862"></xref> describe and specify 
        the use of these parameters in detail.</t>

     <t>Briefly, unicast addresses assigned to interfaces on hosts are not considered on-link unless covered
        by an on-link prefix advertised through ND Router Advertisement (RA) messages containing Prefix
        Information Options (PIOs) with the on-link (L) flag set or by manual configuration. Whereas 
        autonomous address assignment uses subnet assignment prefixes that are also advertised through the 
        same ND RA messages and PIOs but with the autonomous (A) flag set instead. While they act 
        independently, most frequently subnets are defined by identical subnet assignment prefixes and 
        on-link prefixes, see Appendix A. for a further decision of this and the other valid options for
        configuring IPv6 subnets. However, unlike subnet assignment prefixes, which are effectively required
        to be 64-bits in length, on-link prefixes may have any length between 0 and 128 bits, inclusive.
        Nevertheless, for consistency with the 64-bit boundary, 64-bit on-link prefix lengths are recommended
        in most circumstances.</t>

     <t>Reinforcing the ideas that on-link prefixes are logically separate and may have any length. On-link
        prefixes are part of the next-hop determination process in IPv6 ND, which is intrinsically part of
        routing and forwarding within IPv6, and <xref target="RFC7608">BCP&nbsp;198</xref> says, "forwarding
        processes MUST be designed to process prefixes of any length up to /128, by increments of 1."</t>

     <t>Finally, SLAAC is currently designed to utilize a single IID length to validate the length of the 
        subnet assignment prefixes provided to it. However, SLAAC itself does not define the IID length or
        assume it is 64-bits in length. It utilizes the IID length defined in separate link-type specific
        documents that are intended to be consistent with the standard 64-bit IID length defined in the IPv6
        Addressing Architecture <xref target="RFC4291bis"></xref>. While this is a possible exception to the
        64-bit boundary, currently there are no IPv6 link-type specific documents that specify an IID length
        other than 64-bits.  Effectively requiring 64-bit IIDs, and therefore 64-bit subnet assignment 
        prefixes when use with autonomous address assignment, as performed by SLAAC.</t>

     <t>In summary, the essential theory of this document is that the two parameters that define IPv6 
        subnets, the subnet assignment prefix and the on-link prefix, interact with the 64-bit boundary
        in subtle but complex ways. Subnet assignment prefixes are the primary parameter used to configure
        subnets, and when used they are effectively required to be 64-bit in length. However, this does not
        indicate on-link prefixes are also required to be 64-bits in length. Even when SLAAC is used, and
        subnets are required to be 64-bits in length, on-link prefixes shorter than 64-bits still seem to be
        valid. Further, when subnet assignment prefixes are not used to configure subnets, autonomous address
        assignment is not performed, and either manually configured addresses or DHCPv6 assigned addresses 
        must be used. In this circumstance, subnets are configured solely using on-link prefixes and 
        therefore may have any length between 0 and 128 bits, inclusive. Nevertheless, for consistency with 
        the 64-bit boundary, 64-bit on-link prefix lengths are recommended in most circumstances. Therefore,
        when subnets are solely configured using on-link prefixes, subnets are only recommended to be 64-bit
        in length and are not required to be such.</t>

     <t>Some have stated, "IPv6 subnets are required to be 64-bits in length." Whereas others counter, 
        "IPv6 subnets are only recommended to be 64-bits in length." However, because of the subtle but 
        complex interaction described above, both of these statements are not entirely correct based on the
        details of how individual subnets are configured. A more accurate statement is, "when configured 
        using subnet assignment prefixes, IPv6 subnets are required to be 64-bits in length. Otherwise, when
        configured solely using on-link prefixes, IPv6 subnets are only recommended to be 64-bits in length."
        Also, it could be said, "standard IPv6 subnets are 64-bits in length," given the 64-bit length is 
        both required or recommended based on the details of how individual subnets are configured. These 
        last two statements seem to more accurately reflect how the protocols that define and implement IPv6
        subnets operate. It is hoped that clarifying the following exceptions to the 64-bit boundary and
        providing clear operational guidance will provide a better understanding of and more clarity to the
        subtle but complex interaction between the 64-bit boundary in IPv6 addressing and how IPv6 subnets 
        are defined and implemented.</t>

     <section title="Requirements Language">
       <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
          NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
          "MAY", and "OPTIONAL" in this document are to be interpreted as
          described in BCP 14 
          <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> 
          when, and only when, they appear in all capitals, as shown here.</t>
     </section>
   </section>

   <section anchor="Exceptions" title="Exceptions to the 64-bit Boundary"> 

     <section anchor="Addresses-beginning-000" title="Unicast Addresses with the First Three Bits 000">
       <t>These are all currently special-purpose IPv6 addresses or are otherwise reserved. Also, they 
          generally not assigned to interfaces on hosts, especially not to general-purpose hosts. Examples of
          these addresses are the unspecified address, the loopback address, and the IPv4-Mapped IPv6 Address
          from <xref target="RFC4291bis"></xref> sections 2.4.2, 2.4.3, and 2.4.5.2 respectively.</t>

       <t>Most of these addresses have no internal structure and are considered opaque 128-bit quantities.
          However, some of these addresses could be presumed to have structure, such as the IPv4-mapped IPv6
          address. This structure comes from embedding an IPv4 address within an IPv6 address, but this 
          structure is unrelated to and different from the internal structure, composed of standard IIDs and
          subnet prefixes, which makes up the 64-bit boundary.</t>

       <t>Historically, reservations were also made in this range for the mapping of OSI NSAP and IPX address
          into IPv6 addresses. They had structures similar to the IPv4-mapped IPv6 address discussed above.
          However, they have since been deprecated.</t>

       <t><list style="empty">
         <t>Note: ever since <xref target="RFC2373">RFC&nbsp;2373</xref> addresses with the first three bits 
            000 have been an exception to the 64-bit boundary, and addresses with the first three bits 001 
            through 111, except for multicast addresses, have been expected to be consistent with the standard
            64-bit IID length.</t>
       </list></t>
     </section>

     <section anchor="Manually-Configured" title="Manually Configured Addresses">
       <t>IPv6 addresses manually configured on a node's interface, sometimes known as statically configured, 
          are an exception to the 64-bit boundary as they have no internal structure, are considered opaque
          128-bit quantities, and are assigned to node interfaces without any knowledge of the subnets present
          on the link network.</t>

       <t>Manually configured addresses MAY also include an associated an on-link prefix length. This on-link
          prefix length (n) MAY have any value between 0 and 128 bits, inclusive. If an on-link prefix length
          is included, the most significant, or leftmost, n-bits of the manually configured address are
          considered the on-link prefix. Alternatively, if an on-link prefix length is not included, the 
          manually configured address MUST NOT automatically be considered on-link. Nevertheless, for 
          consistency with the 64-bit boundary, 64-bit on-link prefix lengths are recommended in most
          circumstances. See section 3 for detailed operational guidance regarding on-link prefix lengths.</t>
     </section>

     <section anchor="DHCPv6" title="DHCPv6 Assigned Addresses">
        <t>IPv6 addresses assigned to a host's interface via DHCPv6 <xref target="RFC3315"></xref> (Identity
           Association for Non-temporary Addresses (IA_NA) or Identity Association for Temporary Addresses
           (IN_TA)) are an exception to the 64-bit boundary as they have no internal structure, are 
           considered opaque 128-bit quantities, and are assigned to host interfaces without any knowledge 
           of the subnets present on the link network. Further, DHCPv6 assigned addresses MUST NOT 
           automatically be considered on-link.</t>
     </section>

     <section anchor="On-link" title="IPv6 On-link Determination">
        <t>IPv6 on-link determination is an exception to the 64-bit boundary, in that IPv6 ND
           <xref target="RFC4861"></xref> does not require on-link prefixes to be 64-bits in length. To the
           contrary, on-link prefixes MAY have any length between 0 and 128 bits, inclusive. See section 3 
           for detailed operational guidance regarding the use of on-link prefix lengths.</t>
     </section>

     <section anchor="Link-type-Specific" title="IPv6 Link-type Specific Documents">
        <t>Separate IPv6 link-type specific documents, sometimes known as "IPv6-over-FOO" documents, specify
           the IID length utilized by SLAAC to validate the length of subnet assignment prefixes provided. 
           The IID length defined should be consistent with the standard 64-bit IID length specified in the 
           IPv6 addressing architecture <xref target="RFC4291bis"></xref>. However, these
           documents MAY create an exception to the standard 64-bit IID length scoped to a specific link-type
           technology when justified.  Although currently, there are no IPv6 link-type specific documents 
           that specify an IID length other than 64-bits.</t>  

        <t>When an exception to the standard 64-bit IID is specified in a link-type specific document, valid
           justification needs to be documented in some detail.</t>

        <t>Further, SLAAC is currently designed to validate against only a single IID length per link-type
           technology. As a result, a link-type technology that specifies a non-standard IID length cannot 
           be directly bridged with another link-type technology that specifies the standard 64-bit IID 
           length without creating confusion about the IID length that is to be used for validation. 
           Therefore, if this type of direct bridging is allowed, then a mechanism to ensure there is no
           confusion about which IID length SLAAC is to validate against needs to be provided.</t>
     </section>
   </section>

   <section anchor="Operational-Guidance" title="Operational Guidance">
      <t>At a high-level, this document recommends the following principles for the configuration of IPv6
         subnets. The configuration of subnet assignment prefixes is recommended, allowing hosts to use
         autonomous address assignment. With this configuration, subnet assignment prefixes are required to
         be 64-bits in length, requiring 64-bit subnets in this circumstance. Further, identical on-link 
         prefixes are recommended, but on-link prefixes are required to be 64-bits or shorter. Otherwise, if
         subnet assignment prefixes are not configured, then hosts will have to use manually configured 
         addresses or DHCPv6 assigned addresses and subnets are configured solely by on-link prefixes that 
         are recommended to be 64-bits in length, only recommending 64-bit subnets in this circumstance. 
         There are two exceptions to these principles, inter-router point-to-point links with 127-bit prefixes
         <xref target="RFC6164"></xref> and the possible future specification of link-type specific documents
         based on an IID length that is not 64-bits.</t>

      <t>More specifically;</t>

      <t><list style="empty">
        <t>Network operators SHOULD configure routers to advertise to each link network at least one subnet
           assignment prefix (a PIO with the A flag set). If a subnet assignment prefix is advertised, it MUST
           be 64-bits in length and an identical on-link prefix (a PIO with the L flag set) SHOULD also be
           advertised. If an on-link prefix is advertised and is covered by a subnet assignment prefix, the 
           on-link prefix MUST NOT be longer than 64-bits in length. If the specification for the particular
           link-type is based on an IID length that is not 64-bits, then a length consistent with the
           specification for the particular link-type MUST be used in the previous requirements instead of 
           64-bits.</t>

        <t>Otherwise, if a subnet assignment prefix is not advertised, network operators SHOULD configure 
           routers to advertise to each link network at least one on-link prefix (a PIO with the L flag set) 
           that is 64-bits in length or provide the same manually configured on-link prefix to each host on 
           the link network that is 64-bits in length. If the specification for the particular link-type is 
           based on an IID length that is not 64-bits, then a length consistent with the specification for 
           the particular link-type SHOULD be used in the previous recommendations instead of 64-bits.</t>  

        <t>Alternatively, network operators MAY configure point-to-point router links with 127-bit on-link
           prefixes and no subnet assignment prefix, see <xref target="RFC6164">RFC&nbsp;6164</xref>.</t>
      </list></t>

        <t>Appendix A. discusses in further detail the valid options for configuring IPv6 subnets</t>
  </section>

   <section anchor="Acknowledgments" title="Acknowledgments">
     <t>This document was inspired by a series of discussions on the 6MAN and the V6OPS working group mailing
        lists over a period of approximately two years, including discussions around the following drafts;
        <xref target="I-D.jinmei-6man-prefix-clarify">draft-jinmei-6man-prefix-clarify</xref>,
        <xref target="I-D.bourbaki-6man-classless-ipv6">draft-bourbaki-6man-classless-ipv6</xref>,
        <xref target="I-D.jaeggli-v6ops-indefensible-nd">draft-jaeggli-v6ops-indefensible-nd</xref>. 
        All basically revolving around the discussion of 
        <xref target="RFC4291bis">RFC&nbsp;4291bis</xref> and its advancement to Internet Standard.</t>

     <t>This document was produced using the xml2rfc tool <xref target="RFC2629"></xref>.</t>
   </section>

   <section anchor="IANA" title="IANA Considerations">
     <t>This memo includes no request to IANA.</t>
   </section>

   <section anchor="Security" title="Security Considerations">
     <t>This document clarifies exceptions to the 64-bit boundary in IPv6 addressing. These clarifications are
        not security related and therefore are not expected to introduce any new security considerations.</t>

     <t>However, the use of longer on-link prefixes effectively allows the uses of smaller subnets, making it
        more feasible to perform IPv6 address scans as discussed in <xref target="RFC7707">RFC&nbsp;7707</xref>
        and <xref target="RFC7721">RFC&nbsp;7721</xref>. On the other hand, the use of smaller subnets can be
        effective mitigation for neighbor cache exhaustion issues as discussed and 
        <xref target="RFC6164">RFC&nbsp;6164</xref> and <xref target="RFC6583">RFC&nbsp;6583</xref>. The 
        relative weights applied in this trade-off will vary from situation to situation.</t>
   </section>

 </middle>

 <!--  *****BACK MATTER ***** -->

 <back>

   <references title="Normative References">
     
     &RFC2119;
     &RFC3315;
     &RFC4861;
     &RFC4862;
     &RFC5942;
     &RFC6164;
     &RFC7608;
     &RFC8174;

     <reference anchor="RFC4291bis"
                target="https://tools.ietf.org/id/draft-ietf-6man-rfc4291bis">
       <front>
         <title>IP Version 6 Addressing Architecture</title>
         <author initials="R" surname="Hinden" fullname="Robert Hinden">
         <organization/>
         </author>
         <author initials="S" surname="Deering" fullname="Steve Deering">
         <organization/>
         </author>
         <date month="July" day="3" year="2017"/>       
       </front>
       <seriesInfo name="Internet-Draft" value="draft-ietf-6man-rfc4291bis-09"/>
       <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-6man-rfc4291bis-09.txt"/>
     </reference>
   
   </references>

   <references title="Informative References">

     &RFC2629;
     &RFC2373;
     &RFC6583;
     &RFC7421;
     &RFC7707;
     &RFC7721;
     &RFC8273;
     &I-D.jinmei-6man-prefix-clarify;
     &I-D.bourbaki-6man-classless-ipv6;
     &I-D.jaeggli-v6ops-indefensible-nd;

   </references>

   <section anchor="Subnets" title="Options for Configuring IPv6 Subnets">
      <t>As discussed in the Introduction, IPv6 subnets are defined by two separate parameters, acting
         independently, the subnet assignment prefix and the on-link prefix. It is possible to configure 
         these parameters with several different relationships to each other. These parameters are primarily
         advertised in ND RA messages by PIOs, with the A and L flags designating the purpose of the PIO. 
         However, on-link prefixes may also be manually configured.</t> 

      <t>SLAAC <xref target="RFC4862"></xref>, section 5.5.3 bullet d, validates subnet assignment prefixes
         against the IID length specified in separate link-type specific documents that are intended to be
         consistent with the standard 64-bit IID length. Currently, there are no link-type specific documents
         that specify a non-standard IID length. Therefore subnet assignment prefixes are effectively 
         required to be 64-bit in length. Further, to simplify the following discussion the possibility that
         a link-type specific document could specify a non-standard IID length is ignored.</t>

      <t>Whereas on-link prefixes have no such validation specified in IPv6 ND <xref target="RFC4861"></xref>,
         this is also confirmed in SLAAC, section 5.5.3 bullet d. Therefore on-link prefixes are not required
         to be 64-bits in length; they may have any length between 0 and 128 bits, inclusive. Nevertheless, 
         for consistency with the 64-bit boundary, 64-bit on-link prefixes lengths are recommended, except 
         for inter-router point-to-point links with 127-bit prefixes.</t>

      <t>The following are the valid options for configuring the two parameters that define an IPv6 subnet;</t>

      <t><list style="numbers">
        <t>Subnet assignment prefixes and identical on-link prefixes, or;</t>
        <t>Subnet assignment prefixes and shorter covering on-link prefixes, or;</t>
        <t>Only subnet assignment prefixes and no on-link prefixes or;</t>
        <t>Only on-link prefixes and no subnet assignment prefixes</t>
      </list></t>

      <t>Options 1 through 3, all define subnet assignment prefixes, designating the use of autonomous 
         address assignment, performed by SLAAC, and effectively requiring subnets that are 64-bits in 
         length.</t>
 
      <t>Option 1 is both the most frequently used and the only recommended option, except for inter-router
         point-to-point links with 127-bit prefixes, it has identical subnet assignment prefixes and on-link
         prefixes of 64-bits in length. The 64-bit subnets used for autonomous address assignment are
         considered to be on-link. This option is particularly recommended for networks that are made 
         available to the general public or networks that intend to connect general-purpose hosts or mobile
         devices.</t>

      <t>Option 2 is not recommended, but is still valid; it has on-link prefixes shorter than 64-bits, 
         between 0 and 63 bits, inclusive, but covering the subnet assignment prefixes included. The 64-bit
         subnets used for autonomous address assignment are considered on-link, along with other numerically
         adjacent subnets. However, these other numerically adjacent subnets are not used for autonomous
         address assignment unless additional separate 64-bit subnet assignment prefixes are also included.</t>

      <t>Option 3 is not recommended, but is still valid; it has subnet assignment prefixes but no on-link
         prefixes. Therefore the 64-bit subnets used for autonomous address assignment are not considered 
         on-link, and all traffic for the subnets, including host-to-host traffic, must be sent to a default
         router. See <xref target="RFC8273">RFC&nbsp;8273</xref> for an example of this option.</t>

      <t>Option 4 is not recommended, but is still valid; it has on-link prefixes but no subnet assignment
         prefixes, and therefore manually configured addresses or DHCPv6 assigned addresses must be used. 
         When DHCPv6 is used a DHCPv6 server, or DHCPv6 relay will also be needed on the link network. The 
         on-link prefixes may have any length between 0 and 128 bits, inclusive.  However, 64-bit on-link
         prefixes are recommended, except for inter-router point-to-point links with 127-bit prefixes. This
         option effectively results in subnets that are defined only by the on-link prefixes, and therefore
         the subnets may have any lengths, even though 64-bits is recommended.</t>

        <t>Furthermore, Option 4 essentially allows for the use of subnets longer than 64-bits. While this
         violates the spirit of the 64-bit boundary, technically it is not a violation of the 64-bit 
         boundary; manually configured addresses, DHCPv6 assigned addresses, and on-link determination are 
         all exceptions to the 64-bit boundary defined in this document. Nevertheless, for consistency with
         the 64-bit boundary, 64-bit on-link prefix lengths are recommended, effectively recommending 64-bit
         subnets, except for inter-router point-to-point links with 127-bit prefixes.</t>

      <t>There can be operationally valid reasons for configuring subnets longer than 64-bits, and when a
         subnet is solely configured by an on-link prefix, longer subnets are not prohibited.
         <xref target="RFC6164">RFC&nbsp;6164</xref> explicitly allows 127-bit prefixes for inter-router 
         point-to-point links. Hence the explicit exceptions included for it. Additionally,
         <xref target="RFC6583">RFC&nbsp;6583</xref> discusses "sizing subnets to reflect the number of
         addresses actually in use" as an operational mitigation for neighbor cache exhaustion issues.
         <xref target="RFC7421">RFC&nbsp;7421 section 3</xref> discusses these issues in more detail.
         Nevertheless, address conservation by itself is never considered a valid reason for configuring 
         subnets longer than 64-bits.  Accordingly, if a site needs additional subnets, additional 64-bit
         subnets are expected to be provided.</t>

      <t><list style="empty">
        <t>Note: some hosts do not provide a mechanism for manually configuring an address on an interface, 
           and other hosts do not implement DHCPv6. Hosts that implement neither and only implement SLAAC 
           do exist and do not function on networks configured based on Option 4.</t>
      </list></t>

      <t>It possible to simultaneously configure multiple different subnets, associated with a single link
         network, each based on the same or different options described above. For example, there could be
         two different subnets based on Option 1 and one based on Option 4, all associated the same link
         network.</t>

      <t>Logically there is another option that could define a subnet, "subnet assignment prefixes and 
         longer covered on-link prefixes," but it does not result in an operationally valid subnet. While 
         SLAAC and ND accept this configuration, it is particularly problematic and is considered an invalid
         configuration by the detailed operational guidance provided above. It would have on-link prefixes
         longer than 64-bits, between 65 and 128 bits, inclusive, that would be covered by an included subnet
         assignment prefix. Its use would result in the 64-bit subnet used for autonomous address assignment
         being inconsistently considered on-link for some address and not on-link for other addresses within
         the same subnet. This inconsistency creates a performance differential between addresses within the
         same subnet, which is inefficient and difficult to troubleshoot.</t>
   </section>
 
 </back>
</rfc>
