draft-ietf-dhc-option-guidelines-12.txt   draft-ietf-dhc-option-guidelines-13.txt 
Dynamic Host Configuration Working Group D. Hankins Dynamic Host Configuration Working Group D. Hankins
Internet-Draft Google Internet-Draft Google
Updates: 3315 (if approved) T. Mrugalski Updates: 3315 (if approved) T. Mrugalski
Intended status: Best Current Practice M. Siodelski Intended status: Best Current Practice M. Siodelski
Expires: December 31, 2013 ISC Expires: January 30, 2014 ISC
S. Jiang S. Jiang
Huawei Technologies Co., Ltd Huawei Technologies Co., Ltd
S. Krishnan S. Krishnan
Ericsson Ericsson
June 29, 2013 July 29, 2013
Guidelines for Creating New DHCPv6 Options Guidelines for Creating New DHCPv6 Options
draft-ietf-dhc-option-guidelines-12 draft-ietf-dhc-option-guidelines-13
Abstract Abstract
This document provides guidance to prospective DHCPv6 Option This document provides guidance to prospective DHCPv6 Option
developers to help them creating option formats that are easily developers to help them creating option formats that are easily
adoptable by existing DHCPv6 software. This document updates adoptable by existing DHCPv6 software. This document updates
RFC3315. RFC3315.
Status of This Memo Status of This Memo
skipping to change at page 1, line 39 skipping to change at page 1, line 39
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 31, 2013. This Internet-Draft will expire on January 30, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 16 skipping to change at page 2, line 16
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 1. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
3. When to Use DHCPv6 . . . . . . . . . . . . . . . . . . . . . 4 3. When to Use DHCPv6 . . . . . . . . . . . . . . . . . . . . . 4
4. General Principles . . . . . . . . . . . . . . . . . . . . . 4 4. General Principles . . . . . . . . . . . . . . . . . . . . . 4
5. Reusing Other Options . . . . . . . . . . . . . . . . . . . . 5 5. Reusing Other Options Formats . . . . . . . . . . . . . . . . 5
5.1. Option with IPv6 addresses . . . . . . . . . . . . . . . 5 5.1. Option with IPv6 addresses . . . . . . . . . . . . . . . 5
5.2. Option with a single flag (boolean) . . . . . . . . . . . 6 5.2. Option with a single flag (boolean) . . . . . . . . . . . 6
5.3. Option with IPv6 prefix . . . . . . . . . . . . . . . . . 7 5.3. Option with IPv6 prefix . . . . . . . . . . . . . . . . . 7
5.4. Option with 32-bit integer value . . . . . . . . . . . . 8 5.4. Option with 32-bit integer value . . . . . . . . . . . . 8
5.5. Option with 16-bit integer value . . . . . . . . . . . . 8 5.5. Option with 16-bit integer value . . . . . . . . . . . . 8
5.6. Option with 8-bit integer value . . . . . . . . . . . . . 8 5.6. Option with 8-bit integer value . . . . . . . . . . . . . 9
5.7. Option with URI . . . . . . . . . . . . . . . . . . . . . 9 5.7. Option with URI . . . . . . . . . . . . . . . . . . . . . 9
5.8. Option with Text String . . . . . . . . . . . . . . . . . 10 5.8. Option with Text String . . . . . . . . . . . . . . . . . 10
5.9. Option with variable length data . . . . . . . . . . . . 11 5.9. Option with variable length data . . . . . . . . . . . . 11
5.10. Option with DNS Wire Format Domain Name List . . . . . . 12 5.10. Option with DNS Wire Format Domain Name List . . . . . . 12
6. Avoid Conditional Formatting . . . . . . . . . . . . . . . . 12 6. Avoid Conditional Formatting . . . . . . . . . . . . . . . . 12
7. Avoid Aliasing . . . . . . . . . . . . . . . . . . . . . . . 13 7. Avoid Aliasing . . . . . . . . . . . . . . . . . . . . . . . 13
8. Choosing between FQDN and address . . . . . . . . . . . . . . 13 8. Choosing between FQDN and address . . . . . . . . . . . . . . 13
9. Encapsulated options in DHCPv6 . . . . . . . . . . . . . . . 15 9. Encapsulated options in DHCPv6 . . . . . . . . . . . . . . . 15
10. Additional States Considered Harmful . . . . . . . . . . . . 16 10. Additional States Considered Harmful . . . . . . . . . . . . 16
11. Configuration changes occur at fixed times . . . . . . . . . 16 11. Configuration changes occur at fixed times . . . . . . . . . 17
12. Multiple provisioning domains . . . . . . . . . . . . . . . . 17 12. Multiple provisioning domains . . . . . . . . . . . . . . . . 17
13. Chartering Requirements and Advice for Responsible ADs . . . 17 13. Chartering Requirements and Advice for Responsible ADs . . . 17
14. Considerations for Creating New Formats . . . . . . . . . . . 19 14. Considerations for Creating New Formats . . . . . . . . . . . 19
15. Option Size . . . . . . . . . . . . . . . . . . . . . . . . . 19 15. Option Size . . . . . . . . . . . . . . . . . . . . . . . . . 19
16. Singleton options . . . . . . . . . . . . . . . . . . . . . . 20 16. Singleton options . . . . . . . . . . . . . . . . . . . . . . 20
17. Option Order . . . . . . . . . . . . . . . . . . . . . . . . 20 17. Option Order . . . . . . . . . . . . . . . . . . . . . . . . 20
18. Relay Options . . . . . . . . . . . . . . . . . . . . . . . . 21 18. Relay Options . . . . . . . . . . . . . . . . . . . . . . . . 21
19. Clients Request their Options . . . . . . . . . . . . . . . . 21 19. Clients Request their Options . . . . . . . . . . . . . . . . 21
20. Transition Technologies . . . . . . . . . . . . . . . . . . . 22 20. Transition Technologies . . . . . . . . . . . . . . . . . . . 22
21. Recommended sections in the new document . . . . . . . . . . 22 21. Recommended sections in the new document . . . . . . . . . . 22
skipping to change at page 5, line 11 skipping to change at page 5, line 11
special processing (such as the Fully Qualified Domain Name (FQDN) special processing (such as the Fully Qualified Domain Name (FQDN)
option [RFC4704]), and so forth; these options carry data that is the option [RFC4704]), and so forth; these options carry data that is the
result of a routine in some DHCPv6 software. result of a routine in some DHCPv6 software.
The guidelines laid out here should be applied in a relaxed manner The guidelines laid out here should be applied in a relaxed manner
for the protocol class of options. Wherever special case code is for the protocol class of options. Wherever special case code is
already required to adopt the DHCPv6 option, it is substantially more already required to adopt the DHCPv6 option, it is substantially more
reasonable to format the option in a less generic fashion, if there reasonable to format the option in a less generic fashion, if there
are measurable benefits to doing so. are measurable benefits to doing so.
5. Reusing Other Options 5. Reusing Other Options Formats
The easiest approach to manufacturing trivially deployable DHCPv6 The easiest approach to manufacturing trivially deployable DHCPv6
Options is to assemble the option out of whatever common fragments Options is to assemble the option out of whatever common fragments
fit - possibly allowing a group of data elements to repeat to fill fit - possibly allowing a group of data elements to repeat to fill
the remaining space (if present) and so provide multiple values. the remaining space (if present) and so provide multiple values.
Place all fixed size values at the start of the option, and any Place all fixed size values at the start of the option, and any
variable/indeterminate sized value at the tail end of the option. variable/indeterminate sized value at the tail end of the option.
This means that implementations will likely be able to reuse code This means that implementations will likely be able to reuse code
paths designed to support the other options. paths designed to support the other options.
skipping to change at page 5, line 34 skipping to change at page 5, line 34
option formats, and the advantages that new or specialized formats option formats, and the advantages that new or specialized formats
can provide. In general, it is usually preferable to reuse can provide. In general, it is usually preferable to reuse
previously used option formats. previously used option formats.
However, it isn't very practical to consider the bulk of DHCPv6 However, it isn't very practical to consider the bulk of DHCPv6
options already allocated, and consider which of those solve a options already allocated, and consider which of those solve a
similar problem. So, the following list of common option format data similar problem. So, the following list of common option format data
elements is provided as a shorthand. Please note that it is not elements is provided as a shorthand. Please note that it is not
complete in terms of exampling every option format ever devised. complete in terms of exampling every option format ever devised.
If more complex options are needed, those basic formats mentioned
here may be considered privimites (or 'fragment types') that can be
used to build more complex formats. It should be noted that it is
often easier to implement two options with trivial formats than one
option with more complex format. That is not unconditional
requirement though. In some cases splitting one complex option into
two or more simple options introduces inter-option dependencies that
should be avoided. In such a case, it is usually better to keep one
complex option.
5.1. Option with IPv6 addresses 5.1. Option with IPv6 addresses
This option format is used to carry one or many IPv6 addresses. In This option format is used to carry one or many IPv6 addresses. In
some cases the number of allowed address is limited (e.g. to one): some cases the number of allowed address is limited (e.g. to one):
0 1 2 3 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 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-code | option-len | | option-code | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 26, line 17 skipping to change at page 26, line 17
and can introduce errors, so authors are equally strongly advised to and can introduce errors, so authors are equally strongly advised to
refer to the base specification for any such validation language refer to the base specification for any such validation language
rather than copying it into the new specification. rather than copying it into the new specification.
24. IANA Considerations 24. IANA Considerations
This document has no actions for IANA. This document has no actions for IANA.
25. Acknowledgements 25. Acknowledgements
Authors would like to thank Simon Perreault, Bernie Volz and Ted Authors would like to thank Simon Perreault, Bernie Volz, Ted Lemon,
Lemon for their comments. Bud Millwood and Ralph Droms for their comments.
26. References 26. References
26.1. Normative References 26.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
and M. Carney, "Dynamic Host Configuration Protocol for and M. Carney, "Dynamic Host Configuration Protocol for
skipping to change at page 26, line 41 skipping to change at page 26, line 41
26.2. Informative References 26.2. Informative References
[I-D.ietf-dhc-v4configuration] [I-D.ietf-dhc-v4configuration]
Rajtar, B. and I. Farrer, "Provisioning IPv4 Configuration Rajtar, B. and I. Farrer, "Provisioning IPv4 Configuration
Over IPv6 Only Networks", draft-ietf-dhc- Over IPv6 Only Networks", draft-ietf-dhc-
v4configuration-01 (work in progress), May 2013. v4configuration-01 (work in progress), May 2013.
[I-D.ietf-softwire-4rd] [I-D.ietf-softwire-4rd]
Despres, R., Jiang, S., Penno, R., Lee, Y., Chen, G., and Despres, R., Jiang, S., Penno, R., Lee, Y., Chen, G., and
M. Chen, "IPv4 Residual Deployment via IPv6 - a Stateless M. Chen, "IPv4 Residual Deployment via IPv6 - a Stateless
Solution (4rd)", draft-ietf-softwire-4rd-05 (work in Solution (4rd)", draft-ietf-softwire-4rd-06 (work in
progress), April 2013. progress), July 2013.
[I-D.ietf-softwire-map-dhcp] [I-D.ietf-softwire-map-dhcp]
Mrugalski, T., Troan, O., Dec, W., Bao, C., Mrugalski, T., Deng, X., Troan, O., Bao, C., Dec, W., and
leaf.yeh.sdo@gmail.com, l., and X. Deng, "DHCPv6 Options l. leaf.yeh.sdo@gmail.com, "DHCPv6 Options for
for Mapping of Address and Port", draft-ietf-softwire-map- configuration of Softwire Address and Port Mapped
dhcp-03 (work in progress), February 2013. Clients", draft-ietf-softwire-map-dhcp-04 (work in
progress), July 2013.
[RFC3046] Patrick, M., "DHCP Relay Agent Information Option", RFC [RFC3046] Patrick, M., "DHCP Relay Agent Information Option", RFC
3046, January 2001. 3046, January 2001.
[RFC3319] Schulzrinne, H. and B. Volz, "Dynamic Host Configuration [RFC3319] Schulzrinne, H. and B. Volz, "Dynamic Host Configuration
Protocol (DHCPv6) Options for Session Initiation Protocol Protocol (DHCPv6) Options for Session Initiation Protocol
(SIP) Servers", RFC 3319, July 2003. (SIP) Servers", RFC 3319, July 2003.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
Host Configuration Protocol (DHCP) version 6", RFC 3633, Host Configuration Protocol (DHCP) version 6", RFC 3633,
 End of changes. 12 change blocks. 
16 lines changed or deleted 27 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/