<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2131 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.2131.xml">
<!ENTITY RFC2865 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY RFC3306 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.3306.xml">
<!ENTITY RFC3315 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY RFC4818 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.4818.xml">
<!ENTITY RFC4607 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.4607.xml">
<!ENTITY RFC5777 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.5777.xml">
<!ENTITY RFC6052 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6052.xml">
<!ENTITY RFC6333 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6333.xml">
<!ENTITY RFC6334 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6334.xml">
<!ENTITY RFC6519 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6519.xml">
<!ENTITY RFC6733 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6733.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-zhou-dime-4over6-provisioning-05"
     ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: trust200902, noModificationTrust200902,
noDerivativesTrust200902
     pre5378Trust200902
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

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

  <front>
    <!-- The abbreviated title is used in the page header - it is only
necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="AVPs For 4over6 CE Provisioning">Attribute-Value Pairs For
    Provisioning Customer Equipment Supporting IPv4-Over-IPv6 Transitional
    Solutions</title>

    <author fullname="Cathy Zhou" initials="C." surname="Zhou">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Bantian, Longgang District</street>

          <city>Shenzhen</city>

          <code>518129</code>

          <country>P.R. China</country>
        </postal>

        <phone></phone>

        <email>cathy.zhou@huawei.com</email>
      </address>
    </author>

    <author fullname="T. Taylor" initials="T." surname="Taylor">
      <organization>PT Taylor Consulting</organization>

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

          <city>Ottawa</city>

          <region></region>

          <code></code>

          <country>Canada</country>
        </postal>

        <phone></phone>

        <email>tom.taylor.stds@gmail.com</email>
      </address>
    </author>

    <author fullname="Qiong Sun" initials="Q." surname="Sun">
      <organization>China Telecom</organization>

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

          <city></city>

          <region></region>

          <code></code>

          <country>P.R.China</country>
        </postal>

        <phone>86 10 58552936</phone>

        <email>sunqiong@ctbri.com.cn</email>
      </address>
    </author>

    <author fullname="M. 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>

        <phone></phone>

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

    <date year="2014" />

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>DS-Lite</keyword>

    <keyword>Light-Weight 4over6</keyword>

    <keyword>MAP-E</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>During the transition from IPv4 to IPv6, customer equipment may have to
      support one of the various transition methods that have been defined for
      carrying IPv4 packets over IPv6. This document enumerates the information
      that needs to be provisioned on a customer edge router to support a list
      of transition techniques based on tunneling IPv4 in IPv6, with a view to
      defining reusable components for a reasonable transition path between
      these techniques. To the extent that the provisioning is done dynamically,
      AAA support is needed to provide the information to the network server
      responsible for passing the information to the customer equipment. This
      document specifies Diameter (RFC 6733) attribute-value pairs to be used
      for that purpose.</t> 
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
    
      <t>A number of transition technologies have been defined to
      allow IPv4 packets to pass between hosts and IPv4 networks over an
      intervening IPv6 network while minimizing the number of public IPv4
      addresses that need to be consumed by the hosts. Different operators
      will deploy different technologies, and sometimes one operator will use
      more than one technology, depending on what is supported by the
      available equipment and upon other factors both technical and
      economic.</t>

      <t>Each technique requires the provisioning of some subscriber-specific
      information on the customer edge device. The provisioning may be by DHCPv6
      <xref target="RFC3315"/> or by some other method. This document is
      indifferent to the specific provisioning technique used, but assumes a
      deployment in which that information is managed by AAA (Authentication,
      Authorization, and Accounting) servers. It further assumes that this
      information is delivered to intermediate network nodes for onward
      provisioning using the Diameter protocol <xref
      target="RFC6733"></xref>.</t> 

      <t>As described below, in the particular case where the Light Weight
      IPv4 Over IPv6 (LW4o6) <xref target="I-D.ietf-softwire-lw4over6"></xref>
      transition method has been deployed, per-subscriber-site information
      almost identical to that passed to the subscriber site <xref
      target="I-D.ietf-softwire-map-dhcp"></xref> or collected from it <xref
      target="I-D.fsc-softwire-dhcp4o6-saddr-opt"></xref> also needs to be
      delivered to the border router serving that site. The Diameter protocol
      may be used for this purpose too.</t>

      <t>This document analyzes the information required to configure the
      customer edge equipment for the following set of transition methods:
      <list style="symbols">
        <t>Dual-Stack Lite (DS-Lite) <xref target="RFC6333"></xref>,</t>

        <t>Light Weight IPv4 Over IPv6 (LW4over6) <xref
        target="I-D.ietf-softwire-lw4over6"></xref>, and</t>

        <t>Mapping of Address and Port with Encapsulation (MAP-E) <xref
        target="I-D.ietf-softwire-map"></xref>.</t>
      </list>
      </t>

      <t><xref target="I-D.softwire-dslite-multicast"></xref> specifies a
      generic solution for delivery of IPv4 multicast services to IPv4 clients
      over an IPv6 multicast network. The solution was developed with DS-Lite
      in mind but it is however not limited to DS-Lite. As such, it applies
      also for LW4over6 and MAP-E. This document analyzes the information
      required to configure the customer edge equipment for the support of
      multicast in the context of DS-Lite, MAP, and LW4over6 in
      particular.</t>

      <t>On the basis of those analyses it specifies a number of
      attribute-value pairs (AVPs) to allow the necessary
      subscriber-site-specific configuration information to be carried in
      Diameter.</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"></xref>.</t>

        <t>The abbreviation "CE" denotes the equipment at the customer edge
        that terminates the customer end of an IPv6 transitional tunnel. This
        will usually be a router, but could be a host directly connected to
        the network.</t>

        <t>The term "tunnel source address" is used to denote the IPv6 source
        address used in the outer header of packets sent from the CE through
        an LW4over6 transitional tunnel to the border router.</t>
        
      </section>
    </section>

    <section anchor="reqts"
             title="Description of the Parameters Required By Each Transition
Method">

      <t>This section reviews the parameters that need to be provisioned for
      each of the transition methods listed above. This enumeration provides
      the justification for the AVPs defined in the next section.</t>

      <t>A means is required to indicate which transition method(s) a given
      subscriber is allowed to use. The approach taken in this document is to
      specify grouped AVPs specific to LW4over6 and MAP-E. The operator can
      control which of these two transition methods a given subscriber uses by
      ensuring that AAA passes only the grouped AVP relevant to that method. A
      grouped AVP is unnecessary for Dual-Stack Lite, since (as the next
      section indicates) AAA has to provide only one parameter. Hence the
      absence of either of the grouped AVPs indicates that the subscriber
      equipment will use Dual-Stack Lite. Provisioning of multicast is an 
      orthogonal activity, since it is independent of the transition method.</t>
      
      <section anchor="dslite" title="Parameters For Dual-Stack Lite (DS-Lite)">
      
        <t>DS-Lite is documented in <xref target="RFC6333"></xref>.
        The Basic Bridging BroadBand (B4) element at the customer premises
        needs to be provisioned with the IPv6 address of the AFTR (border
        router). Optionally, it could also be configured with the IPv4 address
        of the B4 interface facing the tunnel, where the default value in the
        absence of provisioning is 192.0.0.2 and valid values are 192.0.0.2
        through 192.0.0.7. Provisioning this information through AAA is
        problematic because it is most likely used in a case where multiple B4
        instances occupy the same device. This document therefore assumes that
        the B4 interface address is determined by other means
        (implementation-dependent or static assignment).</t>
       
      </section>

      <!-- dslite -->

      <section anchor="lw4o6" title="Light Weight IPv4 Over IPv6 (LW4over6)">
      
        <t>Light Weight IPv4 Over IPv6 (LW4over6) is documented in <xref
        target="I-D.ietf-softwire-lw4over6"></xref>. LW4over6 requires four
        items to be provisioned to the customer equipment: 
        <list style="symbols">
        
          <t>IPv6 address of the border router.</t>

          <t>IPv6 prefix used by the CE to construct the tunnel source
          address. In the terminology of <xref
          target="I-D.ietf-softwire-lw4over6"></xref>, this is the IPv6
          Binding Prefix.</t>

          <t>an IPv4 address to be used on the external side of the CE;
          and</t>

          <t>if the IPv4 address is shared, a specification of the port set
          the subscriber site is allowed to use. Please see the description
          in <xref target="pset"/>. For LW4over6, all three of the parameters
          'a', 'k', and PSID described in that section are required. The
          default value of the offset parameter 'a' is 0.</t> 
            
        </list>
        </t>

        <t>As discussed in Section 4 of <xref
        target="I-D.ietf-softwire-lw4over6"></xref>, it is necessary to
        synchronize this configuration with corresponding per-subscriber
        configuration at the border router. The border router information
        consists of the same public IPv4 address and port set parameters that
        are passed to the CE, bound together with the full /128 IPv6 address
        (not just the Binding Prefix) configured as the tunnel source address
        at the CE.</t>

        <t><xref target="I-D.fsc-softwire-dhcp4o6-saddr-opt"></xref> proposes
        a means whereby a DHCPv6 server can influence the choice of this
        address and collect it from the CE. Depending on the provisioning
        architecture deployed in a given network, it is possible that the
        tunnel source address is passed to AAA as an intermediate step before
        the binding information is passed on to the border router.</t>

      </section>

      <!-- lw4o6 -->
      
      <section anchor="pset" title="Port Set Specification">

        <t>When an external IPv4 address is shared, LW4over6 and MAP-E restrict
        the CE to use of a subset of all available ports on the external side.
        Both transition methods use the the algorithm defined in Appendix B of
        <xref target="I-D.ietf-softwire-map"> </xref> to derive the values of
        the port numbers in the port set. This algorithm features three
        parameters, describing the positioning and value of the Port Set
        Identifier (PSID) within each port number of the generated set: 
        <list style="symbols"> 
          <t>an offset 'a' from the beginning of the port number to the
          first bit of the PSID;</t>
          
          <t>the length 'k' of the PSID within the port number,
          in bits; and</t>
          
          <t>the value of the PSID itself.</t>
          
        </list>
        </t>

      </section>  <!-- pset -->

      <section anchor="map-e"
               title="Mapping of Address and Port with Encapsulation (MAP-E)">
               
        <t>Mapping of Address and Port with Encapsulation (MAP-E) is described
        in <xref target="I-D.ietf-softwire-map"></xref>. MAP-E requires the
        provisioning of the following per-subscriber information at the
        customer edge device: 
        <list style="symbols">
          <t>the IPv6 address of one or more border routers, or in MAP-E
          terminology, MAP border relays.</t>

          <t>the unique End-user IPv6 prefix for the customer edge
          device. This may be provided by AAA or acquired by other means.</t>

          <t>the Basic Mapping Rule for the customer edge device. This
          includes the following parameters: 
          <list style="symbols">
          
            <t>the rule IPv6 prefix and length;</t>

            <t>the rule IPv4 prefix and length. A prefix length of 0
            indicates that the entire IPv4 address or prefix is coded in the
            Extended Address (EA) bits of the End-user IPv6 prefix rather
            than in the mapping rule.</t> 

            <t>the number of EA bits included in the End-user IPv6
            prefix;</t> 

            <t>port set parameters giving the set of ports the CE is allowed
            to use when the IPv4 address is shared. Please see the
            description of these parameters in  <xref target="pset"/>. At a
            minimum, the offset parameter 'a' is required. For MAP-E this
            has the default value 6. The parameters 'k' and PSID are needed
            if they cannot be derived from the mapping rule information and
            the EA bits (final case of Section 5.2 of <xref 
            target="I-D.ietf-softwire-map"/>).</t> 
            
          </list>
          </t>

          <t>whether the device is to operate in mesh or hub-and-spoke
          mode;</t>

          <t>in mesh mode only, zero or more Forwarding Mapping Rules,
          described by the same set of parameters as the Basic Mapping
          Rule;</t>
          
        </list>
        </t>

        <t>As indicated in Section 5, bullet 1 of the MAP-E document, a MAP CE
        can be provisioned with multiple End-user IPv6 prefixes, each
        associated with its own Basic Mapping Rule. This does not change the
        basic requirement for representation of the corresponding information
        in the form of Diameter AVPs, but adds a potential requirement for
        multiple instances of this information to be present in the
        Diameter message, differing in the value of the End-user IPv6
        prefix (in contrast to the Forward Mapping Rule instances).</t>

        <t>The border router needs to be configured with the superset of the
        Mapping Rules passed to the customer sites it serves. Since this
        requirement does not require direct coordination with CE configuration
        in the way LW4over6 does, it is out of scope of the present
        document. However, the AVPs defined here may be useful if a
        separate Diameter application is used to configure the border
        router. </t>

      </section>

      <!-- map-e -->

      <section anchor="multiparm" title="Parameters For Multicast">

        <t><xref target="I-D.softwire-dslite-multicast"></xref> specifies a
        generic solution for delivery of IPv4 multicast services to IPv4 clients
        over an IPv6 multicast network. The solution can be in particular
        deployed in a DS-Lite context, but is also adaptable to LW4over6
        and MAP-E. <xref 
        target="I-D.ietf-softwire-multicast-prefix-option"></xref> specifies
        how DHCPv6 <xref target="RFC3315"/> can be used to provision 
        multicast-related information, particularly:
        <list style="symbols">
        
          <t>ASM_mPrefix64: the IPv6 multicast prefix to be used to
          synthesize the IPv4-embedded IPv6 addresses of the multicast
          groups in the ASM mode.</t>

          <t>SSM_mPrefix64: the IPv6 multicast prefix to be used to
          synthesize the IPv4-embedded IPv6 addresses of the multicast
          groups in the SSM mode.</t>

          <t>uPrefix64: 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. uPrefix64 may also be
          used to extract the IPv4 address from the received multicast data
          flows. The address mapping follows the guidelines documented in 
          <xref target="RFC6052"/>.</t>
          
        </list>
        </t>

      </section>  <!-- multiparm -->

      <section anchor="sumreq" title="Summary and Discussion">
      
        <t>It appears that two items are common to the different transition
        methods and the corresponding AVPs to carry them can be reused: 
        <list style="symbols">
        
          <t>a representation of the IPv6 address of a border router;</t>
          
          <t>A set of prefixes for delivery of multicast services to IPv4
          clients over an IPv6 multicast network.</t>
          
        </list>
        </t>

        <t><xref target="RFC6519"></xref> sets a precedent for representation
        of the IPv6 address of a border router as an FQDN. This can be
        dereferenced to one or more IP addresses by the provisioning system
        before being passed to the customer equipment, or left as an FQDN as
        it as in <xref target="RFC6334"></xref>.</t>

        <t>The remaining requirements are transition-method-specific: 
        <list style="symbols">
        
          <t>for LW4over6, a representation of a binding between (1) either the
          IPv6 Binding Prefix or a full /128 IPv6 address, (2) a public IPv4
          address, and (3) (if the IPv4 address is shared) a port set
          identifier;</t> 
          
          <t>for MAP-E, a representation of the unique End-user IPv6 prefix for
          the CE, if not provided by other means;</t> 

          <t>for MAP-E, a representation of a Mapping Rule;</t>

          <t>for MAP-E, an indication of whether mesh mode or hub-and-spoke
          mode is to be used.</t>

        </list></t>
      </section>

      <!-- sumreq -->
    </section>

    <!-- reqts -->

    <section anchor="AVPdefs" title="Attribute-Value Pair Definitions">
    
      <t>This section provides the specifications for the AVPs needed to meet
      the requirements summarized in <xref target="sumreq"></xref>. Within the
      context of their usage, all of these AVPs MUST have the M bit set and
      the V bit cleared.</t>
      
      <section anchor="IPplen" title="IP-Prefix-Length AVP">

        <t>The IP-Prefix-Length AVP (AVP code TBD00) is of type Unsignedint. It 
        provides the length of an IPv4 or IPv6 prefix. Valid values are from 0
        to 32 for IPv4, and from 0 to 128 for IPv6. Tighter limits are given
        below for particular contexts of use of this AVP.
        </t>

      </section>  <!-- IPplen -->
      
      <section anchor="BRaddr" title="Border-Router-Name AVP">
      
        <t>Following on the precedent set by <xref target="RFC6334"></xref>
        and <xref target="RFC6519"></xref>, this document identifies a border
        router using an FQDN rather than an address. The Border-Router-Name
        AVP (AVP Code TBD01) is of type OctetString. The rules for encoding
        the FQDN are the same as those for the FQDN variant of the derived
        type DiameterIdentity (Section 4.3.1 of <xref
        target="RFC6733"></xref>).</t>
        
      </section>   <!-- BRaddr -->

      <section anchor="DSLiteMul" title="64-Multicast-Attributes AVP">
      
        <t>The 64-Multicast-Attributes AVP (AVP Code TBD02) is of type Grouped.
        It contains the multicast-related prefixes needed for providing
        IPv4 multicast over IPv6 using DS-Lite, MAP-E, or LW4over6, as specified
        in <xref target="I-D.softwire-dslite-multicast"></xref>. </t> 

        <t>The syntax is shown in <xref target="DSLMul_AVP"></xref>.</t>

        <figure anchor="DSLMul_AVP" title="64-Multicast-Attributes AVP">
          <artwork><![CDATA[
        64-Multicast-Attributes  ::= < AVP Header: TBD02 >
                       [ ASM-Prefix64 ]
                       [ SSM-Prefix64 ]
                       [ Delegated-IPv6-Prefix ]
                      *[ AVP ]
          ]]></artwork>
        </figure>

        <t>If either ASM-Prefix64 or SSM-Prefix64 or both are present, 
        Delegated-IPv6-Prefix MUST also be present.</t> 

        <section anchor="ASM_Pref64" title="ASM-Prefix64 AVP">
        
          <t>The ASM-Prefix64 AVP (AVP Code TBD03) conveys the value of
          ASM_mPrefix64 as identified in <xref target="dslite"/> and specified
          in <xref target="I-D.softwire-dslite-multicast"/>. The ASM-Prefix64
          AVP is of type Grouped, as shown in <xref target="fig_ASMPfx"/>.</t> 

          <figure anchor="fig_ASMPfx" title="ASM-Prefix64 AVP">
            <artwork><![CDATA[
          ASM-Prefix64  ::= < AVP Header: TBD03 >
                         { IP-Address }
                         { IP-Prefix-Length }
                        *[ AVP ]
            ]]></artwork>
          </figure>
          
          <t>IP-Address (AVP code 518) is defined in <xref target="RFC5777"/>
          and is of type Address. Within the ASM-Prefix64 AVP, it provides the
          value of an IPv6 prefix. The AddressType field in IP-Address MUST have
          value 2 (IPv6). The conveyed multicast IPv6 prefix MUST belong to the
          ASM range. Unused bits in IP-Address beyond the actual prefix MUST be
          set to zeroes by the sender and ignored by the receiver.</t> 

          <t>The IP-Prefix-Length AVP provides the actual length of the prefix
          contained in the IP-Address AVP. Within the ASM-Prefix64 AVP, valid
          values of the IP-Prefix-Length AVP are from 24 to 96.</t> 

        </section>  <!-- ASM_Pref64 -->
        
        <section anchor="SSM_Pref64" title="SSM-Prefix64 AVP">

          <t>The SSM-Prefix64 AVP (AVP Code TBD04) conveys the value of
          SSM_mPrefix64 as identified in <xref target="dslite"/> and specified
          in <xref target="I-D.softwire-dslite-multicast"/>.  The SSM-Prefix64
          AVP is of type Grouped, as shown in <xref target="fig_SSMPfx"/>.</t> 

          <figure anchor="fig_SSMPfx" title="SSM-Prefix64 AVP">
            <artwork><![CDATA[
          SSM-Prefix64  ::= < AVP Header: TBD04 >
                         { IP-Address }
                         { IP-Prefix-Length }
                        *[ AVP ]
            ]]></artwork>
          </figure>
          
          <t>IP-Address (AVP code 518) provides the
          value of an IPv6 prefix. The AddressType field in IP-Address MUST have
          value 2 (IPv6). The conveyed multicast IPv6 prefix MUST belong to the
          SSM range. Unused bits in IP-Address beyond the actual prefix MUST be
          set to zeroes by the sender and ignored by the receiver.</t> 

          <t>The IP-Prefix-Length AVP provides the actual length of the prefix
          contained in the IP-Address AVP. With regard to prefix length, note
          that Section 6 of <xref target="RFC3306"/> requires that bits 33-95 of
          an SSM address in the FF3x range be set to zero, meaning that the
          prefix length for an SSM prefix is effectively 96. However, Section 1
          of <xref target="RFC4607"/> suggests that the lower limit of 32 bits
          be preserved to allow potential future use of bits 33-95. Hence
          applications SHOULD accept prefix lengths between 32 and 96 inclusive.
          </t> 

        </section>  <!-- SSM_Pref64 -->
        
        <section anchor="UNIPref-64" 
                   title="Delegated-IPv6-Prefix AVP As uPrefix64">

          <t>Within the 64-Multicast-Attributes AVP, the Delegated-IPv6-Prefix
          AVP (AVP Code 123) conveys the value of uPrefix64, a unicast IPv6
          prefix, as identified in <xref target="dslite"/> and specified in
          <xref target="I-D.softwire-dslite-multicast"/>. The 
          Delegated-IPv6-Prefix AVP is defined in <xref target="RFC4818"/>. As
          specified by <xref target="RFC6052"/>, the value in the Prefix-Length
          field MUST be one of 32, 48, 56, 64 or 96.</t> 
 
        </section>  <!-- UNIPref-64 -->
      </section>

      <!-- DSLiteMul -->

      <section anchor="teppfx" title="Tunnel-Source-Pref-Or-Addr AVP">
      
        <t>The Tunnel-Source-Pref-Or-Addr AVP (AVP Code TBD05) conveys either
        the IPv6 Binding Prefix or the tunnel source address on the CE, as
        described in <xref target="lw4o6"/>. The Tunnel-Source-Pref-Or-Addr AVP
        is of type Grouped, with syntax as shown in <xref target="fig_teppix"/>.
        One of the Delegated-IPv6-Prefix AVP or the Tunnel-Source-IPv6-Address
        AVP MUST be present.</t> 
        
        <figure anchor="fig_teppix" title="Tunnel-Source-Pref-Or-Addr AVP">
          <artwork><![CDATA[
        Tunnel-Source-Pref-Or-Addr  ::= < AVP Header: TBD05 >
                       [ Delegated-IPv6-Prefix ]
                       [ Tunnel-Source-IPv6-Address ]
                      *[ AVP ]
          ]]></artwork>
        </figure>
        
        <t>This AVP is defined separately from the LW4over6-Binding AVP (which
        includes it) to provide flexibility in the transport of the tunnel
        source address from the provisioning system to AAA while also
        supporting the provision of a complete binding to the LW4over6
        border router.</t> 
        
        <section anchor="bindPref"
             title="Delegated-IPv6-Prefix As the IPv6 Binding Prefix">

          <t>The Delegated-IPv6-Prefix AVP (AVP code 123) is of type
          Octetstring, and is defined in <xref target="RFC4818"/>. Within the
          Tunnel-Source-Pref-Or-Addr AVP, it conveys the IPv6 Binding Prefix
          assigned to the CE. Valid values in the Prefix-Length field are from 0
          to 128 (full address), although a more restricted range is obviously
          more reasonable.</t> 

        </section>  <!-- bindPref -->
        
        <section anchor="tunnAddr" title="Tunnel-Source-IPv6-Address AVP">

          <t>The Tunnel-Source-IPv6-Address AVP (AVP code TBD06) is of type
          Address. It provides the address that the CE has assigned to its end
          of an LW4over6 tunnel. The AddressType field in this AVP MUST be set
          to 2 (IPv6). The DHCP 4o6 server described in <xref 
          target="I-D.fsc-softwire-dhcp4o6-saddr-opt"/> can use the 
          Tunnel-Source-IPv6-Address AVP to report the address to AAA
          after Step 3 of the binding flow shown in Section 4 of that
          document.</t> 
          
        </section>  <!-- tunnAddr -->
        
      </section>  <!-- teppfx -->

      <section anchor="psid" title="Port-Set-Identifier">
      
        <t>The Port-Set-Identifier AVP (AVP Code TBD07) is a structured
        OctetString with four octets of data, hence a total AVP length of 12.
        The description of the structure which follows refers to refers to the
        parameters described in <xref target="pset"/>. 
        <list style="symbols">
        
          <t>The first (high-order) octet is the Offset field. It is
          interpreted as an 8-bit unsigned integer giving the offset 'a'
          from the beginning of a port number to the beginning of the port
          set identifier (PSID) to which that port belongs. Valid values are
          from 0 to 15.</t>

          <t>The next octet, the PSIDLength, is also interpreted as an 8-bit
          unsigned integer and gives the length 'k' in bits of the port set
          identifier (PSID). Valid values are from 0 to (16 - a). A value
          of 0 indicates that the PSID is not present (probable case for
          MAP-E, see <xref target="map-e"/>), and the PSIDValue field MUST
          be ignored.</t>

          <t>The final two octets contain the PSIDValue field. They give the
          value of the PSID itself, right-justified within the field. That is,
          the value of the PSID occupies the 'k' lowest-order bits of the
          PSIDValue field.</t> 
          
        </list>
        </t>
        
      </section>  <!-- psid -->

      <section anchor="lw4o6-binding" title="LW4over6-Binding">
      
        <t>The LW4over6-Binding AVP (AVP Code TBD08) is of type Grouped. It
        contains the elements of configuration that constitute the binding
        between an LW4over6 tunnel and IPv4 packets sent through that
        tunnel, as described in <xref target="lw4o6"/>.</t>

        <figure anchor="fig_lw4o6_AVP" title="">
          <artwork><![CDATA[
                 LW4over6-Binding  ::= < AVP Header: TBD08 >
                          { Tunnel-Source-Pref-Or-Addr }
                          { LW4over6-External-IPv4-Addr }
                          [ Port-Set-Identifier ]
                         *[ AVP ]
          ]]></artwork>
        </figure>

        <t>The Tunnel-Source-Pref-Or-Addr AVP is defined in <xref
        target="teppfx"></xref> and provides either the Binding Prefix or the
        full IPv6 tunnel source address. This AVP MUST be present.</t>

        <t>The LW4over6-External-IPv4-Addr AVP (AVP Code TBD09) uses the Address
        derived data format defined in Section 4.3.1 of <xref
        target="RFC6733"/>. It provides the CE's external IPv4 address within
        the LW4over6 tunnel associated with the given binding. The AddressType
        field MUST be set to 1 (IPv4), and the total length of the AVP MUST be
        14 octets. This AVP MUST be present.</t> 

        <t>The Port-Set-Identifier AVP is defined in <xref
        target="psid"></xref>. It identifies the specific set of ports
        assigned to the LW4over6 tunnel, when the IPv4 address is being 
        shared.</t>
        
      </section>

      <!-- lw4o6-attrib -->

      <section anchor="map-e-attrib" title="MAP-E-Attributes">
      
        <t>The MAP-E-Attributes AVP (AVP Code TBD10) is of type Grouped. It
        contains the configuration data identified in <xref
        target="map-e"></xref> for all of the mapping rules (Basic and
        Forwarding) in a single MAP domain. Multiple instances of this AVP will
        be present if the CE belongs to multiple MAP domains.</t> 

        <figure anchor="fig_map_e_AVP" title="">
          <artwork><![CDATA[
                 MAP-E-Attributes  ::= < AVP Header: TBD06 >
                        1*{ Border-Router-Name }
                        1*{ MAP-Mapping-Rule }
                          [ MAP-Mesh-Mode ]
                          [ Delegated-IPv6-Prefix ]
                         *[ AVP ]
          ]]></artwork>
        </figure>

        <t>The Border-Router-Name AVP is defined in <xref
        target="BRaddr"></xref>. It provides the FQDN of a MAP border relay at
        the edge of the MAP domain to which the containing MAP-E-Attributes
        AVP relates. At least one instance of this AVP MUST be present.</t> 

        <t>The MAP-Mapping-Rule AVP is defined in <xref
        target="mapRule"></xref>. At least one instance of this AVP MUST be
        present. If the MAP-E domain supports mesh mode (indicated by the
        presence of the MAP-Mesh-Mode AVP), additional MAP-Mapping-Rule
        instances MAY be present. If the MAP-E domain is operating in
        hub-and-spoke mode, additional MAP-Mapping-Rule instances MUST NOT be
        present.</t> 

        <t>The MAP-Mesh-Mode AVP (AVP Code TBD11) uses the OctetString data
        format but has no data. Hence the AVP length is always 8. The absence of
        the mesh mode indicator attribute indicates that the CE is required to
        operate in hub-and-spoke mode.</t> 

        <t>The Delegated-IPv6-Prefix AVP (AVP Code 123) provides the 
        End-user IPv6 prefix assigned to the CE for the MAP domain to which the
        containing MAP-E-Attributes AVP relates. The AVP is defined in 
        <xref target="RFC4818"/>. Valid values of the Prefix-Length 
        field range from 0 to 128. </t>
                
        <t>The Delegated-IPv6-Prefix AVP is optional
        because, depending on deployment, the End-user IPv6 prefix may be
        provided by AAA or by other means. If multiple instances of
        the MAP-E-Attributes AVP containing the Delegated-IPv6-Prefix AVP are
        present, each instance of the latter MUST have a different value.</t> 

      </section>

      <!-- map-e-attrib -->

      <section anchor="mapRule" title="MAP-Mapping-Rule">
      
        <t>The MAP-Mapping-Rule AVP (AVP Code TBD12) is of type Grouped, and
        is used only in conjunction with MAP-based transition methods. Mapping
        rules are required both by the MAP border relay and by the CE. The
        components of the MAP-Mapping-Rule AVP provide the contents of a
        mapping rule as described in <xref target="map-e"></xref>.</t>

        <t>The syntax of the MAP-Mapping-Rule AVP is as follows:</t>

        <figure anchor="fig_map" title="">
          <artwork><![CDATA[
         MAP-Mapping-Rule  ::= < AVP Header: TBD12 >
                          { Rule-IPv4-Addr-Or-Prefix }
                          { Rule-IPv6-Prefix    }
                          { EA-Field-Length     }
                          { Port-Set-Identifier }
                         *[ AVP ]
          ]]></artwork>
        </figure>
        
        <t>The Rule-IPv4-Addr-Or-Prefix, Rule-IPv6-Prefix, EA-Field-Length,
        and Port-Set-Identifier AVPs MUST all be present.</t>

        <section anchor="ruleV4" title="Rule-IPv4-Addr-Or-Prefix AVP">

          <t>The Rule-IPv4-Addr-Or-Prefix AVP (AVP Code TBD13) conveys the rule
          IPv4 prefix and length as described in <xref target="map-e"/>. The
          Rule-IPv4-Addr-Or-Prefix AVP is of type Grouped, as shown in <xref
          target="fig_ruleV4"/>.</t> 

          <figure anchor="fig_ruleV4" title="Rule-IPv4-Addr-Or-Prefix AVP">
            <artwork><![CDATA[
          Rule-IPv4-Addr-Or-Prefix  ::= < AVP Header: TBD13 >
                         { IP-Address }
                         { IP-Prefix-Length }
                        *[ AVP ]
            ]]></artwork>
          </figure>
          
          <t>IP-Address (AVP code 518) is defined in <xref target="RFC5777"/>
          and is of type Address. Within the Rule-IPv4-Addr-Or-Prefix AVP, it
          provides the value of a unicast IPv4 address or prefix. The
          AddressType field in IP-Address MUST have value 1 (IPv4). Unused bits
          in IP-Address beyond the actual prefix MUST be set to zeroes by the
          sender and ignored by the receiver.</t> 

          <t>The IP-Prefix-Length AVP provides the actual length of the prefix
          contained in the IP-Address AVP. Within the Rule-IPv4-Addr-Or-Prefix
          AVP, valid values of the IP-Prefix-Length AVP are from 0 to 32 (full
          address), based on the different cases identified in Section 5.2 of
          <xref target="I-D.ietf-softwire-map"></xref>.</t> 

        </section>  <!-- ruleV4 -->    

        <section anchor="ruleV6" title="Rule-IPv6-Prefix AVP">

          <t>The Rule-IPv6-Prefix AVP (AVP Code TBD14) conveys the rule IPv6
          prefix and length as described in <xref target="map-e"/>.  The
          Rule-IPv6-Prefix AVP is of type Grouped, as shown in <xref
          target="fig_ruleV6"/>.</t> 
          
          <figure anchor="fig_ruleV6" title="Rule-IPv6-Prefix AVP">
          <artwork><![CDATA[
          Rule-IPv6-Prefix  ::= < AVP Header: TBD14 >
                      { IP-Address }
                      { IP-Prefix-Length }
                     *[ AVP ]
          ]]></artwork>
          </figure>
          
          <t>IP-Address (AVP code 518) is defined in <xref target="RFC5777"/>
          and is of type Address. Within the Rule-IPv6-Prefix AVP, it provides
          the value of a unicast IPv6 prefix. The AddressType field in IP-
          Address MUST have value 2 (IPv6). Unused bits in IP-Address beyond the
          actual prefix MUST be set to zeroes by the sender and ignored by the
          receiver. This AVP MUST be present.</t> 
          
          <t>The IP-Prefix-Length AVP provides the actual length of the prefix
          contained in the IP-Address AVP. Within the Rule-IPv6-Prefix AVP, the
          minimum valid prefix length is 0. The maximum value is bounded by the
          length of the End-user IPv6 prefix associated with the mapping rule,
          if present in the form of the Delegated-IPv6-Prefix AVP in the
          enclosing MAP-E-Attributes AVP. Otherwise the maximum value is 128.
          This AVP MUST be present.</t> 

        </section>  <!-- ruleV6 --> 

        <section anchor="eaLen" title="EA-Field-Length AVP">

          <t>The EA-Field-Length AVP (AVP Code TBD15) is of type Unsigned32.
          Valid values range from 0 to 48. See Section 5.2 of <xref
          target="I-D.ietf-softwire-map"></xref> for a description of the use of
          this parameter in deriving IPv4 address and port number configuration.
          This AVP MUST be present.</t>

        </section>  <!-- eaLen -->

        <section anchor="rulePSID" title="Port-Set-Identifier AVP">

          <t>The Port-Set-Identifier AVP provides information to identify the 
          specific set of ports assigned to the CE. For more information
          see <xref target="map-e"/> and <xref target="pset"/>. The 
          Port-Set-Identifier AVP is defined in <xref
          target="psid"></xref>. It MUST be present.</t>

        </section>  <!-- rulePSID -->
      </section>

      <!-- maprule -->
    </section>

    <!-- AVPdefs -->

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Huawei Technologies funded Tom Taylor's work on earlier versions of
      this document.</t> 
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo requests to IANA to register the following Diameter AVP
      codes:</t>

      <texttable anchor="tt_codes" title="">
        <ttcol align="center">Code</ttcol>

        <ttcol align="left">Attribute Name</ttcol>

        <ttcol align="left">Reference</ttcol>

        <c>TBD00</c>

        <c>IP-Prefix-Length</c>

        <c>This document</c>

        <c>TBD01</c>

        <c>Border-Router-Name</c>

        <c>This document</c>

        <c>TBD02</c>

        <c>64-Multicast-Attributes</c>

        <c>This document</c>

        <c>TBD03</c>

        <c>ASM-Prefix64</c>

        <c>This document</c>

        <c>TBD04</c>

        <c>SSM-Prefix64</c>

        <c>This document</c>

        <c>TBD05</c>
        
        <c>Tunnel-Source-Pref-Or-Addr</c>

        <c>This document</c>

        <c>TBD06</c>
        
        <c>Tunnel-Source-IPv6-Address</c>

        <c>This document</c>

        <c>TBD07</c>

        <c>Port-Set-Identifier</c>

        <c>This document</c>

        <c>TBD08</c>

        <c>LW4over6-Binding</c>

        <c>This document</c>

        <c>TBD09</c>

        <c>LW4over6-External-IPv4-Addr</c>

        <c>This document</c>

        <c>TBD10</c>

        <c>MAP-E-Attributes</c>

        <c>This document</c>

        <c>TBD11</c>

        <c>MAP-Mesh-Mode</c>

        <c>This document</c>

        <c>TBD12</c>

        <c>MAP-Mapping-Rule</c>

        <c>This document</c>

        <c>TBD13</c>

        <c>Rule-IPv4-Addr-Or-Prefix</c>

        <c>This document</c>

        <c>TBD14</c>

        <c>Rule-IPv6-Prefix</c>

        <c>This document</c>

        <c>TBD15</c>

        <c>EA-Field-Length</c>

        <c>This document</c>

      </texttable>
    </section>

    <section anchor="Security" title="Security Considerations">
    
      <t>The AVPs defined in this document face two threats, both
      dependent on man-in-the-middle attacks on the Diameter
      delivery path. The more serious threat is denial of service
      through modification of the AVP contents leading to
      misconfiguration. The lesser threat is disclosure of subscriber
      addresses allowing the attacker to track subscriber activity.</t>
      
      <t>Diameter security is currently provided on a hop-by-hop basis (see
      Section 2.2 of <xref target="RFC6733"/>). The Diameter end-to-end security
      problem has not been solved, so man-in-the-middle attacks on Diameter
      peers along the path are possible. The present document does not propose
      to solve that general problem, but simply warn that it exists.</t> 
    </section>
  </middle>

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

  <back>
    <!-- References split into informative and normative -->

    <references title="Normative References">
    
      &RFC2119;
      &RFC3306;
      &RFC4818;
      &RFC5777;
      &RFC6333;
      &RFC6733;

      <reference anchor="I-D.ietf-softwire-lw4over6">
        <front>
          <title>Lightweight 4over6: An Extension to the DS-Lite Architecture
          (work in progress)</title>

          <author initials="Y." surname="Cui">
            <organization>Tsinghua University</organization>
          </author>

          <author initials="Q." surname="Sun">
            <organization>China Telecom</organization>
          </author>

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

          <author initials="T." surname="Tsou">
            <organization>Huawei Technologies</organization>
          </author>

          <author initials="Y." surname="Lee">
            <organization>Comcast</organization>
          </author>

          <author initials="I." surname="Farrer">
            <organization>Deutsche Telekom AG</organization>
          </author>

          <date month="March" year="2014" />
        </front>
      </reference>

      <reference anchor="I-D.ietf-softwire-map">
        <front>
          <title>Mapping of Address and Port with Encapsulation (MAP) (work in
          progress)</title>

          <author initials="O." surname="Troan">
            <organization>Cisco Systems</organization>
          </author>

          <author initials="W." surname="Dec">
            <organization>Cisco Systems</organization>
          </author>

          <author initials="X." surname="Li">
            <organization>CERNET Center/Tsinghua University</organization>
          </author>

          <author initials="C." surname="Bao">
            <organization>CERNET Center/Tsinghua University</organization>
          </author>

          <author initials="S." surname="Matsushima">
            <organization>SoftBank Telecom</organization>
          </author>

          <author initials="T." surname="Murakami">
            <organization>IP Infusion</organization>
          </author>

          <author initials="T." surname="Taylor">
            <organization>Huawei Technologies</organization>
          </author>

          <date month="January" year="2014" />
        </front>
      </reference>

      <reference anchor="I-D.softwire-dslite-multicast">
        <front>
          <title>Delivery of IPv4 Multicast Services to IPv4 Clients over an
          IPv6 Multicast Network (work in progress)</title>

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

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

          <author initials="C." surname="Jacquenet">
            <organization>France Telecom</organization>
          </author>

          <author initials="Y." surname="Lee">
            <organization>Comcast</organization>
          </author>

          <author initials="Q." surname="Wang">
            <organization>China Telecom</organization>
          </author>

          <date month="March" year="2014" />
        </front>
      </reference>

    </references>

    <references title="Informative References">

      <?rfc include='reference.I-D.ietf-softwire-multicast-prefix-option'?>

      &RFC3315;
      &RFC4607;
      &RFC6052;
      &RFC6334;
      &RFC6519;

      <reference anchor="I-D.ietf-softwire-map-dhcp">
        <front>
          <title>DHCPv6 Options for configuration of Softwire Address and Port
          Mapped Clients (Work in progress)</title>

          <author initials="T." surname="Mrugalski">
            <organization>ISC</organization>
          </author>

          <author initials="O." surname="Troan">
            <organization>Cisco</organization>
          </author>

          <author initials="I." surname="Farrer">
            <organization>Deutsche Telekom AG</organization>
          </author>

          <author initials="S." surname="Perrault">
            <organization>Viagenie</organization>
          </author>

          <author initials="W." surname="Dec">
            <organization>Cisco</organization>
          </author>

          <author initials="C." surname="Bao">
            <organization>Tsinghua University</organization>
          </author>

          <author initials="L." surname="Yeh">
            <organization>CNNIC</organization>
          </author>

          <author initials="X." surname="Deng">
            <organization>Yingke Law Firm</organization>
          </author>

          <date month="March" year="2014" />
        </front>
      </reference>

      <reference anchor="I-D.fsc-softwire-dhcp4o6-saddr-opt">
        <front>
          <title>DHCPv4 over DHCPv6 Source Address Option (Work in
          progress)</title>

          <author initials="I." surname="Farrer">
            <organization>Deutsche Telekom AG</organization>
          </author>

          <author initials="Q." surname="Sun">
            <organization>Tsinghua University</organization>
          </author>

          <author initials="Y." surname="Cui">
            <organization>Tsinghua University</organization>
          </author>

          <date month="June" year="2014" />
        </front>
      </reference>
    </references>
  </back>
</rfc>
