<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes"?>
<rfc category="std" docName="draft-ietf-softwire-multicast-prefix-option-07"
     ipr="trust200902">
  <!-- ***** FRONT MATTER ***** -->

  <front>
    <title abbrev="IPv4/IPv6 Multicast Prefixes Option">DHCPv6 Option for
    IPv4-Embedded Multicast and Unicast IPv6 Prefixes</title>

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

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

          <city>Rennes</city>

          <code>35000</code>

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

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

    <author fullname="Jacni Qin" initials="J." surname="Qin">
      <organization>Cisco</organization>

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

          <city></city>

          <country>China</country>
        </postal>

        <phone></phone>

        <email>jacni@jacni.com</email>
      </address>
    </author>

    <author fullname="Tina Tsou" initials="T." surname="Tsou">
      <organization>Huawei Technologies (USA)</organization>

      <address>
        <postal>
          <street>2330 Central Expressway</street>

          <city>Santa Clara</city>

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

        <phone>+1 408 330 4424</phone>

        <email>tina.tsou.zouting@huawei.com</email>
      </address>
    </author>

    <author fullname="Xiaohong Deng" initials="X." surname="Deng">
      <organization>APNIC</organization>

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

          <city></city>

          <country>Australia</country>
        </postal>

        <email>dxhbupt@gmail.com</email>
      </address>
    </author>

    <date day="15" month="September" year="2014" />

    <area>Internet</area>

    <workgroup>Softwire WG</workgroup>

    <keyword>PREFIX64, SSM, ASM, Prefix Discovery, IPv4-Converted IPv6
    Addresses</keyword>

    <abstract>
      <t>This document defines Dynamic Host Configuration Protocol version 6
      (DHCPv6) Option for multicast transition solutions, aiming to convey the
      IPv6 prefixes to be used to build unicast and multicast IPv4-embedded
      IPv6 addresses.</t>
    </abstract>
  </front>

  <!-- ***** MIDDLE MATTER ***** -->

  <middle>
    <section title="Introduction">
      <t>Several solutions (e.g., <xref
      target="I-D.ietf-softwire-dslite-multicast"></xref>) are proposed for
      the delivery of multicast services in the context of transition to IPv6.
      Even if these solutions may have different applicable use cases, they
      all use specific IPv6 addresses to embed IPv4 addresses, for both
      multicast group, and multicast source addresses.</t>

      <t>This document defines a DHCPv6 option <xref target="RFC3315"></xref>
      to convey the IPv6 prefixes to be used for constructing these
      IPv4-embedded IPv6 addresses.</t>

      <t>This option can be in particular used in the context of DS-Lite <xref
      target="RFC6333"></xref>, Stateless A+P <xref target="RFC6346"></xref>
      and other IPv4-IPv6 transition techniques.</t>

      <section 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>
      </section>
    </section>

    <section title="Terminology">
      <t>This document makes use of the following terms:</t>

      <t><list style="symbols">
          <t>IPv4-embedded IPv6 address: is an IPv6 address which embeds a 32
          bit-encoded IPv4 address <xref target="RFC6052"></xref>. An
          IPv4-embedded IPv6 address can be a unicast or a multicast
          address.</t>

          <t>PREFIX64: is an IPv6 prefix used for synthesizing IPv4-embedded
          IPv6 addresses. A PREFIX64 can be of unicast or multicast.<list
              style="empty">
              <t>Note: "64" is used as an abbreviation for IPv6-IPv4
              interconnection.</t>
            </list></t>

          <t>ASM_PREFIX64: is a multicast PREFIX64 which belongs to the
          Any-Source Multicast (ASM) range.</t>

          <t>SSM_PREFIX64: is a multicast PREFIX64 which belongs to the
          Source-Specific Multicast (SSM, <xref target="RFC4607"></xref>)
          range.</t>

          <t>U_PREFIX64: is a unicast PREFIX64 for building the IPv4-embedded
          IPv6 addresses of multicast sources in SSM mode.</t>
        </list></t>
    </section>

    <section title="PREFIX64 DHCPv6 Option">
      <t>OPTION_V6_PREFIX64 (<xref target="option"></xref>) conveys the IPv6
      prefix(es) to be used (e.g., by a mB4 <xref
      target="I-D.ietf-softwire-dslite-multicast"></xref>) to synthesize
      IPv4-embbedded IPv6 addresses.</t>

      <figure align="center" anchor="option"
              title="DHCPv6 Option Format for PREFIX64">
        <artwork align="center"><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        OPTION_V6_PREFIX64     |         option-length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  asm-length   |                                               |
+-+-+-+-+-+-+-+-+                                               :
:                  ASM_PREFIX64 (Variable)                      :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  ssm-length   |                                               |
+-+-+-+-+-+-+-+-+                                               :
:                  SSM_PREFIX64 (Variable)                      :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unicast-length|                                               |
+-+-+-+-+-+-+-+-+                                               :
:                   U_PREFIX64 (Variable)                       :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

      <t>The fields of the option shown in <xref target="option"></xref> are
      as follows:</t>

      <t><list style="hanging">
          <t hangText="option-code:">OPTION_V6_PREFIX64 (see <xref
          target="IANA"></xref>).</t>

          <t hangText="option-length:">length of the PREFIX64 option.</t>

          <t hangText="asm-length:">the prefix-length for the ASM
          IPv4-embedded prefix, as an 8-bit unsigned integer (0 to 128). This
          field represents the number of valid leading bits in the prefix.</t>

          <t hangText="ASM_PREFIX64:">this field identifies the IPv6 multicast
          prefix to be used to synthesize the IPv4-embedded IPv6 addresses of
          the multicast groups in the ASM mode. It is a variable size field
          with the length of the field defined by the asm-length field and is
          rounded up to the nearest octet boundary. In such case any
          additional padding bits must be zeroed. The conveyed multicast IPv6
          prefix MUST belong to the ASM range. This prefix is likely to be a
          /96.</t>

          <t hangText="ssm-length:">the prefix-length for the SSM
          IPv4-embedded prefix, as an 8-bit unsigned integer (0 to 128). This
          field represents the number of valid leading bits in the prefix.</t>

          <t hangText="SSM_PREFIX64:">this field identifies the IPv6 multicast
          prefix to be used to synthesize the IPv4-embedded IPv6 addresses of
          the multicast groups in the SSM mode. It is a variable size field
          with the length of the field defined by the ssm-length field and is
          rounded up to the nearest octet boundary. In such case any
          additional padding bits must be zeroed. The conveyed multicast IPv6
          prefix MUST belong to the SSM range. This prefix is likely to be a
          /96.</t>

          <t hangText="unicast-length:">the prefix-length for the IPv6 unicast
          prefix to be used to synthesize the IPv4-embedded IPv6 addresses of
          the multicast sources, as an 8-bit unsigned integer (0 to 128). This
          field represents the number of valid leading bits in the prefix.</t>

          <t hangText="U_PREFIX64:">this field identifies the IPv6 unicast
          prefix to be used in SSM mode for constructing the IPv4-embedded
          IPv6 addresses representing the IPv4 multicast sources in the IPv6
          domain. U_PREFIX64 may also be used to extract the IPv4 address from
          the received multicast data flows. It is a variable size field with
          the length of the field defined by the unicast-length field and is
          rounded up to the nearest octet boundary. In such case any
          additional padding bits must be zeroed. The address mapping MUST
          follow the guidelines documented in <xref
          target="RFC6052"></xref>.</t>
        </list></t>

      <t></t>
    </section>

    <section title="Configuration Guidelines for the Server">
      <t>DHCP servers supporting OPTION_V6_PREFIX64 should be configured with
      U_PREFIX64 and at least one ASM_PREFIX64 or one SSM_PREFIX64.</t>

      <t>When ASM_PREFIX64 and SSM_PREFIX64 are configured, the length of
      these prefixes must be /96.</t>

      <t>Both ASM_PREFIX64 and SSM_PREFIX64 may be configured and therefore be
      returned to a requesting DHCP client; it is deployment-specific. In
      particular, if both SSM and ASM modes are supported, ASM_PREFIX64 and
      SSM_PREFIX64 prefixes must be configured. For SSM deployments, both
      SSM_PREFIX64 and U_PREFIX64 should be configured.</t>
    </section>

    <section title="DHCPv6 Client Behavior">
      <t>To retrieve the IPv6 prefixes that will be used to synthesize unicast
      and multicast IPv4-embedded IPv6 addresses, the DHCPv6 client MUST
      include OPTION_V6_PREFIX64 in its OPTION_ORO. If the DHCPv6 client
      receives more than one OPTION_V6_PREFIX64 option from the DHCPv6
      server:<list style="symbols">
          <t>If all the enclosed IPv4-embedded IPv6 multicast prefixes have
          the same scope, the first instance of the option MUST be used.</t>

          <t>If each enclosed IPv4-embedded IPv6 multicast prefix has a
          distinct scope, the client MUST select the appropriate IPv4-embedded
          IPv6 multicast prefix having a scope matching the IPv4 multicast
          address used to synthesize an IPv4-embedded IPv6 multicast
          address.</t>
        </list></t>

      <t>If asm-length, ssm-length and unicast-length fields are all set to 0,
      the DHCPv6 client MUST behave as if OPTION_V6_PREFIX64 had not been
      received in the response received from the DHCPv6 server.</t>

      <t>If the asm-length field is non-null, the IPv6 prefix identified by
      ASM_PREFIX64 is used to synthesize IPv4-embedded IPv6 multicast
      addresses in the ASM range. This is achieved by concatenating the
      ASM_PREFIX64 and the IPv4 multicast address; the Pv4 multicast address
      is inserted in the last 32 bits of the IPv4-embedded IPv6 multicast
      address.</t>

      <t>If the ssm-length field is non-null, the IPv6 prefix identified by
      SSM_PREFIX64 is used to synthesize IPv4-embedded IPv6 multicast
      addresses in the SSM range. This is achieved by concatenating the
      SSM_PREFIX64 and the IPv4 multicast address; the Pv4 multicast address
      is inserted in the last 32 bits of the IPv4-embedded IPv6 multicast
      address.</t>

      <t>If the unicast-length field is non-null, the IPv6 prefix identified
      by U_PREFIX64 field is used to synthesize IPv4-embedded IPv6 unicast
      addresses as specified in <xref target="RFC6052"></xref>.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations documented in <xref
      target="RFC3315"></xref> and <xref target="RFC6052"></xref> are to be
      considered.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Particular thanks to C. Jacquenet, S. Venaas, B. Volz and T. Taylor
      for their review.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>Authors of this document request IANA to assign a new DHCPv6 option
      in the registry maintained in
      http://www.iana.org/assignments/dhcpv6-parameters:</t>

      <t><figure>
          <artwork><![CDATA[                                Option Name    Value
                             ----------------- -----
                            OPTION_V6_PREFIX64 TBA]]></artwork>
        </figure></t>

      <t></t>
    </section>
  </middle>

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

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

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

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

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

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-softwire-dslite-multicast'?>

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

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