<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2131 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2131.xml">
<!ENTITY RFC2132 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2132.xml">
<!ENTITY RFC3315 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY RFC5213 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5213.xml">
<!ENTITY RFC5844 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5844.xml">
<!ENTITY RFC4649 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4649.xml">
<!ENTITY RFC3046 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3046.xml">
<!ENTITY RFC6225 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6255.xml">
<!ENTITY RFC2939 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2939.xml">
<!ENTITY RFC1035 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
<!ENTITY RFC2434 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2434.xml">
<!ENTITY RFC3118 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3118.xml">
<!ENTITY RFC6757 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6757.xml">
<!ENTITY RFC4030 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4030.xml">
<!ENTITY RFC4301 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC3629 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3629.xml">
<!ENTITY RFC6991 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml">
<!ENTITY DHCPv6-IANA-Registry SYSTEM "http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml">
<!ENTITY DHCPv4-IANA-Registry SYSTEM "http://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xml">
]>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc number="7839" category="std" submissionType="IETF" consensus="yes"
     ipr="trust200902">
  <front>
    <title abbrev="ANI Options for DHCPv4 and DHCPv6">Access-Network-Identifier Option in DHCP</title>

    <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>Cessna Business Park, Sarjapura Marathalli Outer Ring
          Road</street>

          <city>Bangalore</city>

          <region>KARNATAKA</region>

          <code>560 087</code>

          <country>India</country>
        </postal>

        <phone>+91 80 4426 0474</phone>

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

    <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>170 West Tasman Drive</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>United States</country>
        </postal>

        <email>sgundave@cisco.com</email>

      </address>
    </author>

    <author fullname="Mark Grayson" initials="M." surname="Grayson">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>11 New Square Park</street>

          <city>Bedfont Lakes</city>

          <region>FELTHAM</region>

          <code>TW14 8HA</code>

          <country>England</country>
        </postal>

        <email>mgrayson@cisco.com</email>

      </address>
    </author>

    <author fullname="Bernie Volz" initials="B." surname="Volz">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>1414 Massachusetts Ave</street>

          <city>Boxborough</city>

          <region>MA</region>

          <code>01719</code>

          <country>United States</country>
        </postal>

        <email>volz@cisco.com</email>

      </address>
    </author>

    <author fullname="Jouni Korhonen " initials="J." surname="Korhonen">
      <organization>Broadcom Limited</organization>

      <address>
        <postal>
          <street>3151 Zanker Rd</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>United States</country>
        </postal>

        <phone></phone>

        <email>jouni.nospam@gmail.com</email>
      </address>
    </author>

    <date month="June" year="2016" />

    <abstract>
      <t>This document specifies the format and mechanism that is to be used
      for encoding Access-Network Identifiers in DHCPv4 and DHCPv6 messages by
      defining new Access-Network-Identifier options and sub-options.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">

      <t>Access-network identification of a network device has a range
      of applications. For example, the Local Mobility Anchor (LMA) in a
      Proxy Mobile IPv6 (PMIPv6) domain is able to provide service treatment
      for the mobile node's traffic based on the access network to which the
      mobile node is attached.</t>


      <t>This document specifies the Dynamic Host Configuration Protocol for
      IPv4 (DHCPv4) <xref target="RFC2131"/> and the Dynamic Host Configuration Protocol
      for IPv6 (DHCPv6) <xref target="RFC3315"/> options for access-network identification
      that is added by the relay agent in the DHCPv4 or DHCPv6 messages sent
      towards the server. The scope of applicability for this
      option is between a DHCP relay agent and a mobile access gateway where the 
      same operator typically operates both these functions
      </t>

      <t>A DHCP relay agent that is aware of the
      access network and access operator adds this information in the DHCP
      messages. This information can be used to provide differentiated
      services and policing of traffic based on the access network to which a
      client is attached. Examples of how this information can be used in
      mobile networks can be found in <xref target="RFC6757"></xref>.</t>
    </section>

    <section title="Motivation">
      <t>PMIPv6 <xref target="RFC5213"></xref> can be used for
      supporting network-based mobility management in various types of network
      deployments. The network architectures, such as service provider Wi-Fi
      access aggregation or WLAN integrated mobile packet core, are examples
      where PMIPv6 is a component of the overall architecture. Some
      of these architectures require the ability of the
      LMA <xref target="RFC5213"></xref> to provide differentiated services
      and policing of traffic to the mobile nodes based on the access network
      to which they are attached. Policy systems in mobility architectures,
      such as Policy and Charging Control (PCC) <xref target="TS23203"></xref> and 
      Access Network Discovery and Selection Function (ANDSF) <xref
      target="TS23402"></xref> in the 3GPP system, allow configuration of policy
      rules with conditions based on the access-network information. For
      example, the service treatment for the mobile node's traffic may be
      different when they are attached to an access network owned by the home
      operator than when owned by a roaming partner. In the case of
      access networks based on IEEE 802.11, the service treatment can
      also be different based on the configured Service Set Identifiers (SSIDs).
      Other examples of services include the operator's ability to apply tariff based on the
      location.</t>

      <t>The PMIPv6 extension as specified in <xref target="RFC6757"></xref>
      defines PMIPv6 options to carry Access-Network Identifiers in PMIPv6
      signaling from the Mobile Access Gateway (MAG) to the LMA.
      The MAG can learn this information from the DHCP options as inserted by
      the DHCP relay agent in the access network.
      If the MAG relays the DHCP messages to the LMA as specified in <xref
      target="RFC5844"></xref>, this information can be inserted by the MAG
      towards the
      LMA in the forwarded DHCP messages.</t>

      <t>
	Figure 1 illustrates an example of PMIPv6 deployment. In this
	example, the access network is based on IEEE
	802.11 technology, the DHCP relay agent function is located on the Access
	Point (AP), and the DHCP server function is located on the MAG.
      The MAG delivers the information elements related to the access
      network to the LMA over PMIPv6 signaling messages. The MAG obtains
      these information elements from the DHCP relay agent as per this specification.
      The information elements related to the access network include the SSID of
      the used IEEE 802.11 network, the geo-location of the access network to which
      the mobile node is attached, and the identity of the operator running the IEEE
      802.11 access-network infrastructure.
      </t>

      <t><figure title="Access Networks Attached to MAG" >
          <artwork><![CDATA[
       SSID: IETF-1
       Operator-Identifier: provider1.example
       
       +--+
       |AP|-----------.                    {Access-Specific Policies)
       +--+           | (DHCP Server)   _-----_             |
       (DHCP Relay) +-----+           _(       )_        +-----+
                    | MAG |-=========(   PMIPv6  )======-| LMA |-
                    +-----+           (_ Tunnel_)        +-----+
       +--+           |                 '-----'
       |AP|-----------'
       +--+
       (DHCP Relay)
       
       SSID: IETF-2
       Operator-Identifier: provider2.example
]]></artwork>
        </figure></t>
    </section>

    <section anchor="sec3" title="Terminology">
      <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>All the DHCP-related terms used in this document are to be
      interpreted as defined in DHCPv4 <xref target="RFC2131"></xref> and DHCPv6 <xref target="RFC3315"></xref>
      specifications. "DHCP message" refers to both DHCPv4 and DHCPv6 messages
      throughout this document.</t>

      <t>All the mobility-related terms used in this document are to be
      interpreted as defined in the PMIPv6 specifications <xref
      target="RFC5213"></xref> and <xref target="RFC5844"></xref>.
      Additionally, this document uses the following abbreviations:</t>

      <t>Service Set Identifier (SSID)</t>

      <t><list style="empty">
          <t>The Service Set Identifier (SSID) identifies the name of the IEEE
          802.11 network. The SSID differentiates from one network to the
          other.</t>
        </list></t>
      
      <t>Operator-Identifier</t>

      <t><list style="empty">
          <t>The Operator-Identifier is the Structure of Management
          Information (SMI) Network Management Private Enterprise Code of the
          IANA-maintained "Private Enterprise Numbers" registry <xref
          target="SMI"></xref>. It identifies the operator running the
          access network where the client is attached. </t>
        </list></t>
    </section>

    <section anchor="sec4" title="DHCPv4 Access-Network-Identifier Option">
      <t>The Access-Network Identifier (ANI) carries information related to
      the identity of the access network to which the client is attached.
      This information
      includes access-technology type, network identifier, and access network
      operator identifiers.</t>

      <t>Relay agents that include ANI information
      include one or more sub-options (see Section 4.1) in the Relay Agent Information
      option <xref target="RFC3046"></xref>.</t>

      <section anchor="sec_4-1"
               title="DHCPv4 Access-Network-Identifier Sub-options">
        <t>The Access-Network-Identifier information will be defined in
        multiple sub-options allocated from the "DHCP Relay Agent Sub-Option
        Codes" registry.</t>

        <t>ANI Sub-options: The ANI sub-options consist of a sequence of
        Sub-Option Code, Length, and Value tuples for each sub-option, encoded
        in the following manner:</t>

        <t><figure>
            <artwork><![CDATA[
    Subopt  Len     Sub-option Data
   +------+------+------+------+------+------+--...-+------+
   | code |   N  |  s1  |  s2  |  s3  |  s4  |      |  sN  |
   +------+------+------+------+------+------+--...-+------+
]]></artwork>
          </figure></t>

        <t><list style="hanging">
            <t hangText="Subopt code"><vspace blankLines="0" /> The 1-octet
            code for the sub-options defined in the following sections.</t>

            <t hangText="Len"><vspace blankLines="0" />An unsigned 8-bit
            integer giving the length of the Sub-option Data field in this
            sub-option in octets.</t>

            <t hangText="Sub-option Data (s1 to sN)"><vspace blankLines="0" />
            The data area for the sub-option.</t>
          </list></t>

        <t>The initial assignment of the DHCP Access-Network-Identifier
        sub-options is as follows: <figure suppress-title="true">
            <artwork><![CDATA[  
   +=================+=======================================+
   | SUB-OPTION CODE |      SUB-OPTION DESCRIPTION           |              
   +=================+=======================================+
   |       13        | Access-Technology-Type Sub-option     | 
   +=========================================================+
   |       14        | Access-Network-Name Sub-option        |
   +=========================================================+
   |       15        | Access-Point-Name Sub-option          |
   +=========================================================+
   |       16        | Access-Point-BSSID Sub-option         |
   +=========================================================+
   |       17        | Operator-Identifier Sub-option        |
   +=========================================================+
   |       18        | Operator-Realm Sub-option             |
   +=========================================================+
]]></artwork>
          </figure></t>
      </section>

      <section anchor="sec_4-2"
               title="DHCPv4 Access-Technology-Type Sub-option">
        <t>This sub-option is used for exchanging the type of the access
        technology of the network to which the client is attached. Its format
        is as follows:</t>

        <t><figure>
            <artwork><![CDATA[
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Subopt Code  |     Length    |   Reserved    |      ATT      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t><list style="hanging">
            <t hangText="Subopt Code"><vspace blankLines="0" />
            13</t>

            <t hangText="Length"><vspace blankLines="0" />2</t>

            <t hangText="Reserved"><vspace blankLines="0" />An 8-bit field
            that is unused for now. The value MUST be initialized to 0 by the
            sender and MUST be ignored by the receiver.</t>

            <t hangText="Access-Technology-Type (ATT)"><vspace
            blankLines="0" /> An 8-bit field that specifies the access
            technology through which the client is connected to the access
            link from the IANA name space "Access Technology Type Option type
            values" registry defined in <xref target="RFC5213"></xref>.
            
            
            </t>
          </list></t>
      </section>

      <section anchor="sec_4-3" title="DHCPv4 Network-Identifier Sub-options">
        <t>These sub-options are used for carrying the name of the access
        network (e.g., an SSID in the case of an IEEE 802.11 access network or a
	Public Land-based Mobile Network (PLMN) Identifier <xref target="TS23003"></xref> in the case of a 3GPP
	access network) and the
        Access-Point Name to which the client is attached. The format of these
        sub-options is defined in the following sections. The Network-Identifier
        sub-options are only for the currently known access-technology types.
        </t>

        <section anchor="sec_4-3-1" title="DHCPv4 Network-Name Sub-option">
          <t><figure suppress-title="true">
              <artwork><![CDATA[
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Subopt Code  |     Length    |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   .                                                               .
   .                     Network-Name (e.g., SSID or PLMNID)       .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Subopt Code"><vspace blankLines="0" />
              14</t>

              <t hangText="Length"><vspace blankLines="0" /> The length of the
              Network-Name field.</t>

              <t hangText="Network-Name"><vspace blankLines="0" /> The name of
              the access network to which the mobile node is attached. The
              encoding MUST be UTF-8 as described in <xref
              target="RFC3629"></xref>.</t>

              <t>The type of the Network-Name is dependent on the access
              technology to which the mobile node is attached. For networks
	      based on IEEE 802.11, the Network-Name will be the SSID of the
              network. For 3GPP access-based networks, it is the PLMN Identifier of the
              access network, and for 3GPP2 access, the Network-Name is the
              ANI <xref target="ANI"> </xref>.</t>

              <t>When encoding the PLMN Identifier, both the Mobile Network
              Code (MNC) <xref target="TS23003"/> and Mobile Country Code
	      (MCC) <xref target="TS23003"/>
              MUST be three digits. If the MNC in use only has two digits, then it
              MUST be preceded with a '0'.</t>
            </list></t>
        </section>

        <section anchor="sec_4-3-2"
                 title="DHCPv4 Access-Point-Name Sub-option">
          <t><figure suppress-title="true">
              <artwork><![CDATA[    
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Subopt Code  |     Length    |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   .                                                               .
   .                        Access-Point-Name                      .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Subopt Code"><vspace blankLines="0" />
              15</t>

              <t hangText="Length"><vspace blankLines="0" /> The length of the
              Access-Point-Name field.</t>

              <t hangText="Access-Point-Name"><vspace blankLines="0" /> The
              name of the access point (physical device name) to which the
              mobile node is attached. This is the identifier that uniquely
              identifies the access point. While the Network-Name (e.g., SSID)
              identifies the operator's access network, the Access-Point-Name
              identifies a specific network device in the network to which the
              mobile node is attached. In some deployments, the Access-Point-Name
	      can be set to the string representation of the Media Access
	      Control (MAC) address of the device as specified in <xref target="RFC6991"/>
	      (see mac-address typedef) or some unique identifier that can be used by
	      the policy systems in the operator network to unambiguously
	      identify the device. The encoding MUST be UTF-8 as described in <xref
              target="RFC3629"></xref>.</t>
            </list></t>
        </section>

        <section anchor="sec_4-3-3"
                 title="DHCPv4 Access-Point-BSSID Sub-option">
          <t><figure suppress-title="true">
              <artwork><![CDATA[    
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Subopt Code  |     Length    |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |                        Access-Point-BSSID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Subopt Code"><vspace blankLines="0" />
              16</t>

              <t hangText="Length"><vspace blankLines="0" /> 6</t>

              <t hangText="Access-Point-BSSID "><vspace blankLines="0" /> The
              48-bit Basic SSSID (BSSID) of the access
              point to which the mobile node is attached.</t>
            </list></t>
        </section>
      </section>





      <section anchor="sec_4-4" title="DHCPv4 Operator-Identifier Sub-options">
        <t>The Operator-Identifier sub-options can be used for carrying the
        Operator-Identifiers of the access network to which the client is
        attached. The format of these sub-options is defined below.</t>
        
        
        
        <section anchor="sec_4-4-1"
                 title="DHCPv4 Operator-Identifier Sub-option">
          <t><figure>
              <artwork><![CDATA[    
    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Subopt Code  |     Length    |                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .      Operator-Identifier      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
            <t hangText="Subopt Code"><vspace blankLines="0" />
	      17</t>

              <t hangText="Length"><vspace blankLines="0" /> 4</t>

              <t hangText="Operator-Identifier"><vspace blankLines="0" />The Operator-Identifier is a variable-length Private Enterprise
              Number (PEN) <xref target="SMI"/> encoded in a network byte order. Please refer to Section 3.1.3 of
              <xref target="RFC6757"/> for additional details.
              </t>
              
            </list></t>
        </section>




        <section anchor="sec_4-4-2" title="DHCPv4 Operator-Realm Sub-option">
          <t><figure>
              <artwork><![CDATA[
    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Subopt Code  |     Length    |                               |
   |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   .                                                               .
   .                        Operator-Realm                         .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Subopt Code"><vspace blankLines="0" />
              18</t>

              <t hangText="Length"><vspace blankLines="0" /> The length of the
              Operator-Realm field.</t>

              <t hangText="Operator-Realm"><vspace blankLines="0" />Realm of
               the operator (e.g., EXAMPLE.COM). Please refer to Section 3.1.3 of
               <xref target="RFC6757"/> for additional details.</t>

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

    <section anchor="sec_5" title="DHCPv6 Access-Network-Identifier Options">
      <t>The Access-Network-Identifier options defined here may be added by
      the DHCPv6 relay agent in Relay-forward messages.</t>

      <t><figure suppress-title="true">
          <artwork><![CDATA[
   +=================+=======================================+
   |    OPTION CODE  |      OPTION DESCRIPTION               |              
   +=================+=======================================+
   |       105       | OPTION_ANI_ATT                        | 
   +=========================================================+
   |       106       | OPTION_ANI_NETWORK_NAME               |
   +=========================================================+
   |       107       | OPTION_ANI_AP_NAME                    |
   +=========================================================+
   |       108       | OPTION_ANI_AP_BSSID                   |
   +=========================================================+
   |       109       | OPTION_ANI_OPERATOR_ID                |
   +=========================================================+
   |       110       | OPTION_ANI_OPERATOR_REALM             |
   +=========================================================+
]]></artwork>
        </figure></t>

      <section anchor="sec_5-1" title="DHCPv6 Access-Technology-Type Option">

<t>This option is used for exchanging the type of access technology
the client uses to attach to the network. Its format is as follows:</t>

        <t><figure>
            <artwork><![CDATA[   
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         OPTION_ANI_ATT        |           Option-Len          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Reserved    |       ATT     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t><list style="hanging">
            <t hangText="Option-Code"><vspace blankLines="0" /> OPTION_ANI_ATT
            (105)</t>

            <t hangText="Option-Len"><vspace blankLines="0" /> 2</t>

            <t hangText="Reserved"><vspace blankLines="0" />An 8-bit field
            that is unused for now. The value MUST be initialized to 0 by the
            sender and MUST be ignored by the receiver.</t>

            <t hangText="Access-Technology-Type (ATT):"><vspace
            blankLines="0" /> The contents of this field are the same as the
            ATT field described in <xref target="sec_4-2"></xref>.</t>
          </list></t>
      </section>

      <section anchor="sec_5-2" title="DHCPv6 Network-Identifier Options">
        <t>These options can be used for carrying the name of the access
        network (e.g., an SSID in the case of an IEEE 802.11 access network or
	a PLMN Identifier <xref target="TS23003"></xref> in the case of a 3GPP
	access network) and
        an Access-Point Name to which the client is attached. The format of these
        options is defined below.</t>

        <section anchor="sec_5-2-1" title="DHCPv6 Network-Name Option">
          <t><figure suppress-title="true">
              <artwork><![CDATA[   
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    OPTION_ANI_NETWORK_NAME    |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                     Network-Name (e.g., SSID or PLMNID)       .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Option-Code"><vspace blankLines="0" />
              OPTION_ANI_NETWORK_NAME (106)</t>

              <t hangText="Option-Len"><vspace blankLines="0" /> The length of
              the Network-Name field.</t>

              <t hangText="Network-Name"><vspace blankLines="0" /> The
              contents of this field are the same as the Network-Name field
              described in <xref target="sec_4-3-1"></xref>.</t>
            </list></t>
        </section>

        <section anchor="sec_5-2-2" title="DHCPv6 Access-Point-Name Option">
          <t><figure suppress-title="true">
              <artwork><![CDATA[   
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       OPTION_ANI_AP_NAME      |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                        Access-Point-Name                      .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Option-Code"><vspace blankLines="0" />
              OPTION_ANI_AP_NAME (107)</t>

              <t hangText="Option-Len"><vspace blankLines="0" /> The length of
              the Access-Point-Name field.</t>

              <t hangText="Access-Point-Name"><vspace blankLines="0" /> The
              contents of this field are the same as the Access-Point-Name
              field described in <xref target="sec_4-3-2"></xref>.</t>
            </list></t>
        </section>

        <section anchor="sec_5-2-3" title="DHCPv6 Access-Point-BSSID Option">
          <t><figure suppress-title="true">
              <artwork><![CDATA[   
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       OPTION_ANI_AP_BSSID     |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
   |                        Access-Point-BSSID                     |
   +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Option-Code"><vspace blankLines="0" />
              OPTION_ANI_AP_BSSID (108)</t>

              <t hangText="Option-Len"><vspace blankLines="0" />6</t>

              <t hangText="Access-Point-BSSID"><vspace blankLines="0" /> The
              contents of this field are the same as the Access-Point-BSSID
              field described in <xref target="sec_4-3-3"></xref>.</t>
            </list></t>
        </section>
      </section>




      <section anchor="sec_5-3" title="DHCPv6 Operator-Identifier Options">
        <t>The Operator-Identifier options can be used for carrying the
        Operator-Identifier of the access network to which the client is
        attached. The format of these options is defined below.</t>



        <section anchor="sec_5-3-1"
                 title="DHCPv6 Operator-Identifier Option">
          <t><figure>
              <artwork><![CDATA[ 
    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     OPTION_ANI_OPERATOR_ID    |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
   |                      Operator-Identifier                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Option-Code"><vspace blankLines="0" />
              OPTION_ANI_OPERATOR_ID (109)</t>

              <t hangText="Option-Len"><vspace blankLines="0" /> 4</t>

              <t hangText="Operator-Identifier"><vspace blankLines="0" />
               The contents of this field are the same as the
               DHCPv4 Operator-Identifier Sub-option field described in
               <xref target="sec_4-4-1"></xref>.</t>
               </list></t>
        </section>

        <section anchor="sec_5-3-2" title="DHCPv6 Operator-Realm Option">
          <t><figure>
              <artwork><![CDATA[   
    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   OPTION_ANI_OPERATOR_REALM   |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                        Operator-Realm                         .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t><list style="hanging">
              <t hangText="Option-Code"><vspace blankLines="0" />
              OPTION_ANI_OPERATOR_REALM (110)</t>

              <t hangText="Option-Len"><vspace blankLines="0" /> The length of
              the Operator-Realm field.</t>

              <t hangText="Operator-Realm"><vspace blankLines="0" /> The
              contents of this field are the same as the Operator-Realm field
              described in <xref target="sec_4-4-2"></xref>.</t>
            </list></t>
        </section>
      </section>
    </section>


    <section anchor="sec_rabehavior" title="Relay Agent Behavior">
      <t>DHCPv4 relay agents MAY include sub-options as defined in Section 4.2
      through 4.4 of <xref target="RFC3046"/> in the Relay Agent Information option for providing
      information about the access network over which DHCP messages from the
      client are received.</t>

      <t>
      The DHCPv4 relay agent MUST include the DHCPv4 Access-Technology-Type
      Sub-option (<xref target="sec_4-2"></xref>) when including any of these sub-options in the DHCP message:
      DHCPv4 Network-Name Sub-option (<xref target="sec_4-3-1"></xref>),
      DHCPv4 Access-Point-Name Sub-option (<xref target="sec_4-3-2"></xref>), and
      DHCPv4 Access-Point-BSSID Sub-option (<xref target="sec_4-3-3"></xref>).  
      </t>

<t>DHCPv6 Relay Agents MAY include options (defined in <xref target="sec_5"/>) in the
Relay-forward message when forwarding any DHCPv6 message type from
clients to the servers to provide information about the access
network over which DHCPv6 messages from the client are received.</t>

      <t>
      The DHCPv6 relay agent MUST include the DHCPv6 Access-Technology-Type
      Option (<xref target="sec_5-1"></xref>) when including any of these options in the DHCP message: 
      DHCPv6 Network-Name Option (<xref target="sec_5-2-1"></xref>),
      DHCPv6 Access-Point-Name Option (<xref target="sec_5-2-2"></xref>), and
      DHCPv6 Access-Point-BSSID Option (<xref target="sec_5-2-3"></xref>).  
      </t>





    </section>

    <section anchor="sec_serverbehavior" title="Server Behavior">
      <t>
      The DHCPv4 base specification <xref target="RFC2131"></xref> requires that the 
      DHCPv4 server ignore the DHCPv4 Access-Network-Identifier Option if it does not 
      understand the option.</t>
      
      <t>
      If the DHCPv4 server does not understand the received
      sub-option defined in Sections 4.1 through 4.4 of <xref
      target="RFC3046"/>, the DHCPv4 Relay-Agent-Information Option, it MUST ignore those
      sub-options only. If the DHCPv4 server is able to
      process the DHCPv4 Access-Network-Identifier sub-options defined in
      Sections 4.1 through 4.4 of <xref target="RFC3046"/>, the DHCPv4 Relay-Agent-Information
      Option, it MAY use this information obtained from the sub-option for 
      address pool selection or for policy decisions as per its configured policy.
      This information obtained from the sub-option SHOULD NOT be stored unless
      it is absolutely needed. However, if it is stored, the information MUST be 
      deleted as quickly as possible to eliminate any possibility of 
      the information getting exposed to an intruder.
      </t>

     <t>The DHCPv4 server MUST ignore the received DHCPv4 Access-Network-Identifier                                                     
      Option and process the rest of the message as per the base DHCPv4 specifications
      if the received DHCPv4 message does not include the
      DHCPv4 Access-Technology-Type Sub-option (<xref target="sec_4-2"></xref>) but
      does include any one of these other options:
      DHCPv4 Network Name Sub-option (<xref target="sec_4-3-1"></xref>),
      DHCPv4 Access-Point-Name Sub-option (<xref target="sec_4-3-2"></xref>),
      or DHCPv4 Access-Point-BSSID Sub-option (<xref target="sec_4-3-3"></xref>).  
      </t>

      <t>
      DHCPv6 base specification <xref target="RFC3315"></xref> requires that the 
      DHCPv6 server ignore the DHCPv6 Access-Network-Identifier Option if it does not 
      understand the option.</t>

      <t>If the DHCPv6 server receives the options defined in Section 5 and is
      configured to use the options defined in Section 5, it SHOULD
      look for the DHCPv6 Access-Network-Identifier options in the
      Relay-forward message of the DHCPv6 relay agent(s) based on its
      configured policy. The server MAY use received ANI options for its
      address pool selection policy decisions as per its configured
      policy.  This information obtained from the options SHOULD NOT be stored unless
      it is absolutely needed. However, if it is stored, the information MUST be
      deleted as quickly as possible to eliminate any possibility of
      the information getting exposed to an intruder.
      </t>

      <t>The DHCPv6 server MUST ignore the received DHCPv6 Access-Network-Identifier                                                     
      Option and process the rest of the message as per the base DHCPv6 specifications
      if the received DHCPv6 message does not include the
      DHCPv6 Access-Technology-Type Option (<xref target="sec_5-1"></xref>)
      but it does includes any one of these other options:
      DHCPv6 Network-Name Option (<xref target="sec_5-2-1"></xref>),
      DHCPv6 Access-Point-Name Option (<xref target="sec_5-2-2"></xref>),
      or DHCPv6 Access-Point-BSSID Option (<xref target="sec_5-2-3"></xref>).  
      </t>




    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>IANA has assigned sub-option codes for the following DHCPv4
      sub-options from the "DHCP Relay Agent Sub-Option Codes" registry,
      &lt;http://www.iana.org/assignments/bootp-dhcp-parameters&gt;:</t>

      <t><figure suppress-title="true">
          <artwork><![CDATA[
   +=================+=======================================+
   | SUB-OPTION CODE |     SUB-OPTION DESCRIPTION            |              
   +=================+=======================================+
   |       13        | Access-Technology-Type Sub-option     | 
   +=========================================================+
   |       14        | Access-Network-Name Sub-option        |
   +=========================================================+
   |       15        | Access-Point-Name Sub-option          |
   +=========================================================+
   |       16        | Access-Point-BSSID Sub-option         |
   +=========================================================+
   |       17        | Operator-Identifier Sub-option        |
   +=========================================================+
   |       18        | Operator-Realm Sub-option             |
   +=========================================================+
 ]]></artwork>
        </figure></t>

      <t>IANA has assigned option codes for the following DHCPv6
      options from the "Option Codes" registry for DHCPv6,
      &lt;http://www.iana.org/assignments/dhcpv6-parameters&gt;, as specified
      in <xref target="RFC3315"></xref>:</t>

      <t><figure>
          <artwork><![CDATA[       
   +=================+=======================================+
   |   OPTION CODE   |      OPTION DESCRIPTION               |              
   +=================+=======================================+
   |       105       | OPTION_ANI_ATT                        | 
   +=========================================================+
   |       106       | OPTION_ANI_NETWORK_NAME               |
   +=========================================================+
   |       107       | OPTION_ANI_AP_NAME                    |
   +=========================================================+
   |       108       | OPTION_ANI_AP_BSSID                   |
   +=========================================================+
   |       109       | OPTION_ANI_OPERATOR_ID                |
   +=========================================================+
   |       110       | OPTION_ANI_OPERATOR_REALM             |
   +=========================================================+
 ]]></artwork>
        </figure></t>
    </section>

    <section anchor="sec_seccons" title="Security Considerations">
      <t>Since there is no privacy protection for DHCP messages, an
      eavesdropper who can monitor the link between the DHCP server and relay
      agent can discover access-network information.</t>

      <t><xref target="RFC3118"></xref> and <xref target="RFC3315"></xref>
      describe many of the threats in using DHCP. <xref
      target="RFC3118"></xref> and <xref target="RFC3315"></xref> each provide
      a solution; the Authentication Option for DHCPv4 and DHCPv6
      (respectively). However, neither of these options are in active use and
      therefore are not a viable mitigation option. DHCP itself is inherently
      insecure and thus link-layer confidentiality and integrity protection
      SHOULD be employed to reduce the risk of disclosure and tampering.</t>

      <t>It is possible for a rogue DHCP relay agent to insert or overwrite
      with incorrect Access-Network-Identifier options for malicious purposes.
      A DHCP client can also pose as a rogue DHCP relay agent by sending
      incorrect Access-Network-Identifier options. While the introduction of
      fraudulent DHCP relay agent information options can be prevented by a
      perimeter defense that blocks these options unless the DHCP relay agent
      is trusted, a deeper defense using the authentication sub-option for the
      DHCPv4 Relay-Agent-Information Option <xref target="RFC4030"></xref>
      SHOULD be deployed as well. Administrators SHOULD configure DHCP servers 
      that use this option to communicate with their relay agents using IPsec, 
      as described in Section 21.1 of <xref target="RFC3315"></xref>.
      </t>

      <t>The information elements that this document is exposing are the
      client&rsquo;s access-network information. These pertain to the access
      network to which the client is attached, such as Access-Technology Type
      (e.g., WLAN, Ethernet, etc.), Access-Point Identity (Name, BSSID), and
      Operator-Identifier and Operator-Realm. In deployments where this information cannot be secured 
      using IPsec <xref target="RFC4301"></xref> or other security protocols, 
      administrators SHOULD disable the capability specified in this document on 
      the DHCP entities. </t>
    </section>

  </middle>

  <back>

    <references title="Normative References">
      &RFC2119;

      &RFC2131;

      &RFC3315;

      &RFC3046;
    </references>

    <references title="Informative References">
      &RFC3118;

      &RFC4030;

      &RFC5213;

      &RFC5844;

      &RFC6757;

      &RFC3629;

      &RFC6991;

      &RFC4301;

      <reference anchor="ANI"
		 target="http://www.3gpp2.org/public_html/specs/A00-20110419-002Er0%20A.S0008-C%20v4.0%20HRPD%20IO\S-Pub_20110513.pdf">
        <front>
          <title>Interoperability Specification (IOS) for High Rate Packet
          Data (HRPD) Radio Access Network Interfaces with Session
          Control in the Access Network</title>

          <author fullname="3GPP2" surname="">
            <organization></organization>
          </author>

          <date month="April" year="2011" />
        </front>
	<seriesInfo name="3GPP2 A.S0008-C" value="v4.0"/>
      </reference>

      <reference anchor="SMI" target="https://www.iana.org/assignments/enterprise-numbers">
        <front>
          <title>PRIVATE ENTERPRISE NUMBERS, SMI Network Management Private
          Enterprise Codes</title>

          <author fullname="" surname="">
            <organization>IANA</organization>
          </author>

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

<reference anchor='TS23003'>
<front>
<title>Numbering, addressing and identification</title>
<author><organization>3GPP</organization></author>
<date month='December' year='2015' />
</front>

<seriesInfo name='3GPP TS' value='23.003 13.4.0' />
<format type='HTML' target='http://www.3gpp.org/ftp/Specs/html-info/23003.htm' />
</reference>

<reference anchor='TS23203'>
<front>
<title>Policy and charging control architecture</title>
<author><organization>3GPP</organization></author>
<date month='December' year='2015' />
</front>

<seriesInfo name='3GPP TS' value='23.203 13.6.0' />
<format type='HTML' target='http://www.3gpp.org/ftp/Specs/html-info/23203.htm' />
</reference>

<reference anchor='TS23402'>
<front>
<title>Architecture enhancements for non-3GPP accesses</title>
<author><organization>3GPP</organization></author>
<date month='December' year='2015' />
</front>

<seriesInfo name='3GPP TS' value='23.402 13.4.0' />
<format type='HTML' target='http://www.3gpp.org/ftp/Specs/html-info/23402.htm' />
</reference>
    </references>

<section anchor="Acknowledgements" title="Acknowledgements" numbered="no">
 <t>The authors would like to thank Kim Kinnear, Ted Lemon, Gaurav Halwasia, 
Hidetoshi Yokota, Sheng Jiang, and Francis Dupont for their valuable input. 
Also, thank you to Tomek Mrugalski for a thorough review of the document.</t>
</section>
   </back>
</rfc>
