Softwire                                                   S. Jiang, Ed.
Internet-Draft                              Huawei Technologies Co., Ltd
Intended status: Standards Track                              Y. Fu, Ed.
Expires: September 22, December 28, 2018                                         CNNIC
                                                                  B. Liu
                                            Huawei Technologies Co., Ltd
                                                               P. Deacon
                                                      IEA Software, Inc.
                                                                  C. Xie
                                                           China Telecom
                                                                   T. Li
                                                     Tsinghua University
                                                            M. Boucadair
                                                                  Orange
                                                          March 21,
                                                           June 26, 2018

   RADIUS Attribute Attributes for Softwire Address plus Port based Softwire Mechanisms
                   draft-ietf-softwire-map-radius-15
                   draft-ietf-softwire-map-radius-16

Abstract

   IPv4-over-IPv6 transition mechanisms provide both IPv4 and IPv6
   connectivity services simultaneously during the IPv4/IPv6 co-existing co-
   existence period.  The Dynamic Host Configuration Protocol for IPv6 (DHCPv6)  DHCPv6 options have been defined for configuring
   clients to configure Customer Edge (CE) in use MAP-E, MAP-T, Lightweight 4over6 and PREFIX64 option for Multicast Basic
   Bridging BroadBand (mB4) in multicast scenarios.  However, in many
   networks, the configuration information may be stored in an
   Authentication Authorization and Accounting (AAA) AAA
   server, while user configuration information is mainly provided by
   the Broadband Network
   Gateway (BNG) BNG through the DHCPv6 protocol.  This document defines two three new Remote Authentication Dial In User Service (RADIUS)
   RADIUS attributes that carry CE or mB4 configuration information from
   an AAA server to BNG.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."
   This Internet-Draft will expire on September 22, December 28, 2018.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Configuration process with RADIUS . . . . . . . . . . . . . .   4
   4.  Attributes  . . . . . . . . . . . . . . . . . . . . . . . . .   7
     4.1.  Softwire46-Configuration Attribute  . . . . . . . . . . .   7   8
     4.2.  S46 Container Options  Softwire46 TLVs . . . . . . . . . . . . . . . . . .   8 . . .   9
     4.3.  Softwire46 Sub Options for S46 Container Option TLVs . . . . . . . . . .   9
       4.3.1. . . . . . . . . .  11
     4.4.  The format of Softwire46 Sub TLVs . . . . . . . . . . . .  13
       4.4.1.  S46-Rule Sub Option TLV  . . . . . . . . . . . . . . . . .   9
       4.3.2. .  13
       4.4.2.  S46-BR Sub Option TLV  . . . . . . . . . . . . . . . . . .  10
       4.3.3. .  14
       4.4.3.  S46-DMR Sub Option TLV . . . . . . . . . . . . . . . . .  11
       4.3.4. . .  15
       4.4.4.  S46-V4V6Bind Sub Option TLV  . . . . . . . . . . . . . . .  12
       4.3.5. .  16
       4.4.5.  S46-PORTPARAMS Sub Option TLV  . . . . . . . . . . . . . .  13
     4.4.  Sub Options .  16
     4.5.  Sub-TLVs for S46-Rule Sub Option TLV . . . . . . . . . . .  13
       4.4.1. . . .  17
       4.5.1.  Rule-IPv6-Prefix Sub Option sub-TLV  . . . . . . . . . . . . .  13
       4.4.2. .  17
       4.5.2.  Rule-IPv4-Prefix Sub Option Sub-TLV  . . . . . . . . . . . . .  14
       4.4.3.  EA Length Sub Option .  18
       4.5.3.  EA-Length Sub-TLV . . . . . . . . . . . . . . .  15
     4.5.  Sub Options . . .  19
     4.6.  Sub-TLVs for S46-v4v6Bind Sub Option TLV . . . . . . . . .  15
       4.5.1. . . .  19
       4.6.1.  The IPv4-address Sub Option sub-TLV  . . . . . . . . . . . . .  15
       4.5.2. .  19
       4.6.2.  The Bind-IPv6-Prefix Sub Option Sub-TLV  . . . . . . . . . . .  15
     4.6.  Sub Options .  19
     4.7.  Sub-TLVs for S46-PORTPARAMS Sub Option . . . TLV . . . . .  16
       4.6.1.  The PSID-offset Sub Option . . . . . .  20
       4.7.1.  The PSID-offset sub-TLV . . . . . . .  16
       4.6.2.  The PSID-len Sub Option . . . . . . . .  20
       4.7.2.  The PSID-len sub-TLV  . . . . . . .  17
       4.6.3.  The PSID Sub Option . . . . . . . . .  21
       4.7.3.  The PSID sub-TLV  . . . . . . . .  17
     4.7.  Softwire46 Sub Options Encapsulation . . . . . . . . . .  17  21
     4.8.  Softwire46-Priority Attribute . . . . . . . . . . . . . .  18  21
     4.9.  Softwire46-Multicast Attribute  . . . . . . . . . . . . .  18  22
       4.9.1.  ASM-Prefix64 TLV  . . . . . . . . . . . . . . . . . .  20  24
       4.9.2.  SSM-Prefix64 TLV  . . . . . . . . . . . . . . . . . .  21  25
       4.9.3.  U-Prefix64 TLV  . . . . . . . . . . . . . . . . . . .  22  26

     4.10. Table of attributes . . . . . . . . . . . . . . . . . . .  23  27
   5.  Diameter Considerations . . . . . . . . . . . . . . . . . . .  24  28
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  24  28
     6.1.  S46 Mechanisms and Their Identifying Option Codes . . . .  25
   7.  Security Considerations .  New RADIUS Attributes . . . . . . . . . . . . . . . . . .  25
   8.  Acknowledgements  28
     6.2.  New RADIUS TLVs . . . . . . . . . . . . . . . . . . . . .  29
     6.3.  S46 Mechanisms and Their Identifying Option Codes .  26 . . .  29
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  30
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  30
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  26  31
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  26  31
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  27  32
   Additional Authors  . . . . . . . . . . . . . . . . . . . . . . .  29  34
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  30  35

1.  Introduction

   Recently

   Recently, providers have started to deploy IPv6 deployment and consider how to
   transit transition to IPv6.
   Many IPv4 service continuity mechanisms based on the Address plus
   Port (A+P) [RFC6346] have been proposed for running IPv4 over
   IPv6-only infrastructure.  Mapping of Address and Port with
   Encapsulation (MAP-E)[RFC7597] and Mapping of Address and Port using
   Translation (MAP-T) [RFC7599] are stateless mechanisms for running
   IPv4 over IPv6-only infrastructure.  Lightweight 4over6 [RFC7596] is
   a hub-and-spoke IPv4-over-IPv6 tunneling mechanism, with complete
   independence of IPv4 and IPv6 addressing.  And all these mechanisms
   are unicast.  MAP-E, MAP-T, and Lightweight 4over6 Customer Edge (CE)
   devices may be provisioned by means of Dynamic Host Configuration
   Protocol for IPv6 (DHCPv6) [RFC3315].  In particualr, the CE uses  [RFC7598] defines DHCPv6
   options to discover the
   Border Relay (BR) and retrieve Softwire46 (S46) configurations. for provisioning CEs for unicast softwires.

   [RFC8114] specifies a generic solution for delivery of IPv4 multicast
   services to IPv4 clients over an IPv6 multicast network.  The
   solution applies also to lw4o6 and MAP-E.  [RFC8115] defines a DHCPv6
   PREFIX64 option to convey the IPv6 prefixes to be used for
   constructing IPv4-embedded IPv6 addresses to inform the mB4 element
   of the PREFIX64.  The following lists the multicast-related
   information that needs to be provisioned:

   o  ASM Multicast Prefix64: the IPv6 multicast prefix to be used to
      synthesize the IPv4-embedded IPv6 addresses of the multicast
      groups in the Any-Source Multicast (ASM) mode.

   o  SSM Multicast Prefix64: the IPv6 multicast prefix to be used to
      synthesize the IPv4-embedded IPv6 addresses of the multicast
      groups in the Source-Specific Multicast (SSM) [RFC4607] mode.

   o  Unicast Prefix64: 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.  Unicast Prefix64 may
      also be used to extract the IPv4 address from the received
      multicast data flows.  The address mapping follows the guidelines
      documented in [RFC6052].

   In many networks, user configuration information may be stored in an
   Authentication, Authorization, and Accounting (AAA) server.
   Currently, the AAA servers communicate using the Remote
   Authentication Dial In User Service (RADIUS) [RFC2865] protocol.  In
   a fixed line broadband network, a Broadband Network Gateway (BNG)
   acts as the access gateway of users.  A DHCPv6 server function is
   assumed to be embedded embed in the BNG that allows it to locally handle any
   DHCPv6 requests initiated by hosts.  So the BNG is used in this
   document to describe a device which functions as both the AAA client
   and DHCPv6 sever.

   Since the S46 configuration information is stored in an AAA servers
   and user configuration information is mainly transmitted through
   DHCPv6 protocol between the BNGs and hosts/CEs, new RADIUS attributes
   are needed to propagate the information from the AAA servers to BNGs.
   The RADIUS attributes designed in this document are especially for
   the MAP-E[RFC7597], MAP-T[RFC7599] MAP-T [RFC7599] and Lightweight 4over6[RFC7596], 4over6 [RFC7596],
   providing enough information to form the corresponding DHCPv6
   configuration options[RFC7598].  This document is not concerned with
   the RADIUS attribute for Dual-Stack Lite [RFC6333] as it is already
   covered in [RFC6519].  At the Section 4.9, a new RADIUS attribute is
   defined to be used for carrying the Multicast-Prefixes-
   64, Multicast-Prefixes-64, based on
   the equivalent DHCPv6 option already specified in [RFC8115].

2.  Terminology

   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 [RFC2119].
   [RFC2119] [RFC8174] when, and only when, they appear in all capitals,
   as shown here.

   The terms DS-Lite multicast Basic Bridging BroadBand element (mB4)
   and the DS-Lite multicast Address Family Transition Router element
   (mAFTR) are defined in [RFC8114] .

3.  Configuration process with RADIUS

   The Figure 1 below illustrates how the RADIUS protocol and DHCPv6 co-
   operate protocols
   co-operate to provide CE with MAP softwire configuration information.
   The BNG acts as a RADIUS client and a DHCPv6 server.

  CE                              BNG                         AAA Server
  |                                |                               |
  |-------1.DHCPv6 Solicit-------> |                               |
  | (ORO w/container option code)  |                               |
  |                                |-------2.Access-Request------->|
  |                                | (S46-Configuration attribute  |
  |                                |and/or S46-Multicast attribute)|
  |                                |<------3.Access-Accept---------|
  |<---4.DHCPv6 Advertisement----- | (S46-Configuration attribute  |
  |      (container option)        |and/or S46-Multicast attribute)|
  |-------5.DHCPv6  Request------> |                               |
  |      (container Option)        |                               |
  |<------6.DHCPv6 Reply---------- |                               |
  |      (container option)        |                               |
  |                                |                               |
                 DHCPv6                            RADIUS

     Figure 1: the cooperation between DHCPv6 and RADIUS combined with
                           RADIUS authentication

   1.  First,  For unicast, the CE may initiate initiates a DHCPv6 Solicit message that
   includes an Option Request option(6) [RFC3315] with the S46 Container option
   codes as defined in[RFC7598].  As described in [RFC7598],
   OPTION_S46_CONT_MAPE should be included for MAP-E[RFC7597], MAP-E,
   OPTION_S46_CONT_MAPT for MAP-T [RFC7599], MAP-T, and OPTION_S46_CONT_LW for
   Lightweight 4over6 [RFC7596]. 4over6.  For the multicast case, the the option number
   for OPTION_V6_PREFIX64 (113) should be included for the delivery of multicast
   services in the context of transition to IPv6.  Note however, that
   the ORO (Option Request option) with the S46 Container option code
   could be optional if the network was planned to be S46-enabled by
   default. client's ORO.

   2.  When the BNG receives the Solicit message, it should SHOULD initiate a
   radius
   RADIUS Access-Request message.  In this message, a message continaing: A User-Name attribute (1) should be filled by
   (with either a CE MAC address or address, interface-id or
   both.  This message will be sent to the RADIUS server.  In this
   message, both), a User-password
   attribute (2) should be filled by the (with a pre-configured shared password that has been preconfigured on the DHCPv6 server, requesting
   authentication as defined in [RFC2865] with
   [RFC2865], and the corresponding
   Softwire46-Configuration Attribute or Softwire46-Multicast Attribute.
   The Softwire46-Configuration Attribute and and/or
   Softwire46-Multicast Attribute will be defined in (as reuquested by the next Section. client).  The
   resulting message is sent to the RADIUS server.

   3.  If the authentication request is approved by the AAA server, and
   suitable configuration is available, an Access-Accept message MUST be
   acknowledged with the corresponding Softwire46-Configuration
   Attribute or Softwire46-Multicast Attribute.

   4.  After receiving the Access-Accept message with the corresponding
   Attribute, the BNG SHOULD respond to the DHCPv6 Client (CE) with an
   Advertisement message.

   5.  After receiving the  On receipt of an Advertise message, message containing one or more of the
   requested DHCPv6 softwire container options (94, 95, 96, or 113) the
   CE MAY request configuration for the
   corresponding S46 Container Option, desired softwire mechanism(s) by
   including the S46 Container option code(s) in the ORO of the DHCPv6 Request
   message.

   6.  After receiving  When the BNG receives the client's DHCPv6 Request message, containing the
   corresponding S46 Container option, the BNG SHOULD reply to the CE
   with the it
   constructs a Reply message containing the S46 Container option. softwire container options
   enumerated in the ORO.  The recommended format of the MAC address is
   defined as Calling-Station-
   Id Calling-Station-Id (Section 3.20 in [RFC3580] without the
   SSID (Service Set Identifier) portion.  It is for the IEEE 802.1X
   Authenticators, the Calling-Station- Id attribute is used to store
   the bridge or Access Point MAC address in ASCII format.

   For Lightweight 4over6 [RFC7596], the subscriber's binding state
   should
   needs to be synchronized between the AAA server clients and the lwAFTR.  If  This
   can be achieved in two ways: pre-configuring the bindings are pre-configured statically in
   on both the AAA server and lwAFTR, an AAA server does not need to configure the lwAFTR anymore.
   Otherwise, if the bindings are locally created or on-demand in an whereby the AAA
   server, it should inform
   server updates the lwAFTR with the subscriber's binding
   state, in order to synchronize the binding information of the lwB4
   with the lwAFTR. state as it
   is created or deleted.

   The authorization operation could also be done independently after
   the authentication process.  In such a scenario, after the
   authentication operation, the client MAY initiate a DHCPv6 Request
   message that includes the corresponding S46 Container options.
   Similar to the above scenario, the ORO with the corresponding S46
   Container option code in the initial DHCPv6 request could be optional
   if the network was planned as being S46-enabled by default.  When the
   BNG receives the DHCPv6 Request, it SHOULD initiate the radius RADIUS
   Access-Request message, which MUST contain a Service-Type attribute
   (6) with the value Authorize Only (17), the corresponding
   Softwire46-Configuration Attribute, and a State attribute obtained
   from the previous authentication process according to [RFC5080].  If
   the authorization request is approved by an AAA server, an Access-
   Accept message MUST be acknowledged with the corresponding
   Softwire46-Configuration Attribute.  The BNG SHOULD then send the
   DHCPv6 Reply message containing the S46 Container option.

   In both the above-mentioned scenarios,

   There are three notices need to be considered:

   o  In both the above-mentioned scenarios, Message-authenticator (type
      80) [RFC2869] SHOULD be used to protect both Access-Request and
      Access-Accept messages.

   o  If the BNG does not receive the corresponding
      Softwire46-Configuration Attribute in the Access-Accept message it
      MAY fallback to a pre-configured default S46 configuration, if
      any.  If the BNG does not have any pre-configured default S46
      configuration, or if the BNG receives an Access-Reject, then S46
      connection cannot be established.

   o  As specified in [RFC3315], section 18.1.4, "Creation and
      Transmission of Rebind Messages ", if the DHCPv6 server to which
      the DHCPv6 Renew message was sent at time T1 has not responded by
      time T2, the CE (DHCPv6 client) SHOULD enter the Rebind state and
      attempt to contact any available server.  In this situation, the
      secondary BNG receiving the DHCPv6 message MUST initiate a new
      Access-Request message towards the AAA server.  The secondary BNG
      MAY include the Softwire46-Configuration Attribute in its Access-
      Request message.

   In both the above-mentioned scenarios, Message-authenticator (type
   80) [RFC2869] SHOULD be used to protect both Access-Request and
   Access-Accept messages.

   If the BNG does not receive the corresponding
   Softwire46-Configuration Attribute in the Access-Accept message it
   MAY fallback to a pre-configured default S46 configuration, if any.
   If the BNG does not have any pre-configured default S46
   configuration, or if the BNG receives an Access-Reject, then S46
   connection cannot be established.

   As specified in [RFC3315], section 18.1.4, "Creation and Transmission
   of Rebind Messages ", if the DHCPv6 server to which the DHCPv6 Renew
   message was sent at time T1 has not responded by time T2, the CE
   (DHCPv6 client) SHOULD enter the Rebind state and attempt to contact
   any available server.  In this situation, the secondary BNG receiving
   the DHCPv6 message MUST initiate a new Access-Request message towards
   the AAA server.  The secondary BNG MAY include the
   Softwire46-Configuration Attribute in its Access-Request message.

4.  Attributes

   This section defines the Softwire46-Configuration Attribute,
   Softwire46-Priority Attribute, and Softwire46-Multicast Attribute.
   The attribute design follows [RFC6158] and refers to [RFC6929].

   The Softwire46-Configuration Attribute carries the configuration
   information for MAP-E, MAP-T, and Lightweight 4over6.  The
   configuration information for each S46 mechanism is carried in the
   corresponding S46 Container option. Softwire46 TLVs.  Different sub options Sub TLVs are required for
   each type of S46 Container option. Softwire46 TLVs.  The RADIUS attribute for Dual-Stack
   Lite [RFC6333] is defined in [RFC6519].

   A client may be capable of supporting several different S46
   mechanisms.  Depending on the deployment scenario, a client might
   request for more than one S46 mechanism at a time.  The
   Softwire46-Priority Attribute contains information allowing the
   client to prioritize which mechanism to use, corresponding to
   OPTION_S46_PRIORITY defined in [RFC8026].

   The Softwire46-Multicast Attirbute conveys the IPv6 prefixes to be
   used in [RFC8114] to synthesize IPv4-embedded IPv6 addresses.  The
   BNG SHALL use the IPv6 prefixes returned in the RADIUS
   Softwire46-Multicast Attirbute to populate the DHCPv6 PREFIX64 Option
   [RFC8115].

4.1.  Softwire46-Configuration Attribute

   This attribute is of type "tlv" as defined in the RADIUS Protocol
   Extensions [RFC6929].  It contains some sub-attributes, and the
   requirements are as follows:

   The Softwire46-Configuration Attribute can only encapsulate S46
   Container Option(s). MAY contain the S46-MAP-E TLV
   (see Section 4.2).

   The Softwire46-Configuration Attribute is
   structured as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |    Length MAY contain the S46-MAP-T TLV
   (see Section 4.2).

   The Softwire46-Configuration Attribute MAY contain the S46-
   Lightweight-4over6 TLV (see Section 4.2).

   The Softwire46-Configuration Attribute MUST contain at least one
   Softwire46 TLV in the attribute.

   The Softwire46-Configuration Attribute conveys the configuration
   information for MAP-E, MAP-T, and Lightweight 4over6.  The BNG SHALL
   use the configuration information returned in the RADIUS Attribute to
   populate the DHCPv6 Softwire46 Container Option defined in section 5
   of [RFC7598].

   The Softwire46-Configuration Attribute MAY appear in an Access-Accept
   packet.  It MAY also appear in an Access-Request packet.

   The Softwire46-Configuration Attribute MAY appear in a CoA-Request
   packet.

   The Softwire46-Configuration Attribute MAY appear in an Accounting-
   Request packet.

   The Softwire46-Configuration Attribute MUST NOT appear in any other
   RADIUS packet.

   The Softwire46-Configuration Attribute can only encapsulate
   Softwire46 TLV.  The Softwire46-Configuration Attribute is structured
   as follows:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |      Type     |     Length    | Extended-Type |    Value ...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Type
      241 (To be confirmed by IANA).
    Length
      This field indicates the total length in bytes of all fields of
      this attribute, including the Type, Length, Extended-Type, and the
      entire length of the embedded TLVs.
     Extended-Type
        TBD1
     Value
        This field contains a set of TLVs as follows:
        S46-MAP-E TLV
           This TLV contains the S46-Rule Sub TLV, S46-BR Sub TLV,
           S46-PORTPARAMS Sub TLV. Refer to Section 4.4.
        S46-MAP-T TLV
           This TLV contains the S46-Rule Sub TLV, S46-DMR Sub TLV,
           S46-PORTPARAMS Sub TLV.  Refer to Section 4.4.
        S46-Lightweight-4over6 TLV
           This TLV contains the S46-BR Sub TLV,S46-V4V6Bind Sub
           TLV, S46-PORTPARAMS TLV.  Refer to Section 4.4.

     Softwire46-Configuration Attribute is associated with the following
     identifier: 241.Extended-Type(TBD1).

4.2.  Softwire46 TLVs

   The Softwire46 TLV can only be encapsulated in the
   Softwire46-Configuration Attribute.  Depending on the deployment
   scenario, a client might request for more than one transition
   mechanism at a time, there MUST be at least one Softwire46 TLV
   encapsulated in one Softwire46-Configuration Attribute.  There MUST
   be at most one instance of each type of Softwire46 TLV encapsulated
   in one Softwire46-Configuration Attribute.

   There are three types of Softwire46 TLV, namely S46-MAP-E TLV,
   S46-MAP-T TLV, S46-Lightweight 4over6 TLV.  Each type of Softwire46
   TLV contains a number of sub TLVs, defined in Section 4.4.  The
   hierarchy of the Softwire46 TLV is shown in Figure 2.  Section 4.3
   describes which Sub TLVs are mandatory, optional, or not permitted
   for each defined Softwire46 TLV.

                                                 /
                        /                       | 1.Rule-IPv6-Prefix
                       |                        |   Sub-TLV
                       | 1.S46-Rule Sub TLV-----+ 2.Rule-IPv4-Prefix
 S46-MAP-E TLV         |                        |   Sub-TLV
                       | 2.S46-BR Sub TLV       | 3.EA Length Sub-
 S46-MAP-T TLV---------+ 3.S46-DMR Sub TLV       \  TLV
                       |
 S46-Lightweight       |                             /1.IPv4-address
 -4over6 TLV           |                            |   Sub-TLV
                       | 4.S46-v4v6Bind Sub TLV   --| 2.Bind-IPv6-Prefix
                       |                             \  Sub-TLV
                       |                               /1.PSID-offset
                       |                              |   Sub-TLV
                       | 5.S46-PORTPARAMS Sub TLV   --| 2.PSID-len
                       |                              |   Sub-TLV
                        \                              \3.PSID Sub-
                                                          TLV

                    Figure 2: Softwire46 TLVs Hierarchy

   The format of S46-MAP-E TLV is shown as below:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   TLV-Type    |  TLV-Length   |     TLV-Value ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   TLV-Type
     TBD2
   TLV-Length
     The TLV-Length field is one octet and indicates the length of this
     TLV, including the TLV-Type, TLV-Length, and TLV-Value fields.
   TLV-Value
     This field contains a set of TLVs as follows:
     It MUST contain the S46-Rule Sub TLV, defined in Section 4.4.1
     It MUST contain the S46-BR Sub TLV, defined in Section 4.4.2
     It MAY contain the S46-PORTPARAMS Sub TLV, defined in Section 4.4.5

   The format of S46-MAP-T TLV is shown as below:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   TLV-Type    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +  TLV-Length   |     TLV-Value ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  TLV-Type
     TBD3
  TLV-Length
     The TLV-Length field is one octet and indicates the length of this
     TLV, including the TLV-Type, TLV-Length, and TLV-Value fields.
  TLV-Value
     This field contains a set of TLVs as follows:
     It MUST contain the S46-Rule Sub TLV, defined in Section 4.4.1
     It MUST contain the S46-DMR Sub TLV, defined in Section 4.4.3
     It MAY contain the S46-PORTPARAMS Sub TLV, defined in Section 4.4.5

   The format of S46-Lightweight 4over6 TLV is shown as below:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   TLV-Type    |
   +             S46 Container Option(s)                           +  TLV-Length   |     TLV-Value ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  TLV-Type
     TBD4
  TLV-Length
     The TLV-Length field is one octet and indicates the length of this
     TLV, including the TLV-Type, TLV-Length, and TLV-Value fields.
  TLV-Value
     This field contains a set of TLVs as follows:
     It MUST contain the S46-BR Sub TLV, defined in Section 4.4.2
     It MAY contain the S46-V4V6Bind Sub TLV, defined in Section 4.4.4
     It MAY contain the S46-PORTPARAMS Sub TLV, defined in Section 4.4.5

4.3.  Softwire46 Sub TLVs

   The table below shows which encapsulated Sub TLVs are mandatory,
   optional, or not permitted for each defined Softwire46 TLV.

   +----------------+-------+-------+--------------------+
   | Sub TLV        | MAP-E | MAP-T | Lightweight 4over6 |
   +----------------+-------+-------+--------------------+
   | S46-BR         |   M   |  N/P  |          M         |
   +----------------+-------+-------+--------------------+
   | S46-Rule       |   M   |   M   |         N/P        |
   +----------------+-------+-------+--------------------+
   | S46-DMR        |  N/P  |   M   |         N/P        |
   +----------------+-------+-------+--------------------+
   | S46-V4V6Bind   |  N/P  |  N/P  |          O         |
   +----------------+-------+-------+--------------------+
   | S46-PORTPARAMS |   O   |   O   |          O         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     Type
       TBD
     Length
       2 + the length of the S46 Container option(s)
       specified in octets
     S46 Container Option (s)
       A variable field that may contains one or more S46 Container
       option(s), defined in Section 4.2.

4.2.  S46 Container Options

   The S46 Container Option can only be encapsulated in
   +----------------+-------+-------+--------------------+

   M - Mandatory, O - Optional, N/P - Not Permitted

   According to the
   Softwire46-Configuration Attribute.  Depending on table described above, the deployment
   scenario, a client might request for more than one transition
   mechanism at a time, there MUST be at least one S46 Container option
   encapsulated in one Softwire46-Configuration Attribute.  There MUST
   be at most one instance of each type of S46 Container Option
   encapsulated in one Softwire46-Configuration Attribute.

                                                 / Fig.2 had beed structured
   into Figure 3, Figure 4 and Figure 5:

                         / (Mandatory)            /1.Rule-IPv6-Prefix
                        | 1.Rule-IPv6-Prefix                        |   sub-TLV
                        | 1.S46-Rule ------------+ 2.Rule-IPv4-Prefix
                        |    Sub Option TLV             | 1.S46-Rule   sub-TLV
                        |                        | 3.EA-Length
   S46-MAP-E TLV--------+                         \  sub-TLV
                        | 2.S46-BR Sub Option--+ 2.Rule-IPv4-Prefix TLV
                   - - - - - - - - - - - - - - - - - - - - - - - - -
                        | (Optional)               /1.PSID-offset
                        |                         |   sub-TLV
                        | 3.S46-PORTPARAMS -------+ 2.PSID-len
                        |     Sub Option TLV             |   sub-TLV
                        |                         | 3.PSID
                         \                         \  sub-TLV

                     Figure 3: S46-MAP-E TLV Hierarchy
                         / (Mandatory)            /1.Rule-IPv6-Prefix
                        |                        |   sub-TLV
                        | 1.S46-Rule ------------+ 2.Rule-IPv4-Prefix
                        | 2.S46-BR    Sub Option TLV             | 3.EA Length   sub-TLV
                        |                        | 3.EA-Length
   S46-MAP-T TLV--------+                         \  sub-TLV
                        | 2.S46-DMR Sub
 S46 Container Option--+ 3.S46-DMR TLV
                   - - - - - - - - - - - - - - - - - - - - - - - - -
                        | (Optional)               /1.PSID-offset
                        |                         |   sub-TLV
                        | 3.S46-PORTPARAMS -------+ 2.PSID-len
                        |     Sub Option TLV             |   sub-TLV
                        |                         | 3.PSID
                         \  Option                         \  sub-TLV

                     Figure 4: S46-MAP-T TLV Hierarchy

                        / (Mandatory)
                       |
                       | 1.S46-BR Sub TLV
                  - - - - - - - - - - - - - - - - - - - - - - - - -
                       | (Optional)
  S46-Lightweight   ---+                             /1.IPv4-address
  --4over6 TLV         |                            |   Sub Option   sub-TLV
                       | 4.S46-v4v6Bind 2.S46-v4v6Bind Sub Option--| TLV   --| 2.Bind-IPv6-Prefix
                       |                             \  Sub Option  sub-TLV
                       |                          /1.PSID-offset
                       |                         |   Sub Option   sub-TLV
                       | 5.S46-PORTPARAMS Sub Option--| 3.S46-PORTPARAMS -------+ 2.PSID-len
                       |                              |   Sub Option
                        \                              \3.PSID Sub
                                                          Option

                 Figure 2: S46 Container Option Hierarchy

   There are three types of S46 Container Options, namely MAP-E
   Container Option, MAP-T Container Option, Lightweight 4over6
   Container Option.  Each type of S46 Container Option contains a
   number of sub options, defined in Section 4.3.  The hierarchy of the
   S46 Container Option is shown in Figure 2.  Section 4.5 describes
   which Sub Options are mandatory, optional, or not permitted for each
   defined S46 Container Option.

   There are three types of S46-Rule Sub Options, namely Basic Mapping
   Rule, Forwarding Mapping Rule, Basic and Forwarding Mapping Rule.
   Each type of S46-Rule Sub Option also contains a number of Sub
   Options.  The Rule-IPv6-Prefix Sub Option is necessary for every type
   of S46-Rule     Sub Option.  It should appear for once and only once.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |    Length     |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   | TLV             |
   +                         Sub Options                           +   sub-TLV
                       |                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      Type
        TBD1 MAP-E Container Option
        TBD2 MAP-T Container Option
        TBD3 Lightweight 4over6 Container Option
      Length
        2 + the length of the Sub Options specified in octets
      Sub Option
        A variable-length field that contains necessary sub options
        defined in Section 4.3 and zero or several optional sub
        options, defined in Section 4.4.
    NOTE: The Type values for each S46 Container Option are the same
    as the S46-option-code values 3.PSID-sub-TLV
                        \                         \

              Figure 5: S46-Lightweight 4over6 TLV Hierarchy

4.4.  The format of the corresponding S46 Mechanisms
    specified in Section 6.1.

4.3. Softwire46 Sub Options for S46 Container Option

4.3.1. TLVs

4.4.1.  S46-Rule Sub Option TLV

   The S46-Rule Sub Option TLV can only be encapsulated in the MAP-E
   Container Option S46-MAP-E TLV or
   the MAP-T Container Option. S46-MAP-T TLV.  Depending on deployment scenario, one Basic
   Mapping Rule and zero or more Forwarding Mapping Rules MUST be
   included in one MAP-E Container
   Option S46-MAP-E TLV or MAP-T Container Option. S46-MAP-T TLV.

   Each type of S46-Rule Sub Option TLV also contains a number of sub
   options, sub-TLVs,
   including Rule-IPv6-Prefix Sub Option, sub-TLV, Rule-IPv4-Prefix Sub
   Option, sub-TLV, and EA EA-
   Length Sub Option. sub-TLV.  The structure of the sub options sub-TLVs for S46-Rule Sub Option TLV
   is defined in section 4.4. 4.5.

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     SubType   |    SubLen     |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               |
   +                         Sub Options                           +   TLV-Type    |  TLV-Length   |     TLV-Value ...
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
    TLV-Type
       1 Basic Mapping Rule (Not Forwarding Mapping Rule)
       2 Forwarding Mapping Rule (Not Basic Mapping Rule)
       3 Basic & Forwarding Mapping Rule
      SubLen
        2 +
    TLV-Length
      The TLV-Length field is one octet and indicates the length of this
      TLV, including the Sub Options specified in octets
      Sub Option
        A variable-length TLV-Type, TLV-Length, and TLV-Value fields.
    TLV-Value
       This field contains a set of TLVs as follows:
       Rule-IPv6-Prefix sub-TLV
          This TLV contains an IPv6 prefix that appears in a MAP rule.
          Refer to Section 4.5.1.
       Rule-IPv4-Prefix sub-TLV
          This TLV contains sub options defined an IPv4 prefix that appears in a MAP rule.
          Refer to Section 4.4.

4.3.2. 4.5.2.
       EA-Length sub-TLV
          This TLV contains the information of  Embedded-Address(EA)
          bit length. Refer to Section 4.5.3.

4.4.2.  S46-BR Sub Option TLV

   The S46-BR Sub Option TLV can only be encapsulated in the MAP-E Container
   Option S46-MAP-E TLV or the Lightweight
   S46-Lightweight 4over6 Container Option. TLV.  There MUST be at least one S46-BR Sub Option
   TLV included in each MAP-E Container Option S46-MAP-E TLV or Lightweight 4over6 Container Option. S46-Lightweight--4over6 TLV.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               |
   |                        BR-ipv6-address                        |
   |                                                               |
   +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      SubType
      TLV-Type
         4 (SubType number, for the S46-BR sub option)
      SubLen
      TLV-Length
         18 (the length of the S46-BR sub option) octets
      BR-ipv6-address
         IPv6 address. A fixed-length field of 16 octets that specifies
         the IPv6 address for the S46 BR.

4.3.3.

4.4.3.  S46-DMR Sub Option TLV

   The S46-DMR Sub Option TLV can only appear in the MAP-T Container Option. S46-MAP-T TLV.  There MUST
   be exactly one S46-DMR Sub Option TLV included in one MAP-T
   Container Option. S46-MAP-T TLV.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |    Reserved   |dmr-prefix6-len|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        dmr-ipv6-prefix                        |
   |                       (variable length)                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      SubType

      TLV-Type
         5 (SubType number, for the S46-DMR Sub Option)
      SubLen
      TLV-Type
         4 + length of dmr-ipv6-prefix specified in octets
      Reserved
         This field is reserved. It should be set to all zero. zeros.
      dmr-prefix6-len
         An 8 bits long field that expresses the bitmask length of
         the IPv6 prefix specified in the dmr-ipv6-prefix field.
         Allowed values range from 0 to 96.
      dmr-ipv6-prefix
         IPv6 Prefix. A variable-length field specifying the IPv6
         prefix or address for the BR. This field is right-padded
         with zeros to the nearest octet boundary when
         dmr-prefix6-len is not divisible by 8.

4.3.4.

4.4.4.  S46-V4V6Bind Sub Option TLV

   The S46-V4V6Bind Sub Option TLV can only be encapsulated in the
   Lightweight 4over6 Container Option. S46-
   Lightweight-4over6 TLV.  There MUST be at most exactly one S46-V4V6Bind Sub Option
   TLV included in each Lightweight 4over6 Container
   Option. S46-Lightweight-4over6 TLV.

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     SubType   |    SubLen     |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               |
   +                         Sub Options                           +   TLV-Type    |  TLV-Length   |     TLV-Value ...
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
    TLV-Type
       6 (SubType number, for
    TLV-Length
      The TLV-Length field is one octet and indicates the S46-V4V6Bind sub option)
      SubLen
        2 + length of this
      TLV, including the TLV-Type, TLV-Length, and TLV-Value fields.
    TLV-Value
       This field contains a set of TLVs as follows:
       IPv4-address sub-TLV
          This TLV contains an IPv4 address that MAY be used to
          specify the length full or shared IPv4 address of the Sub Options specified in octets
      Sub Option
        A variable-length field that CE.
          Refer to Section 4.6.1.
       Bind-IPv6-Prefix sub-TLV
          This TLV contains sub options defined
        in the IPv6 prefix or address for the S46 CE.
          Refer to Section 4.5.

4.3.5. 4.6.2.

4.4.5.  S46-PORTPARAMS Sub Option TLV

   The S46-PORTPARAMS Sub Option TLV specifies optional port set information
   that MAY be provided to CEs.  The S46-PORTPARAMS sub option Sub TLV can be
   included optionally by each type of S46 Container Option. Softwire46 TLVs .

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     SubType   |    SubLen     |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               |
   +                         Sub Options                           +   TLV-Type    |  TLV-Length   |     TLV-Value ...
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
    TLV-Type
       7 (SubType number, for the S46-PORTPARAMS Sub Option)
      SubLen
        2 +
    TLV-Length
      The TLV-Length field is one octet and indicates the length of this
      TLV, including the Sub Options specified in octets
      Sub Option
        A variable-length TLV-Type, TLV-Length, and TLV-Value fields.
    TLV-Value
       This field that contains sub options defined a set of TLVs as follows:
       PSID-offset sub-TLV
          This TLV pecifies the numeric value for the S46 algorithm's
          excluded port range/offset bits (a bits).
          Refer to Section 4.7.1.
       PSID-len sub-TLV
          This TLV specifies the number of significant bits in the
          PSID field (also known as 'k').
          Refer to Section 4.6.

4.4.  Sub Options 4.7.2.
       PSID sub-TLV
          This TLV specifies PSID value.
          Refer to Section 4.7.3.

4.5.  Sub-TLVs for S46-Rule Sub Option

4.4.1.  Rule-IPv6-Prefix TLV

   There are three types of S46-Rule sub-TLVs, namely Basic Mapping
   Rule, Forwarding Mapping Rule, Basic and Forwarding Mapping Rule.
   Each type of S46-Rule Sub Option TLV also contains a number of sub-TLVs.
   The Rule-IPv6-Prefix sub-TLV is necessary for every type of S46-Rule
   Sub Option TLV.  It should appear for once and only once.

4.5.1.  Rule-IPv6-Prefix sub-TLV

   The Rule-IPv6-Prefix sub-TLV is necessary for every S46-RULE sub
   option. S46-Rule Sub TLV.
   There MUST be exactly one S46-IPv6-Prefix Sub Option Rule-IPv6-Prefix sub-TLV encapsulated in
   each type of S46-Rule Sub Option. TLV.

   The IPv6 Prefix sub option Rule-IPv6-Prefix sub-TLV follows the framed IPv6 prefix designed
   in
   [RFC3162]. [RFC3162] and [RFC8044].

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |   Reserved    |ruleprefix6-len|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                        rule-ipv6-prefix                       |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         8 (SubType number, for the Rule-IPv6-Prefix Sub Option)
      SubLen
      TLV-Length
         20 (the length of the Rule-IPv6-Prefix Sub Option)
      Reserved
         This field is reserved. It is always set to zero. This field
         is one octet in length.
      ruleprefix6-len
      Ruleprefix6-len
         The length of IPv6 prefix, specified in the rule-ipv6-prefix
         field, expressed in bits.
      rule-ipv6-prefix
         IPv6 Prefix. A 128 bits long field that specifies an IPv6
         prefix that appears in a MAP rule.

4.4.2.

4.5.2.  Rule-IPv4-Prefix Sub Option Sub-TLV

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |   Reserved    |  prefix4-len  |    |ruleprefix4-len|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       rule-ipv4-prefix                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         9 (SubType number, for the Rule-IPv4-Prefix Sub Option)
      SubLen
      TLV-Length
         8 (the length of the Rule-IPv4-Prefix Sub Option)
      Reserved
         This field is reserved. It is always set to zero. This field
         is one octet in length.
      Prefix4-len
      Ruleprefix4-len
         The length of IPv4 prefix, specified in the rule-ipv4-prefix
         field, expressed in bits.
      rule-ipv4-prefix
         IPv4 Prefix. A 32 bits long field that specifies an IPv4
         prefix that appears in a MAP rule.

4.4.3.  EA Length Sub Option

4.5.3.  EA-Length Sub-TLV

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen  TLV-Length   |             EA-len            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         10 (SubType number, for the EA Length Sub Option)
      SubLen
      TLV-Length
         4 (the length of the EA Length Sub Option)
      EA-len
         Integer. A 16 bits long field that specifies the
         Embedded-Address(EA) bit length.  Allowed values range
         from 0 to 48.

4.5.  Sub Options

4.6.  Sub-TLVs for S46-v4v6Bind Sub Option

4.5.1. TLV

4.6.1.  The IPv4-address Sub Option sub-TLV

   The IPv4-address Sub Option sub-TLV MAY be used to specify the full or shared
   IPv4 address of the CE.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType   TLV-Type    |    SubLen  TLV-Length   |            ipv4-address       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           ipv4-address        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         11 (SubType number, for the IPv4-address Sub Option)
      SubLen
      TLV-Length
         6 (the length of the Rule-IPv4-Prefix Sub Option)
      ipv4-address
         IPv4 address. A 32 bits long field that specifies an IPv4
         address that appears in the V4V6Bind Option.

4.5.2.

4.6.2.  The Bind-IPv6-Prefix Sub Option Sub-TLV

   The IPv6 prefix bind-ipv6-prefix field specified in this field is used by the CE
   to identify the correct prefix to be used for the tunnel source.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |   Reserved    |bindprefix6-len|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                        bind-ipv6-prefix                       |
   |                        (variable length)                      |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         12 (SubType number, for the Bind-IPv6-Prefix Sub Option)
      SubLen
      TLV-Length
         20 (the length of the Bind-IPv6-Prefix Sub Option)
      Reserved
         This field is reserved. It is always set to zero. This field
         is one octet in length.
      bindprefix6-len
         Integer. An 8 bits long field that expresses the bitmask
         length of the IPv6 prefix specified in the bind-ipv6-prefix
         field. Allowed values range from 0 to 96.
      bind-ipv6-prefix
         IPv6 prefix. A variable-length field specifying the IPv6
         prefix or address for the S46 CE. This field is right-padded
         with zeros to the nearest octet boundary when bindprefix6-len
         is not divisible by 8.

4.6.  Sub Options

4.7.  Sub-TLVs for S46-PORTPARAMS Sub Option

4.6.1. TLV

4.7.1.  The PSID-offset Sub Option sub-TLV

    0                   1                   2
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |   PSID-Offset |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         13 (SubType number, for the PSID-offset Sub Option)
      SubLen
      TLV-Length
         3 (the length of the PSID-offset Sub Option)
      PSID-Offset
         Integer. An 8 bits long field that specifies the
         numeric value for the S46 algorithm's excluded
         port range/offset bits (a bits), as per Section 5.1
         of RFC7597. Allowed values are between 0 and 15.
         Default values for this field are specific to the
         Softwire mechanism being implemented and are defined
         in the relevant specification document.

4.6.2.

4.7.2.  The PSID-len Sub Option sub-TLV

    0                   1                   2
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType    TLV-Type   |    SubLen   TLV-Length  |    PSID-len   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         14 (SubType number, for the PSID-len Sub Option)
      SubLen
      TLV-Length
         3 (the length of the PSID-len Sub Option)
      PSID-len
         Integer. An 8 bits long field that specifies the
         number of significant bits in the PSID field (also
         known as 'k'). When set to 0, the PSID field is to
         be ignored. After the first 'a' bits, there are k
         bits in the port number representing the value of
         the PSID. Subsequently, the address sharing ratio
         would be 2 ^k.

4.6.3.

4.7.3.  The PSID Sub Option sub-TLV

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    SubType   TLV-Type    |    SubLen   TLV-Length  |             PSID              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      SubType
      TLV-Type
         15 (SubType number, for the PSID Sub Option)
      SubLen
      TLV-Length
         4 (the length of the PSID Sub Option)
      PSID (Port-set ID)
         Integer. An explicit 16-bit (unsigned word) PSID value.
         The PSID value algorithmically identifies a set of ports
         assigned to a CE. The first k bits on the left of this
         2-octet field is the PSID value. The remaining (16-k) bits
         on the right are padding zeros.

4.7.  Softwire46 Sub Options Encapsulation

4.8.  Softwire46-Priority Attribute

   The table below shows Softwire46-Priority Attribute defines a 16-bit S46-option-code
   field to contain the information allowing the client to prioritize
   which encapsulated Sub Options are mandatory,
   optional, or not permitted for each defined S46 Container Option.

   +----------------+-------+-------+--------------------+
   | Sub Option     | MAP-E | MAP-T | Lightweight 4over6 |
   +----------------+-------+-------+--------------------+
   | S46-BR         |   M   |  N/P  |          M         |
   +----------------+-------+-------+--------------------+
   | S46-Rule       |   M   |   M   |         N/P        |
   +----------------+-------+-------+--------------------+
   | S46-DMR        |  N/P  |   M   |         N/P        |
   +----------------+-------+-------+--------------------+
   | S46-V4V6Bind   |  N/P  |  N/P  |          O         |
   +----------------+-------+-------+--------------------+
   | S46-PORTPARAMS |   O   |   O   |          O         |
   +----------------+-------+-------+--------------------+

   M - Mandatory, O - Optional, N/P - Not Permitted

4.8. mechanism to use, corresponding to OPTION_S46_PRIORITY defined
   in [RFC8026].

   The Softwire46-Priority Attribute MAY appear in an Access-Accept
   packet.  It MAY also appear in an Access-Request packet.

   The Softwire46-Priority Attribute MAY appear in a CoA-Request packet.

   The Softwire46-Priority Attribute MAY appear in an Accounting-Request
   packet.

   The Softwire46-Priority Attribute MUST NOT appear in any other RADIUS
   packet.

   The S46-Priority Attribute is structured as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |    Length     |       S46-option-code Extended-Type |      ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |
   ...        S46-option-code      |       S46-option-code         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type
         TBD
         241 (To be confirmed by IANA)
      Length
         2 +
         This field indicates the total length in bytes of all fields
         of this attribute, including the Type, Length, Extended-Type,
         and the entire length of the S46-option-code(s) specified in octets S46-option-code.
      Extended-Type
         TBD5
      S46-option-code
         Integer. A 16-bit IANA-registered option code of the
         DHCPv6 option that is used to identify the softwire
         mechanisms. Refer to section 5 of RFC7598. S46 mechanisms are
         prioritized in the appearance order of the
         S46-option-code(s) in the Softwire46-Priority Attribute.
         A Softwire46-Priority Attribute MUST contain at least one
         S46-option-code. The option codes of the corresponding
         S46 mechanisms are listed in Section 6.1. 6.3.

   Softwire46-Priority Attribute is associated with the following
   identifier: 241.Extended-Type(TBD5).

4.9.  Softwire46-Multicast Attribute

   The Softwire46-Multicast attribute conveys the IPv6 prefixes to be
   used in [RFC8114] to synthesize IPv4-embedded IPv6 addresses. addresses as per [RFC8114].
   The BNG SHALL use the IPv6 prefixes returned in the RADIUS
   Softwire46-Multicast attribute to populate the DHCPv6 PREFIX64 Option
   [RFC8115].

   This attribute MAY be used in Access-Request packets as a hint to the
   RADIUS server.  For example, if the BNG is pre-configured with
   Softwire46-Multicast, these prefixes MAY be inserted in the
   attribute.  The RADIUS server MAY ignore the hint sent by the BNG,
   and it MAY assign a different Softwire46-Multicast attribute.

   The Softwire46-Multicast Attribute MAY appear in an Access-Accept
   packet.  It MAY also appear in an Access-Request packet.

   The Softwire46-Multicast Attribute MAY appear in a CoA-Request
   packet.

   The Softwire46-Multicast Attribute MAY appear in an Accounting-
   Request packet.

   The Softwire46-Multicast Attribute MUST NOT appear in any other
   RADIUS packet.

   This attribute is of type "TLV" as defined in the RADIUS Protocol
   Extensions [RFC6929].  It contains some sub-attributes:

   o  The Softwire46-Multicast Attribute MAY contain the ASM-Prefix64
      TLV (see Section 4.9.1).

   o  The Softwire46-Multicast Attribute MAY contain the SSM-Prefix64
      TLV (see Section 4.9.2).

   o  The Softwire46-Multicast Attribute MAY contain the U-Prefix64 TLV
      (see Section 4.9.3).

   The Softwire46-Multicast Attribute MUST include the ASM-Prefix64 TLV
   or the SSM-Prefix64 TLV, and it MAY include both.

   The U-Prefix64 TLV MUST be present when the SSM-Prefix64 TLV is
   present.  The U-Prefix64 TLV MAY be present when the ASM-Prefix64 TLV
   is present.

   The format of the Softwire46-Multicast Attribute is shown in
   Figure 3. 6.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |     Length    | Extended-Type |    Value ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 3 6

   Type

      241 (To be confirmed by IANA).

   Length

      This field indicates the total length in bytes of all fields of
      this attribute, including the Type, Length, Extended-Type, and the
      entire length of the embedded TLVs.

   Extended-Type

      TBD1.

      TBD6.

   Value

      This field contains a set of TLVs as follows:

      ASM-Prefix64 TLV

         This TLV contains the ASM IPv6 prefix.  Refer to Section 4.9.1.

      SSM-Prefix64 TLV

         This TLV contains the SSM IPv6 prefix.  Refer to Section 4.9.2.

      U-Prefix64 TLV

         This TLV contains the IPv4 prefix used for address translation
         [RFC6052].  Refer to Section 4.9.3.

   Softwire46-Multicast Attribute is associated with the following
   identifier: 241.Extended-Type(TBDx). 241.Extended-Type(TBD6).

4.9.1.  ASM-Prefix64 TLV

   The format of ASM-Prefix64 TLV is shown in Figure 4. 7.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   TLV-Type    |   Reserved    | Prefix-Length |ASM Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... ASM Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... ASM Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... ASM Prefix64                                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 4 7

   TLV-Type

      1

      16

   Reserved

      This field is reserved.  It is always set to zero.  This field is
      one octet in length.

   Length

   Prefix-Length

      The length of the prefix, in bits.

   ASM Prefix64

      IPv6 prefix.  This field specifies the IPv6 multicast prefix to be
      used to synthesize the IPv4-embedded IPv6 addresses of the
      multicast groups in the ASM mode.  The conveyed multicast IPv6
      prefix MUST belong to the ASM range.

4.9.2.  SSM-Prefix64 TLV

   The format of SSM-Prefix64 TLV is shown in Figure 5. 8.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   TLV-Type    |    Reserved   |Prefix-Length | SSM Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... SSM Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... SSM Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... SSM Prefix64                                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 5 8

   TLV-Type

      2

      17

   Reserved

      This fiel field is reserved.  It is always set to zero.  This field is
      one octet in length.

   Length

   Prefix-Length

      The length of the prefix, in bits.

   SSM Prefix64

      IPv6 prefix.  This field specifies the IPv6 multicast prefix to be
      used to synthesize the IPv4-embedded IPv6 addresses of the
      multicast groups in the SSM mode.  The conveyed multicast IPv6
      prefix MUST belong to the SSM range.

4.9.3.  U-Prefix64 TLV

   The format of U-Prefix64 TLV is shown in Figure 6. 9.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   TLV-Type    |  Reserved     | Prefix-Length |Unicast Prefix64
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... Unicast Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... Unicast Prefix64 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ... Unicast Prefix64                                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 6 9

   TLV-Type

      3

      18

   Reserved

      This fiel field is reserved.  It is always set to zero.  This field is
      one octet in length.

   Length

   Prefix-Length

      The length of the prefix, in bits.

   Unicast Prefix64

      IPv6 prefix.  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.  It
      may also be used to extract the IPv4 address from the received
      multicast data flows.

4.10.  Table of attributes

   This document proposes three new RADIUS attributes, and their formats
   are as follows:

   o  Softwire46-Configuration Attribute: 241.TB1

   o  Softwire46-Priority Attribute: 241.TB5

   o  Softwire46-Multicast Attribute: 241.TB6

   The following table describes which attributes may be found, in which
   kinds of packets and in what quantity.

   Request Accept Reject Challenge Accounting  #       Attribute
                                    Request
    0-1     0-1     0      0         0-1      TBD1      241.TBD1 Softwire46-
                                                       Configuration
    0-1     0-1     0      0         0-1      TBD2      241.TBD5 Softwire46-
                                                       Priority
    0-1     0-1     0      0         0-1      TBD3      241.TBD6 Softwire46-
                                                       Multicast
    0-1     0-1     0      0         0-1      1    User-Name
    0-1     0       0      0         0        2    User-Password
    0-1     0-1     0      0         0-1      6    Service-Type
    0-1     0-1     0-1    0-1       0-1      80   Message-
                                                   Authenticator

   The following table defines the meaning of the above table entries.

   0     This attribute MUST NOT be present in packet.
   0+    Zero or more instances of this attribute MAY be present in
         packet.
   0-1   Zero or one instance of this attribute MAY be present in
         packet.
   1     Exactly one instance of this attribute MUST be present in
         packet.

5.  Diameter Considerations

   S46 Configuration using Diameter [RFC6733] is specified in [RFC7678].

6.  IANA Considerations

   This

   For this document, IANA has made new code point assignments for
   RADIUS attributes as described in the following subsections.

6.1.  New RADIUS Attributes

   The Attribute Types defined in this document requires have been registered by
   IANA from the RADIUS namespace as described in the assignment "IANA
   Considerations" section of two [RFC3575], in accordance with BCP 26
   [RFC5226].  For RADIUS packets, attributes, and registries created by
   this document, IANA has placed them at
   <http://www.iana.org/assignments/radius-types>.

   In particular, this document defines three new RADIUS attributes, as
   follows, from the Short Extended Space of
   [RFC6929].Softwire46-Configuration Attribute, Softwire46-Priority
   Attribute, and Softwire46-Multicast Attribute

      Type        Description                Data Type   Reference
      ----        -----------                ---------   ---------
      241.TB1     Softwire46-Configuration   tlv         Section 4.1
      241.TB5     Softwire46-Priority        integer     Section 4.8
      241.TB6     Softwire46-Multicast       tlv         Section 4.9

6.2.  New RADIUS TLVs

   IANA has created a new registry called "RADIUS Softwire46
   Configuration and Multicast TLVs".  All TLVs in this registry have
   one or more parent RADIUS Attribute
   Type attributes in the "Radius Types" nesting (refer to
   [RFC6929]]).  This registry (currently located at
   http://www.iana.org/assignments/radius-types for contains the following
   attributes:

   o  Softwire46-Configuration Attribute TBD1

   o  Softwire46-Priority Attribute TBD2

   o  Softwire46-Multicast Attribute TBD3 TLVs:

         Value  Description              Data Type    Reference
         -----  -----------              ---------    ---------
         0      Reserved
         TB2    S46-MAP-E                tlv          Section 4.2
         TB3    S46-MAP-T                tlv          Section 4.2
         TB4    S46-Lightweight 4over6   tlv          Section 4.2
         1      S46-Rule                 tlv          Section 4.4.1
         2      S46-Rule                 tlv          Section 4.4.1
         3      S46-Rule                 tlv          Section 4.4.1
         4      S46-BR                   ipv6addr     Section 4.4.2
         5      S46-DMR                  ipv6prefix   Section 4.4.3
         6      S46-V4V6Bind             tlv          Section 4.4.4
         7      S46-PORTPARAMS           tlv          Section 4.4.5
         8      Rule-IPv6-Prefix         ipv6prefix   Section 4.5.1
         9      Rule-IPv4-Prefix         ipv4prefix   Section 4.5.2
         10     EA-Length                integer      Section 4.5.3
         11     IPv4-address             ipv4addr     Section 4.6.1
         12     Bind-IPv6-Prefix         ipv6prefix   Section 4.6.2
         13     PSID-offset              integer      Section 4.7.1
         14     PSID-len                 integer      Section 4.7.2
         15     PSID                     integer      Section 4.7.3
         16     ASM-Prefix64             ipv6prefix   Section 4.9.1
         17     SSM-Prefix64             ipv6prefix   Section 4.9.2
         18     U-Prefix64               ipv6prefix   Section 4.9.3
         19-255 Unassigned, TB2,TB3,TB4 will be assigned by IANA should allocate the numbers from the standard RADIUS Attributes
   space using the "IETF Review" policy

   The registration procedure for this registry is Standards Action as
   defined in [RFC5226].

6.1.

6.3.  S46 Mechanisms and Their Identifying Option Codes

   The Softwire46-Priority Attribute defines a 16-bit S46-option-code
   field, for which IANA is to create and maintain a new registry
   entitled "Option Codes Permitted in the Softwire46-Priority
   Attribute".  This document requires IANA to register four three option
   codes of the Softwire46 mechanisms permitted to be included in the
   Softwire46-Priority Attribute.  The value of option code is
   corresponding to the TLV-Type defined in the Section 4.2.  Additional
   options may be added to this list in the future using the IETF Review
   process described in Section 4.1 of [RFC5226].

   The following table shows the option codes that are required and the
   S46 mechanisms that they represent.  The option code for DS-Lite is
   derived from the IANA allocated RADIUS Attribute Type value for DS-
   Lite [RFC6519].  The option codes for MAP-E, MAP-T and Lightweight
   4over6 need to be determined.  The option codes for MAP-E, MAP-T, and
   Lightweight 4over6 should also be used as the option Type TLV-Type values for the
   MAP-E, MAP-T, and Lightweight 4over6 Container Options TLV defined in Section 4.2.

             +-------------+------------------+-----------+
             | Option Code |  S46 Mechanism   | Reference |
             +-------------+------------------+-----------+
             |     TBD1     TBD2    |       MAP-E      |  RFC7597  |
             +-------------+------------------+-----------+
             |     TBD2     TBD3    |       MAP-T      |  RFC7599  |
             +-------------+------------------+-----------+
             |     TBD3     TBD4    |Lightweight 4over6|  RFC7596  |
             +-------------+------------------+-----------+
             |     144     |     DS-Lite      |  RFC6519  |
             +--------------------------------+-----------+

                  Table 1: Option Codes to S46 Mechanisms

7.  Security Considerations

   Known security vulnerabilities of the RADIUS protocol are discussed
   in [RFC2607], [RFC2865], and[RFC2869].  Use of IPsec [RFC4301] for
   providing security when RADIUS is carried in IPv6 is discussed in
   [RFC3162].

   A malicious user may use MAC address spoofing on the shared password
   that has been preconfigured on the DHCPv6 server to get unauthorized
   configuration information.

   Specific security considerations for interactions between the MAP CE
   and the BNG are discussed in [RFC7597]. [RFC7597] and [RFC7599].  Security
   considerations for Lightweight 4over6 are discussed in [RFC7596].
   Security considerations for DHCPv6-Based S46 Prioritization Mechanism
   are discussed in [RFC8026].  Security considerations for multicast
   scenarios are discussed in [RFC 8114].  Furthermore, generic DHCPv6
   security mechanisms can be applied to DHCPv6 intercommunication
   between the CE and the BNG.

   Security considerations for the Diameter protocol are discussed in
   [RFC6733].

8.  Acknowledgements

   The authors would like to thank the valuable comments made by Peter
   Lothberg, Wojciech Dec, Ian Farrer, Suresh Krishnan, Qian Wang, Wei
   Meng and Cui Wang for this document.  This document was merged with
   draft-sun-softwire-lw4over6-radext-01 and draft-wang-radext-
   multicast-radius-ext-00, thanks to everyone who contributed to this
   draft.

   This document was produced using the xml2rfc tool [RFC7991].

9.  References

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC2865]  Rigney, C., Willens, S., Rubens, A., and W. Simpson,
              "Remote Authentication Dial In User Service (RADIUS)",
              RFC 2865, DOI 10.17487/RFC2865, June 2000,
              <https://www.rfc-editor.org/info/rfc2865>.

   [RFC3162]  Aboba, B., Zorn, G., and D. Mitton, "RADIUS and IPv6",
              RFC 3162, DOI 10.17487/RFC3162, August 2001,
              <https://www.rfc-editor.org/info/rfc3162>.

   [RFC3315]  Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins,
              C., and M. Carney, "Dynamic Host Configuration Protocol
              for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July
              2003, <https://www.rfc-editor.org/info/rfc3315>.

   [RFC4607]  Holbrook, H. and B. Cain, "Source-Specific Multicast

   [RFC3575]  Aboba, B., "IANA Considerations for
              IP", RADIUS (Remote
              Authentication Dial In User Service)", RFC 4607, 3575,
              DOI 10.17487/RFC4607, August 2006,
              <https://www.rfc-editor.org/info/rfc4607>. 10.17487/RFC3575, July 2003,
              <https://www.rfc-editor.org/info/rfc3575>.

   [RFC5080]  Nelson, D. and A. DeKok, "Common Remote Authentication
              Dial In User Service (RADIUS) Implementation Issues and
              Suggested Fixes", RFC 5080, DOI 10.17487/RFC5080, December
              2007, <https://www.rfc-editor.org/info/rfc5080>.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", RFC 5226,
              DOI 10.17487/RFC5226, May 2008,
              <https://www.rfc-editor.org/info/rfc5226>.

   [RFC6052]  Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
              Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
              DOI 10.17487/RFC6052, October 2010,
              <https://www.rfc-editor.org/info/rfc6052>.

   [RFC6158]  DeKok, A., Ed. and G. Weber, "RADIUS Design Guidelines",
              BCP 158, RFC 6158, DOI 10.17487/RFC6158, March 2011,
              <https://www.rfc-editor.org/info/rfc6158>.

   [RFC6929]  DeKok, A. and A. Lior, "Remote Authentication Dial In User
              Service (RADIUS) Protocol Extensions", RFC 6929,
              DOI 10.17487/RFC6929, April 2013,
              <https://www.rfc-editor.org/info/rfc6929>.

   [RFC8026]  Boucadair, M. and I. Farrer, "Unified IPv4-in-IPv6
              Softwire Customer Premises Equipment (CPE): A DHCPv6-Based
              Prioritization Mechanism", RFC 8026, DOI 10.17487/RFC8026,
              November 2016, <https://www.rfc-editor.org/info/rfc8026>.

   [RFC8044]  DeKok, A., "Data Types in RADIUS", RFC 8044,
              DOI 10.17487/RFC8044, January 2017,
              <https://www.rfc-editor.org/info/rfc8044>.

   [RFC8114]  Boucadair, M., Qin, C., Jacquenet, C., Lee, Y., and Q.
              Wang, "Delivery of IPv4 Multicast Services to IPv4 Clients
              over an IPv6 Multicast Network", RFC 8114,
              DOI 10.17487/RFC8114, March 2017,
              <https://www.rfc-editor.org/info/rfc8114>.

   [RFC8115]  Boucadair, M., Qin, J., Tsou, T., and X. Deng, "DHCPv6
              Option for IPv4-Embedded Multicast and Unicast IPv6
              Prefixes", RFC 8115, DOI 10.17487/RFC8115, March 2017,
              <https://www.rfc-editor.org/info/rfc8115>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

9.2.  Informative References

   [RFC2607]  Aboba, B. and J. Vollbrecht, "Proxy Chaining and Policy
              Implementation in Roaming", RFC 2607,
              DOI 10.17487/RFC2607, June 1999,
              <https://www.rfc-editor.org/info/rfc2607>.

   [RFC2869]  Rigney, C., Willats, W., and P. Calhoun, "RADIUS
              Extensions", RFC 2869, DOI 10.17487/RFC2869, June 2000,
              <https://www.rfc-editor.org/info/rfc2869>.

   [RFC3580]  Congdon, P., Aboba, B., Smith, A., Zorn, G., and J. Roese,
              "IEEE 802.1X Remote Authentication Dial In User Service
              (RADIUS) Usage Guidelines", RFC 3580,
              DOI 10.17487/RFC3580, September 2003,
              <https://www.rfc-editor.org/info/rfc3580>.

   [RFC4301]  Kent, S. and K. Seo, "Security Architecture for the
              Internet Protocol", RFC 4301, DOI 10.17487/RFC4301,
              December 2005, <https://www.rfc-editor.org/info/rfc4301>.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", RFC 5226,
              DOI 10.17487/RFC5226, May 2008,
              <https://www.rfc-editor.org/info/rfc5226>.

   [RFC6333]  Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
              Stack Lite Broadband Deployments Following IPv4
              Exhaustion", RFC 6333, DOI 10.17487/RFC6333, August 2011,
              <https://www.rfc-editor.org/info/rfc6333>.

   [RFC6346]  Bush, R., Ed., "The Address plus Port (A+P) Approach to
              the IPv4 Address Shortage", RFC 6346,
              DOI 10.17487/RFC6346, August 2011,
              <https://www.rfc-editor.org/info/rfc6346>.

   [RFC6519]  Maglione, R. and A. Durand, "RADIUS Extensions for Dual-
              Stack Lite", RFC 6519, DOI 10.17487/RFC6519, February
              2012, <https://www.rfc-editor.org/info/rfc6519>.

   [RFC6733]  Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn,
              Ed., "Diameter Base Protocol", RFC 6733,
              DOI 10.17487/RFC6733, October 2012,
              <https://www.rfc-editor.org/info/rfc6733>.

   [RFC7596]  Cui, Y., Sun, Q., Boucadair, M., Tsou, T., Lee, Y., and I.
              Farrer, "Lightweight 4over6: An Extension to the Dual-
              Stack Lite Architecture", RFC 7596, DOI 10.17487/RFC7596,
              July 2015, <https://www.rfc-editor.org/info/rfc7596>.

   [RFC7597]  Troan, O., Ed., Dec, W., Li, X., Bao, C., Matsushima, S.,
              Murakami, T., and T. Taylor, Ed., "Mapping of Address and
              Port with Encapsulation (MAP-E)", RFC 7597,
              DOI 10.17487/RFC7597, July 2015,
              <https://www.rfc-editor.org/info/rfc7597>.

   [RFC7598]  Mrugalski, T., Troan, O., Farrer, I., Perreault, S., Dec,
              W., Bao, C., Yeh, L., and X. Deng, "DHCPv6 Options for
              Configuration of Softwire Address and Port-Mapped
              Clients", RFC 7598, DOI 10.17487/RFC7598, July 2015,
              <https://www.rfc-editor.org/info/rfc7598>.

   [RFC7599]  Li, X., Bao, C., Dec, W., Ed., Troan, O., Matsushima, S.,
              and T. Murakami, "Mapping of Address and Port using
              Translation (MAP-T)", RFC 7599, DOI 10.17487/RFC7599, July
              2015, <https://www.rfc-editor.org/info/rfc7599>.

   [RFC7678]  Zhou, C., Taylor, T., Sun, Q., and M. Boucadair,
              "Attribute-Value Pairs for Provisioning Customer Equipment
              Supporting IPv4-Over-IPv6 Transitional Solutions",
              RFC 7678, DOI 10.17487/RFC7678, October 2015,
              <https://www.rfc-editor.org/info/rfc7678>.

   [RFC7991]  Hoffman, P., "The "xml2rfc" Version 3 Vocabulary",
              RFC 7991, DOI 10.17487/RFC7991, December 2016,
              <https://www.rfc-editor.org/info/rfc7991>.

Additional Authors
   Qiong Sun
   China Telecom
   Beijing  China
   Email: sunqiong@ctbri.com.cn

   Qi Sun
   Tsinghua University
   Department of Computer Science, Tsinghua University
   Beijing 100084
   P.R.China
   Phone: +86-10-6278-5822
   Email: sunqibupt@gmail.com

   Cathy Zhou
   Huawei Technologies
   Bantian, Longgang District
   Shenzhen 518129
   Email: cathy.zhou@huawei.com

   Tina Tsou
   Huawei Technologies(USA)
   2330 Central Expressway
   Santa Clara, CA 95050
   USA
   Email: Tina.Tsou.Zouting@huawei.com

   ZiLong Liu
   Tsinghua University
   Beijing 100084
   P.R.China
   Phone: +86-10-6278-5822
   Email: liuzilong8266@126.com

   Yong Cui
   Tsinghua University
   Beijing 100084
   P.R.China
   Phone: +86-10-62603059
   Email: yong@csnet1.cs.tsinghua.edu.cn

Authors' Addresses
   Sheng Jiang
   Huawei Technologies Co., Ltd
   Q14, Huawei Campus, No.156 Beiqing Road
   Hai-Dian District, Beijing, 100095
   P.R. China

   Email: jiangsheng@huawei.com

   Yu Fu
   CNNIC
   No.4 South 4th Street, Zhongguancun
   Hai-Dian District, Beijing, 100190
   P.R. China

   Email: fuyu@cnnic.cn

   Bing Liu
   Huawei Technologies Co., Ltd
   Q14, Huawei Campus, No.156 Beiqing Road
   Hai-Dian District, Beijing, 100095
   P.R. China

   Email: leo.liubing@huawei.com

   Peter Deacon
   IEA Software, Inc.
   P.O. Box 1170
   Veradale, WA  99037
   USA

   Email: peterd@iea-software.com

   Chongfeng Xie
   China Telecom
   Beijing
   P.R. China

   Email: xiechf.bri@chinatelecom.cn
   Tianxiang Li
   Tsinghua University
   Beijing  100084
   P.R.China

   Email: peter416733@gmail.com

   Mohamed Boucadair
   Orange
   Rennes, 35000
   France

   Email: mohamed.boucadair@orange.com