be sent outside of the min-balance/max-balance scheduled intervals has
been repaired.
+- Some definitions not in phase with the IANA registry were updated.
+
Changes since 4.0.0b3
- The reverse dns name for PTR updates on IPv6 addresses has been fixed to
-.\" $Id: dhcp-options.5,v 1.39 2007/09/17 17:52:01 dhankins Exp $
+.\" $Id: dhcp-options.5,v 1.40 2007/12/20 21:58:38 fdupont Exp $
.\"
.\" Copyright (c) 2004-2007 by Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (c) 1996-2003 by Internet Software Consortium
Multicast Controller Servers ("BCMS").
.RE
.PP
+.B option \fBbcms-controller-names\fR \fIdomain-list\fR\fB;\fR
+.RS 0.25i
+.PP
+This option contains the domain names of local Broadcast and
+Multicast Controller Servers ("BCMS") controllers which the client
+may use.
+.RE
+.PP
.B option \fBbootfile-name\fR \fItext\fR\fB;\fR
.RS 0.25i
.PP
.PP
.RE
.PP
-.B option \fBdhcp-parameter-request-list\fR \fIuint16\fR\fB;\fR
+.B option \fBdhcp-parameter-request-list\fR \fIuint16\fR [\fB,\fR
+\fIuint16\fR... ]\fB;\fR
.RS 0.25i
.PP
This option, when sent by the client, specifies which options the
instances in a packet - normally these are options which are digested
by the DHCP protocol software, and not by users or applications.
.PP
-.B option \fBdhcp6.client-id\fR \fIduid-type\fR \fIstring\fR\fB;\fR
+.B option \fBdhcp6.client-id\fR \fIstring\fR\fB;\fR
.RS 0.25i
.PP
This option specifies the client's DUID identifier. DUIDs are similar
but different from DHCPv4 client identifiers - there are documented duid
types:
.PP
-duid-llt
+.I duid-llt
.PP
-duid-en
+.I duid-en
.PP
-duid-ll
+.I duid-ll
.PP
This value should not be configured, but rather is provided by clients
and treated as an opaque identifier key blob by servers.
The Option Request Option ("ORO") is the DHCPv6 equivalent of the
parameter-request-list. Clients supply this option to ask servers
to reply with options relevant to their needs and use. This option
-must be configured in dhclient.conf (5). An easier way to manage
-the ORO will be supplied
+must not be directly configured, the request syntax in dhclient.conf (5)
+should be used instead.
.RE
.PP
.B option \fBdhcp6.preference\fR \fIuint8\fR\fB;\fR
the "vsio" option space.
.RE
.PP
-.B option \fBdhcp6.interface-id\fR \fItext\fR\fB;\fR
+.B option \fBdhcp6.interface-id\fR \fIstring\fR\fB;\fR
.RS 0.25i
.PP
The \fBinterface-id\fR option is manufactured by relay agents, and may
option is provided informationally only.
.RE
.PP
-.B option \fBdhcp6.ia-prefix\fR \fIdomain-list\fR\fB;\fR
+.B option \fBdhcp6.ia-prefix\fR \fIstring\fR\fB;\fR
.RS 0.25i
.PP
The \fBia-prefix\fR option is placed inside \fBia-pd\fR options in order
use the same "fqdn." encapsulated space, so are in all ways identical).
.RE
.PP
+.B option \fBdhcp6.lq-query\fR \fIstring\fR\fB;\fR
+.RS 0.25i
+.PP
+The \fBlq-query\fR option is used internally by for lease query.
+.RE
+.PP
+.B option \fBdhcp6.client-data\fR \fIstring\fR\fB;\fR
+.RS 0.25i
+.PP
+The \fBclient-data\fR option is used internally by for lease query.
+.RE
+.PP
+.B option \fBdhcp6.clt-time\fR \fIuint32\fR\fB;\fR
+.RS 0.25i
+.PP
+The \fBclt-time\fR option is used internally by for lease query.
+.RE
+.PP
+.B option \fBdhcp6.lq-relay-data\fR \fIip6-address string\fR\fB;\fR
+.RS 0.25i
+.PP
+The \fBlq-relay-data\fR option is used internally by for lease query.
+.RE
+.PP
+.B option
+.B dhcp6.lq-client-link
+.I ip6-address \fR[\fB,\fR
+.I ip6-address \fR... ]
+.B ;
+.RS 0.25i
+.PP
+The \fBlq-client-link\fR option is used internally by for lease query.
+.RE
+.PP
.RE
.SH DEFINING NEW OPTIONS
The Internet Systems Consortium DHCP client and server provide the
transmitted to the same client), so it is not necessary to configure this.
.SH SEE ALSO
dhcpd.conf(5), dhcpd.leases(5), dhclient.conf(5), dhcp-eval(5), dhcpd(8),
-dhclient(8), RFC2132, RFC2131, draft-ietf-dhc-agent-options-??.txt.
+dhclient(8), RFC2132, RFC2131, RFC3046, RFC3315.
.SH AUTHOR
The Internet Systems Consortium DHCP Distribution was written by Ted
Lemon under a contract with Vixie Labs. Funding for
{ "user-class", "t", &dhcp_universe, 77, 1 },
{ "slp-directory-agent", "fIa", &dhcp_universe, 78, 1 },
{ "slp-service-scope", "fto", &dhcp_universe, 79, 1 },
+ /* 80 is the zero-length rapid-commit (RFC 4039) */
{ "fqdn", "Efqdn.", &dhcp_universe, 81, 1 },
{ "relay-agent-information", "Eagent.", &dhcp_universe, 82, 1 },
+ /* 83 is iSNS (RFC 4174) */
+ /* 84 is unassigned */
{ "nds-servers", "IA", &dhcp_universe, 85, 1 },
{ "nds-tree-name", "t", &dhcp_universe, 86, 1 },
{ "nds-context", "t", &dhcp_universe, 87, 1 },
{ "bcms-controller-names", "D", &dhcp_universe, 88, 1 },
{ "bcms-controller-address", "Ia", &dhcp_universe, 89, 1 },
+ /* 90 is the authentication option (RFC 3118) */
+
{ "client-last-transaction-time", "L", &dhcp_universe, 91, 1 },
{ "associated-ip", "Ia", &dhcp_universe, 92, 1 },
#if 0
- /* Not defined by RFC yet */
+ /* Defined by RFC 4578 */
{ "pxe-system-type", "S", &dhcp_universe, 93, 1 },
{ "pxe-interface-id", "BBB", &dhcp_universe, 94, 1 },
{ "pxe-client-id", "BX", &dhcp_universe, 97, 1 },
{ "vivco", "Evendor-class.", &dhcp_universe, 124, 1 },
{ "vivso", "Evendor.", &dhcp_universe, 125, 1 },
#if 0
- /* Not defined by RFC yet.
+ /* Referenced by RFC 4578.
* DO NOT UNCOMMENT THESE DEFINITIONS: these names are placeholders
* and will not be used in future versions of the software.
*/
{ "tftp-server-address", "Ia", &dhcp_universe, 150, 1 },
#endif
#if 0
- /* PXELINUX options: not defined by RFC yet */
+ /* PXELINUX options: defined by RFC 5071 */
{ "pxelinux-magic", "BBBB", &dhcp_universe, 208, 1 },
{ "loader-configfile", "t", &dhcp_universe, 209, 1 },
{ "loader-pathprefix", "t", &dhcp_universe, 210, 1 },
/* Not yet considering for inclusion. */
#if 0
- /* RFC-ietf-geopriv-dhcp-civil-09.txt */
+ /* RFC4776 OPTIONS */
{ "geoconf-civic", "X", &dhcpv6_universe, 36, 1 },
#endif
*/
{ "fqdn", "Efqdn6-if-you-see-me-its-a-bug-bug-bug.",
&dhcpv6_universe, 39, 1 },
+
+ /* Not yet considering for inclusion. */
+#if 0
+ /* draft-ietf-dhc-paa-option-05 */
+ { "pana-agent", "6A", &dhcpv6_universe, 40, 1 },
+
+ /* RFC4833 OPTIONS */
+
+ { "new-posix-timezone", "t", &dhcpv6_universe, 41, 1 },
+ { "new-tzdb-timezone", "t", &dhcpv6_universe, 42, 1 },
+
+ /* RFC4994 OPTIONS */
+
+ { "ero", "SA", &dhcpv6_universe, 43, 1 },
+#endif
+
+ /* RFC5007 OPTIONS */
+
+ { "lq-query", "X", &dhcpv6_universe, 44, 1 },
+ { "client-data", "X", &dhcpv6_universe, 45, 1 },
+ { "clt-time", "L", &dhcpv6_universe, 46, 1 },
+ { "lq-relay-data", "6X", &dhcpv6_universe, 47, 1 },
+ { "lq-client-link", "6A", &dhcpv6_universe, 48, 1 },
+
{ NULL, NULL, NULL, 0, 0 }
};
{ "NoBinding", 3 }, /* Client record (binding) unavailable. */
{ "NotOnLink", 4 }, /* Bad prefix for the link. */
{ "UseMulticast", 5 }, /* Not just good advice. It's the law. */
+ { "NoPrefixAvail", 6 }, /* Server has no prefixes to assign. */
+ { "UnknownQueryType", 7 }, /* Query-type unknown/unsupported. */
+ { "MalformedQuery", 8 }, /* Leasequery not valid. */
+ { "NotConfigured", 9 }, /* The target address is not in config. */
+ { "NotAllowed", 10 }, /* Server doesn't allow the leasequery. */
{ NULL, 0 }
};
dhcpv6_status_code_values
};
+struct enumeration_value lq6_query_type_values[] = {
+ { "query-by-address", 1 },
+ { "query-by-clientid", 2 },
+ { NULL, 0 }
+};
+
+struct enumeration lq6_query_types = {
+ NULL,
+ "query-types", 2,
+ lq6_query_type_values
+};
+
struct enumeration_value dhcpv6_message_values[] = {
{ "SOLICIT", 1 },
{ "ADVERTISE", 2 },
{ "INFORMATION-REQUEST", 11 },
{ "RELAY-FORW", 12 },
{ "RELAY-REPL", 13 },
+ { "LEASEQUERY", 14 },
+ { "LEASEQUERY-REPLY", 15 },
{ NULL, 0 }
};
"Reconfigure",
"Information-request",
"Relay-forward",
- "Relay-reply"
+ "Relay-reply",
+ "Leasequery",
+ "Leasequery-reply"
};
const int dhcpv6_type_name_max =
(sizeof(dhcpv6_type_names) / sizeof(dhcpv6_type_names[0]));
#define DHO_USER_CLASS 77
#define DHO_FQDN 81
#define DHO_DHCP_AGENT_OPTIONS 82
+#define DHO_AUTHENTICATE 90 /* RFC3118, was 210 */
#define DHO_CLIENT_LAST_TRANSACTION_TIME 91
#define DHO_ASSOCIATED_IP 92
#define DHO_SUBNET_SELECTION 118 /* RFC3011! */
#define DHO_DOMAIN_SEARCH 119 /* RFC3397 */
#define DHO_VIVCO_SUBOPTIONS 124
#define DHO_VIVSO_SUBOPTIONS 125
-/* The DHO_AUTHENTICATE option is not a standard yet, so I've
- allocated an option out of the "local" option space for it on a
- temporary basis. Once an option code number is assigned, I will
- immediately and shamelessly break this, so don't count on it
- continuing to work. */
-#define DHO_AUTHENTICATE 210
#define DHO_END 255
#define D6O_NIS_DOMAIN_NAME 29 /* RFC3898 */
#define D6O_NISP_DOMAIN_NAME 30 /* RFC3898 */
#define D6O_SNTP_SERVERS 31 /* RFC4075 */
-#define D6O_INFORMATION_REFRESH_TIME 32 /* lifetime */
+#define D6O_INFORMATION_REFRESH_TIME 32 /* RFC4242 */
#define D6O_BCMCS_SERVER_D 33 /* RFC4280 */
#define D6O_BCMCS_SERVER_A 34 /* RFC4280 */
/* 35 is unassigned */
-#define D6O_GEOCONF_CIVIC 36 /* geopriv-dhcp-civil */
-#define D6O_REMOTE_ID 37 /* dhcpv6-remoteid */
+#define D6O_GEOCONF_CIVIC 36 /* RFC4776 */
+#define D6O_REMOTE_ID 37 /* RFC4649 */
#define D6O_SUBSCRIBER_ID 38 /* RFC4580 */
-#define D6O_CLIENT_FQDN 39 /* dhcpv6-fqdn */
+#define D6O_CLIENT_FQDN 39 /* RFC4704 */
+#define D6O_PANA_AGENT 40 /* paa-option */
+#define D6O_NEW_POSIX_TIMEZONE 41 /* RFC4833 */
+#define D6O_NEW_TZDB_TIMEZONE 42 /* RFC4833 */
+#define D6O_ERO 43 /* RFC4994 */
+#define D6O_LQ_QUERY 44 /* RFC5007 */
+#define D6O_CLIENT_DATA 45 /* RFC5007 */
+#define D6O_CLT_TIME 46 /* RFC5007 */
+#define D6O_LQ_RELAY_DATA 47 /* RFC5007 */
+#define D6O_LQ_CLIENT_LINK 48 /* RFC5007 */
/*
- * Status Codes, from RFC 3315 section 24.4.
+ * Status Codes, from RFC 3315 section 24.4, and RFC 3633, 5007.
*/
-#define STATUS_Success 0
-#define STATUS_UnspecFail 1
-#define STATUS_NoAddrsAvail 2
-#define STATUS_NoBinding 3
-#define STATUS_NotOnLink 4
-#define STATUS_UseMulticast 5
+#define STATUS_Success 0
+#define STATUS_UnspecFail 1
+#define STATUS_NoAddrsAvail 2
+#define STATUS_NoBinding 3
+#define STATUS_NotOnLink 4
+#define STATUS_UseMulticast 5
+#define STATUS_NoPrefixAvail 6
+#define STATUS_UnknownQueryType 7
+#define STATUS_MalformedQuery 8
+#define STATUS_NotConfigured 9
+#define STATUS_NotAllowed 10
/*
* DHCPv6 message types, defined in section 5.3 of RFC 3315
#define DHCPV6_INFORMATION_REQUEST 11
#define DHCPV6_RELAY_FORW 12
#define DHCPV6_RELAY_REPL 13
+#define DHCPV6_LEASEQUERY 14
+#define DHCPV6_LEASEQUERY_REPLY 15
extern const char *dhcpv6_type_names[];
extern const int dhcpv6_type_name_max;
/* Offsets into IA_*'s where Option spaces commence. */
#define IA_NA_OFFSET 12 /* IAID, T1, T2, all 4 octets each */
#define IA_TA_OFFSET 4 /* IAID only, 4 octets */
+#define IA_PD_OFFSET 12 /* IAID, T1, T2, all 4 octets each */
-/* Offsets into IAADDR's where Option spaces commence. */
+/* Offset into IAADDR's where Option spaces commence. */
#define IAADDR_OFFSET 24
+/* Offset into IAPREFIX's where Option spaces commence. */
+#define IAPREFIX_OFFSET 25
+
+/* Offset into LQ_QUERY's where Option spaces commence. */
+#define LQ_QUERY_OFFSET 17
+
/*
* DHCPv6 well-known multicast addressess, from section 5.1 of RFC 3315
*/
unsigned char options[0];
};
+/* Leasequery query-types (RFC 5007) */
+
+#define LQ6QT_BY_ADDRESS 1
+#define LQ6QT_BY_CLIENTID 2