<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="bcp" docName="draft-ietf-v6ops-cidr-prefix-03"
     ipr="trust200902" updates="">
  <front>
    <title abbrev="">IPv6 Prefix Length Recommendation for Forwarding</title>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>France Telecom</organization>

      <address>
        <postal>
          <street></street>

          <city>Rennes</city>

          <region></region>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <author fullname="Alexandre Petrescu" initials="A." surname="Petrescu">
      <organization>CEA, LIST</organization>

      <address>
        <postal>
          <street>CEA Saclay</street>

          <city>Gif-sur-Yvette</city>

          <region>Ile-de-France</region>

          <code>91190</code>

          <country>France</country>
        </postal>

        <phone>+33169089223</phone>

        <email>alexandre.petrescu@cea.fr</email>
      </address>
    </author>

    <author fullname="Fred Baker" initials="F.J." surname="Baker">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street></street>

          <city>Santa Barbara</city>

          <code>93117</code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>fred@cisco.com</email>
      </address>
    </author>

    <date day="" month="" year="" />

    <workgroup>v6ops Working Group</workgroup>

    <abstract>
      <t>IPv6 prefix length, as in IPv4, is a parameter conveyed and used in
      IPv6 routing and forwarding processes in accordance with the Classless
      Inter-domain Routing (CIDR) architecture. The length of an IPv6 prefix
      may be any number from zero to 128, although subnets using stateless
      address autoconfiguration (SLAAC) for address allocation conventionally
      use a /64 prefix. Hardware and software implementations of routing and
      forwarding should therefore impose no rules on prefix length, but
      implement longest-match-first on prefixes of any valid length.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>Discussions on the 64-bit boundary in IPv6 addressing (<xref
      target="RFC7421"></xref>) revealed a need for a clear recommendation on
      which bits must be used by forwarding decision-making processes.
      However, such a recommendation was out of scope for that document.</t>

      <t>Although Section 2.5 of <xref target="RFC4291"></xref> states "IPv6
      unicast addresses are aggregatable with prefixes of arbitrary
      bit-length, similar to IPv4 addresses under Classless Inter-Domain
      Routing" (CIDR, <xref target="RFC4632"></xref>), there is still a
      misinterpretation that IPv6 prefixes can be either /127 (<xref
      target="RFC6164"></xref>) or any length up to /64. This
      misinterpretation is mainly induced by the 64-bit boundary in IPv6
      addressing.</t>

      <t>As discussed in <xref target="RFC7421"></xref>, "the notion of a /64
      boundary in the address was introduced after the initial design of IPv6,
      following a period when it was expected to be at /80". This evolution of
      the IPv6 Addressing architecture, resulting in <xref
      target="RFC4291"></xref>, and followed with the addition of /127
      prefixes for point-to-point links, clearly demonstrates the intent for
      future IPv6 developments to have the flexibility to change this part of
      the architecture when justified.</t>

      <t>It is fundamental not to link routing and forwarding to the IPv6
      prefix/address semantics <xref target="RFC4291"></xref>. This document
      includes a recommendation for that aim.</t>

      <t>Forwarding decisions rely on the longest-match-first algorithm, which
      stipulates that, given a choice between two prefixes in the Forwarding
      Information Base (FIB) of different length that match the destination
      address in each bit up to their respective lengths, the longer prefix is
      used. This document's recommendation (<xref target="reco"></xref>) is
      that IPv6 forwarding must follow the longest-match-first rule,
      regardless of prefix length, unless some overriding policy is
      configured.</t>

      <t>This recommendation does not conflict with the 64-bit boundary for
      some IPv6 stateless address autoconfiguration (SLAAC, <xref
      target="RFC4862"></xref>) based schemes such as <xref
      target="RFC2464"></xref>. Indeed, <xref target="RFC7421"></xref>
      clarifies this is only a parameter in the SLAAC process and other longer
      prefix lengths are in operational use (e.g., either manually configured
      or based upon DHCPv6 <xref target="RFC3315"></xref>).</t>

      <t>A historical background of CIDR is documented in <xref
      target="RFC1380"></xref> and Section 2 of <xref
      target="RFC4632"></xref>.</t>
    </section>

    <section anchor="reco" title="Recommendation">
      <t>IPv6 implementations MUST conform to the rules specified in Section
      5.1 of <xref target="RFC4632"></xref>.</t>

      <t>Decision-making processes for forwarding MUST NOT restrict the length
      of IPv6 prefixes by design. In particular, forwarding processes MUST be
      designed to process prefixes of any length up to /128, by increments of
      1.</t>

      <t>Policies can be enforced to restrict the length of IP prefixes
      advertised within a given domain or in a given interconnection link.
      These policies are deployment-specific and/or driven by administrative
      (interconnection) considerations.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document does not require any action from IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document does not introduce security issues in addition to what
      is discussed in <xref target="RFC4291"></xref>.</t>

      <t>IPv6 security issues, including operational ones, are discussed in
      <xref target="RFC4942"></xref> and <xref
      target="I-D.ietf-opsec-v6"></xref>.</t>
    </section>

    <section title="Acknowledgements">
      <t>Thanks to Eric Vyncke, Christian Jacquenet, Brian Carpenter, Fernando
      Gont, Tatuya Jinmei, Lorenzo Colitti, Ross Chandler, David Farmer, David
      Black, and Barry Leiba for their contributions and comments.</t>

      <t>Special thanks to Randy Bush for his support.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.4291'?>

      <?rfc include='reference.RFC.4632'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.7421'?>

      <?rfc include='reference.RFC.2464'?>

      <?rfc include='reference.RFC.4862'?>

      <?rfc include='reference.RFC.1380'?>

      <?rfc include='reference.RFC.6164'?>

      <?rfc include='reference.RFC.3315'?>

      <?rfc include='reference.RFC.4942'?>

      <?rfc include='reference.I-D.ietf-opsec-v6'?>
    </references>
  </back>
</rfc>
