Network Working Group                                       T. Mrugalski
Internet-Draft                                                       ISC
Updates: 3315 (if approved)                               March 29, 2012
Intended status: Standards Track
Expires: September 30, 2012


                    Requesting Suboptions in DHCPv6
                draft-mrugalski-dhc-dhcpv6-suboptions-04

Abstract

   DHCPv6 clients may use Option Request Option (ORO) defined in RFC3315
   [RFC3315] to specify, which options they would like to have
   configured by DHCPv6 servers.  Clients may also be interested in
   specific options that do not appear in DHCPv6 message directly (top-
   level options), but rather as nested options or sub-options (i.e.
   options conveyed within other options).  This document clarifies how
   to use already defined ORO to request sub-options.  It also defines
   new Option Exclude Option (OXO) for cases, when client does not want
   requested options to appear within specific options.  This document
   updates RFC3315 (if approved).

Requirements Language

   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 RFC 2119 [RFC2119].

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 http://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 30, 2012.

Copyright Notice




Mrugalski              Expires September 30, 2012               [Page 1]


Internet-Draft       Requesting Suboptions in DHCPv6          March 2012


   Copyright (c) 2012 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
   (http://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 . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  Suboption Request Procedure . . . . . . . . . . . . . . . . . . 3
   4.  Option Exclude Option . . . . . . . . . . . . . . . . . . . . . 4
   5.  Justification . . . . . . . . . . . . . . . . . . . . . . . . . 5
   6.  DHCPv6 Client Behavior  . . . . . . . . . . . . . . . . . . . . 5
   7.  DHCPv6 Server Behavior  . . . . . . . . . . . . . . . . . . . . 5
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
   9.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
   10. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 6
   11. Normative References  . . . . . . . . . . . . . . . . . . . . . 6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 6























Mrugalski              Expires September 30, 2012               [Page 2]


Internet-Draft       Requesting Suboptions in DHCPv6          March 2012


1.  Introduction

   There are 2 ways a DHCPv6 client can inform a server about its intent
   to have an option configured.  The first (mandatory) way is to send
   Option Request Option (ORO), defined in [RFC3315].  The second way
   (optional, can be used as an addition to the first method) is to send
   the actual requested option to provide hints to a server.

   Clients may also be interested in receiving specific sub-options
   (i.e. options that do not appear in DHCPv6 messages directly, but
   rather within other options).  Unfortunately, there is no clear way
   for clients to request such sub-options.  [RFC3315] does not provide
   any guidance regarding such problem.  This document clarifies how
   clients should request sub-options.


2.  Terminology

   This section defines terms used in this document.

   Option - Any DHCPv6 Option, defined according to format specified in
   [RFC3315].  Option may appear in DHCPv6 message directly or within
   other options.

   Top-Level Option - an option that appears in DHCPv6 directly.  Most
   existing options are top-level options.

   Sub-Option - An option that appears not as top-level option, but
   rather within other option.  An example of such option is IAADDR that
   may only appear within IA_NA or IA_TA options.  Sub-options are
   sometimes referred to as nested options.

   Scope - Any place (message or option) that is allowed to convey
   DHCPv6 options.  Examples of scope are top-level (options conveyed
   directly within DHCPv6 message), IA_NA (options conveyed within
   specific instance of IA_NA option), or IA_PD (options conveyed within
   specific instance of IA_PD option).  Each instance of an option that
   can convey sub-options is a separate scope.  For example, if a
   message includes two IA_NA options, there are 3 scopes: top-level,
   ia_na1 and ia_na2.


3.  Suboption Request Procedure

   Clients that want specific sub-option provided by the server, MUST
   include ORO within message directly (as they do for normal, top-level
   options) and include option codes for options that are expected to
   appear in message directly (top-level options) and within other



Mrugalski              Expires September 30, 2012               [Page 3]


Internet-Draft       Requesting Suboptions in DHCPv6          March 2012


   options (sub-options) as well.  The section 22.7 of [RFC3315] still
   applies, but this document clarifies that sub-options can be
   requested that way as well.

   Client that expects requested options to appear only in some option
   instances, SHOULD include Option Exclude Option (OXO) within scope
   where it does not want to receive specific options.

   Client MAY include several instances of ORO, one for each scope.
   Client MUST NOT include more than one ORO in each scope.

   Discussion: The following approach has the benefit of backward
   compatibility.  Server that does not support OXO will just assign
   requested suboptions in every suboption.  Furthermore it is envisaged
   that requesting sub-options in only some scope, but not others will
   be relatively rare and in most cases clients will want to get
   specific option in every scope that requested option is valid for.


4.  Option Exclude Option

   This option is sent by a client to inform a server that it doesn't
   want to receive specific option within a scope OXO is included in.

   Clients SHOULD send OXO only if it requested a given option in ORO,
   but does not want to receive requested option in a given scope.


      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_OXO          |           option-len          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     excluded-option-code-1    |     excluded-option-code-2    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                              ...                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                      Figure 1: Option Exclude Option

   o  option-code: OPTION_OXO (TBD)

   o  option-length: (number of excluded options) x 2

   o  excluded-option-code: one or more two octet wide fields that
      specify option codes that are excluded in this particular scope.




Mrugalski              Expires September 30, 2012               [Page 4]


Internet-Draft       Requesting Suboptions in DHCPv6          March 2012


5.  Justification

   As DHCPv6 protocol evolves and continues to be used to configure
   increasingly complex features, number of nested options will
   increase.  To avoid each new document repeating the same sub-option
   request procedure, it seems reasonable to define such uniform
   procedure now.  Even worse, such documents may propose different ways
   of requesting different options.  This would considerably complicate
   server implementations.

   Another alternative possible approach would be to simply use ORO as
   it is already defined.  Client could simply include single instance
   of ORO to express desire to receive specific suboptions, without
   using OXO.  Several existing server implementations deal with all
   options in an uniform way.  For example, in case when client
   requestes two prefixes (sends two IA_PD options), but expects only
   one of those prefixes to have PD_EXCLUDE option.  Without OXO, such
   flexibility is not possible.


6.  DHCPv6 Client Behavior

   A client that is interested in specific suboptions SHOULD send ORO
   requesting both top-level options and sub-options.

   If a client wants to receive specific suboptions only in some
   options, it should send OXO within options that does not want to
   receive excluded options in.

   A client MUST NOT send OXO in message directly.


7.  DHCPv6 Server Behavior

   Server processes the message received from client in a regular way,
   as explained in [RFC3315].  The list in ORO includes both top-level
   options and sub-options as well.  Server that supports OXO SHOULD NOT
   include requested suboptions within scopes that excludes given
   option.


8.  IANA Considerations

   IANA is kindly requested to allocate DHCPv6 option code TBD to the
   OPTION_OXO.  This value should be added to the DHCPv6 option code
   space defined in Section 24.3 of [RFC3315].





Mrugalski              Expires September 30, 2012               [Page 5]


Internet-Draft       Requesting Suboptions in DHCPv6          March 2012


9.  Security Considerations

   TBD


10.  Acknowledgements

   Author would like to thank Bernie Volz, Jouni Korhonen, Ole Troan and
   Ted Lemon for their insightful comments.

   This work has been partially supported by Department of Computer
   Communications (Gdansk University of Technology) and by the Polish
   Ministry of Science and Higher Education under the European Regional
   Development Fund, Grant No.  POIG.01.01.02-00-045/09-00 (Future
   Internet Engineering Project).


11.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3315]  Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
              and M. Carney, "Dynamic Host Configuration Protocol for
              IPv6 (DHCPv6)", RFC 3315, July 2003.


Author's Address

   Tomasz Mrugalski
   Internet Systems Consortium, Inc.
   950 Charter Street
   Redwood City, CA  94063
   USA

   Phone: +1 650 423 1345
   Email: tomasz.mrugalski@gmail.com














Mrugalski              Expires September 30, 2012               [Page 6]