]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Some definitions not in phase with the IANA registry were updated
authorFrancis Dupont <fdupont@isc.org>
Thu, 20 Dec 2007 21:58:38 +0000 (21:58 +0000)
committerFrancis Dupont <fdupont@isc.org>
Thu, 20 Dec 2007 21:58:38 +0000 (21:58 +0000)
RELNOTES
common/dhcp-options.5
common/tables.c
includes/dhcp.h
includes/dhcp6.h

index c5019f049c9f200e9f401540d0cbefb9497887ae..5c85c02a71e9cb8708754a4200d6be5415c73d1b 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -76,6 +76,8 @@ suggested fixes to <dhcp-users@isc.org>.
   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
index 44624ef0047b799140d5075d8e7946c9583fbb8d..68a77f2084342bde01c11bb0bd1021e4fd6cc050 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $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
@@ -178,6 +178,14 @@ This option configures a list of IPv4 addresses for use as Broadcast and
 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
@@ -333,7 +341,8 @@ This option is not user configurable.
 .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
@@ -1323,18 +1332,18 @@ Understandably, many options are not "allowed" to have multiple
 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.
@@ -1379,8 +1388,8 @@ be configured.
 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
@@ -1452,7 +1461,7 @@ titled VENDOR ENCAPSULATED OPTIONS below, in particular the bits about
 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
@@ -1534,7 +1543,7 @@ is not yet any support for prefix delegation in this software, and this
 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
@@ -1649,6 +1658,40 @@ Client FQDN SubOptions for full details (the DHCPv4 and DHCPv6 FQDN options
 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
@@ -2065,7 +2108,7 @@ DHCPv6 VSIO options can have multiple vendor definitions all at once (even
 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
index d9cefea995101089c5f5ab09485cba27b58f921c..468742076a86a02a83b73c25003a3d1674811348 100644 (file)
@@ -176,8 +176,11 @@ static struct option dhcp_options[] = {
        { "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 },
@@ -188,10 +191,12 @@ static struct option dhcp_options[] = {
        { "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 },
@@ -205,7 +210,7 @@ static struct option dhcp_options[] = {
        { "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.
         */
@@ -223,7 +228,7 @@ static struct option dhcp_options[] = {
        { "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 },
@@ -392,7 +397,7 @@ static struct option dhcpv6_options[] = {
 
        /* Not yet considering for inclusion. */
 #if 0
-                       /* RFC-ietf-geopriv-dhcp-civil-09.txt */
+                       /* RFC4776 OPTIONS */
 
        { "geoconf-civic", "X",                 &dhcpv6_universe, 36, 1 },
 #endif
@@ -424,6 +429,30 @@ static struct option dhcpv6_options[] = {
         */
        { "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 }
 };
 
@@ -447,6 +476,11 @@ struct enumeration_value dhcpv6_status_code_values[] = {
        { "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 }
 };
 
@@ -456,6 +490,18 @@ struct enumeration dhcpv6_status_codes = {
        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 },
@@ -470,6 +516,8 @@ struct enumeration_value dhcpv6_message_values[] = {
        { "INFORMATION-REQUEST", 11 },
        { "RELAY-FORW", 12 },
        { "RELAY-REPL", 13 },
+       { "LEASEQUERY", 14 },
+       { "LEASEQUERY-REPLY", 15 },
        { NULL, 0 }
 };
 
@@ -488,7 +536,9 @@ const char *dhcpv6_type_names[] = {
        "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]));
index ee23a29dca5a41888e670ca9e5ce413904a04e8c..74bf1cf26aa26491bd091d8c3eed1804d0581589 100644 (file)
@@ -153,18 +153,13 @@ struct dhcp_packet {
 #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
 
index c4ec55ae8d128d7ab96e9383f3402725172179ab..f411b9032c39ef8d6e6bc3c2a2bce3ad4722f4ee 100644 (file)
 #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;
@@ -106,10 +122,17 @@ 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 
  */
@@ -168,3 +191,7 @@ struct dhcpv6_relay_packet {
        unsigned char options[0];
 };
 
+/* Leasequery query-types (RFC 5007) */
+
+#define LQ6QT_BY_ADDRESS       1
+#define LQ6QT_BY_CLIENTID      2