<?xml version="1.0"?>

<?rfc compact="yes" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY rfc3315 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml'>
]>

<rfc category="std"
     ipr="trust200902" 
     docName="<draft-ietf-dhc-dhcpv6-vendor-message-01.txt>">

<front>

<title>DHCPv6 Vendor-specific Message</title>

<author initials="B." surname="Volz" fullname="Bernard Volz">
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>1414 Massachusetts Ave.</street>
<city>Boxborough</city> <region>MA</region> <code>01719</code>
<country>USA</country>
</postal>
<phone>+1 978 936 0000</phone>
<email>volz@cisco.com</email>
</address>
</author>

<date day="3" month="August" year="2009"></date>
<workgroup>DHC</workgroup>
<keyword>I-D</keyword>
<keyword>Internet-Draft</keyword>
<keyword>DHCP</keyword>
<keyword>IPv6</keyword>
<keyword>DHCPv6</keyword>

<abstract>
<t>
This document requests a vendor-specific DHCPv6 message assignment.
This message can be used for vendor specific and experimental purposes.
</t>
</abstract>

</front>

<middle>

<!--
============================INTRODUCTION-BEGIN==========================
======= -->
<section title="Introduction">

<t>
DHCPv6 <xref target="RFC3315"/> specifies a mechanism for the
assignment of addresses and configuration information to nodes. The protocol
provides for 256 possible message codes, of which a small number are
assigned (<xref target="DHCPv6Params"/>). Each of the assigned message codes
have specific purposes. New message codes are assigned through Standards
Action (see Section 24 of <xref target="RFC3315"/>).
</t>

<t>
There may be a need for vendors of DHCPv6 clients, relay agents, or
servers to experiment with new capabilities that require new messages
to be exchanged between these elements. Thus, this document defines
the format for and requests that a new message code be reserved for
vendor-specific and experimental purposes.
</t>

</section>
<!-- ===================INTRODUCTION-END=========================== -->

<section 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"/>.
</t>

</section>

<!-- =============================================================== -->
<section title="Vendor-specific Message">

<t>
The vendor-specific message may be exchanged between
clients, relay agents, and/or servers and allows multiple vendors to
make use of the message for completely different and independent
purposes.
</t>

<t>
Clients and servers MAY chose to support this message; those that do
not, MUST discard the message. Relay agents SHOULD relay these messages
as they would other DHCPv6 messages unless the relay agent understands
the specific message and knows that the message was directed at it.
</t>

<t>
Applications using these messages MUST NOT assume that all
DHCPv6 clients, relay agents, and servers support them and MUST use good
networking practices when transmitting and retransmitting these messages
(see Section 14 of <xref target="RFC3315"/> for recommendations). For
some applications, it may be appropriate to use a Vendor Class or
Vendor-specific Information Option (<xref target="RFC3315"/>) in a
standard DHCPv6 exchange to negotiate whether the end-points support
the vendor-specific message.
</t>

<figure>
<preamble>The format of the DHCPv6 Vendor-specific Message is shown below:</preamble>
<artwork>
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    msg-type   |               enterprise-number               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  enterprise-  |     vendor    |                               |
   | number (contd)|    msg-type   |                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               .
   .                            options                            .
   .                       (variable length)                       .
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   msg-type             VENDOR-SPECIFIC (TBD)

   enterprise-number    The vendor's registered Enterprise Number as
                        registered with [EID].

   vendor-msg-type      The vendor's message-type. The values are
                        defined by the vendor identified in the
                        enterprise-number field and are not managed
                        by IANA.
                           
   options              The vendor specific options carried in this
                        message.
</artwork>
</figure>

<t>
The options MUST be encoded as a sequence of code/length/value fields
of identical format to the DHCPv6 options field. The option codes are
defined by the vendor identified in the enterprise-number field and
are not managed by IANA. Each of the options is formatted as follows:
</t>

<figure>
<artwork>
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          opt-code             |             option-len        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                          option-data                          .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   opt-code             The code for the option.

   option-len           An unsigned integer giving the length of the
                        option-data field in this option in octets.

   option-data          The data area for the option.
</artwork>
</figure>

</section>

<!-- =============================================================== -->

<section title="Security Considerations">

<t>
The Security Considerations of <xref target="RFC3315"/> apply.
</t>

<t>
This new message does potentially open up new avenues of attacking clients,
relay agents, or servers. The exact nature of these attacks will depend on
what functions and capabilities the message exposes and are thus not possible
to describe in this document. Clients and servers that have no use for these
messages SHOULD discard them and thus the threat is no different than before
this message was assigned.
</t>

<t>
Vendors using this new message should use the DHCPv6 security mechanisms
(the Auth option or IPsec <xref target="RFC3315"/> as appropriate) and
carefully consider the security implications of the functions and
capabilities exposed.
</t>

</section>

<!-- ================================================================= -->

<section title="IANA Considerations" anchor="section.IANA">
<t>
IANA is requested to assign DHCPv6 Message type 254 to the Vendor-specific
Message in the registry maintained in <xref target="DHCPv6Params"/>:
</t>

<list>
<t></t>
<t>254  VENDOR-SPECIFIC</t>
</list>

</section>

<!-- ============================================================= -->

</middle>

<!-- ============================================================= -->

<back>
<references title="Normative References">

&rfc2119;
&rfc3315;

<reference anchor="EID">
	<front>
	<title>Private Enterprise Numbers.
        http://www.iana.org/assignments/enterprise-numbers</title>
	<author surname="IANA">
	</author>
	</front>
</reference>


</references>
<references title="Informative References">

<reference anchor="DHCPv6Params">
	<front>
	<title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6).
        http://www.iana.org/assignments/dhcpv6-parameters</title>
	<author surname="IANA">
	</author>
	</front>
</reference>

</references>
</back>
</rfc>
