In 4.3.0 we have added a number of definitions for options for DHCPv4 and DHPCv6 that were previously defined by the IETF. To minimize conflicts with definitions that users may have created for these options, we have adopted a new style for the definitions. From 4.3.0 forward, when we add a new definition it will be grouped within an #ifdef block based on the RFC that defines the option. As an example:
#if defined(RFC5192_OPTIONS)
{"pana-agent", "Ia", &dhcp_universe, 136, 1 },
#endif
This allows more fine-grained control over which options are included or excluded at compile time. To exclude a particular set of options you will need to edit the file includes/site.h
to comment out or delete the lines defining the RFCs you wish to exclude. For example, to exclude the above option you would have:
/* Include definitions for various options. In general these
should be left as is, but if you have already defined one
of these and prefer your definition you can comment the
RFC define out to avoid conflicts */
#define RFC2937_OPTIONS
#define RFC4776_OPTIONS
#define RFC4833_OPTIONS
#define RFC4994_OPTIONS
/* Don't define pana options as I've already defined them differently
#define RFC5192_OPTIONS
*/
#define RFC5223_OPTIONS
#define RFC5417_OPTIONS
#define RFC5460_OPTIONS
#define RFC5969_OPTIONS
#define RFC5970_OPTIONS
#define RFC5986_OPTIONS
#define RFC6011_OPTIONS
#define RFC6334_OPTIONS
#define RFC6440_OPTIONS
#define RFC6731_OPTIONS
#define RFC6939_OPTIONS
#define RFC6977_OPTIONS
#define RFC7083_OPTIONS
One potential reason to exclude some options is if you have already created a definition for them and prefer yours to ours. This is most likely to happen for strings that the specification allows the vendor or user to define. While we may not be able to treat it as anything other than a hex or text string, you may have specific knowledge about how it is used in your environment that allows for a better definition. We have enabled all of these options by default.
The following are the descriptions of the new options from the file common/dhcp-options.5
. As is normal in these definitions, we only try to describe the format of the information with a brief description from the RFC. For more complete information about what the option values mean and how they should be used, please consult the RFC.
DHCPv4 Options
- capwap-ac-v4 ip-address [ip-address … ]
A list of IPv4 addresses of CAPWAP ACs that the WTP may use. The addresses are listed in preference order.
This option is included based on RFC 5417.
- geoconf-civic string
A string to hold the geoconf civic structure.
This option is included based on RFC 4776.
- name-service-search uint16 [ uint16 … ]
This option specifies a list of name services in the order the client should attempt to use them.
This option is included based on RFC 2937.
- option-6rd uint8 uint8 ip6-address ip-address [ ip-address … ]
This option contains infomration about the rapid deployment option. It is 8 bits of ipv4 mask length, 8 bits of 6rd prefix length, an ipv6 prefix as an ipv6 address, and a list of one or more ipv4 addresses.
This option is included based on RFC 5969.
- pana-agent ip-address [ ip-address … ]
A set of IPv4 addresses of a PAA for the client to use. The addresses are listed in preferred order.
This option is included based on RFC 5192.
- pcode text
This option specifies a string suitable for the TZ variable.
This option is included based on RFC 4833.
- rdnss-selection uint8 ip-address ip-address domain-name
The rdnss-selection option specifies an 8 bit flags field, a primary and secondary ip address for the name server, and a domainlist of domains for whcih the RDNSS has special knowledge.
This option is included based on RFC 6731.
- tcode text
This option specifies a name of a zone entry in the TZ database.
This option is included based on RFC 4833.
- v4-access-domain domain-name
The domain name associated with the access network for use with LIS Discovery.
This option is included based on RFC 5986.
- v4-lost domain-name
The domain name of the LoST server for the client to use.
This option is included based on RFC 5223.
DHCPv6 Options
- dhcp6.geoconf-civic string
A string to hold the geoconf civic structure.
This option is included based on RFC 4776.
- dhcp6.pana-agent ip6-address [ ip6-address … ]
A set of IPv6 addresses of a PAA for the client to use. The addresses are listed in preferred order.
This option is included based on RFC 5192.
- dhcp6.new-posix-timezone text
This option specifies a string suitable for the TZ variable.
This option is included based on RFC 4833.
- dhcp6.new-tzdb-timezonetext
This option specifies a name of a zone entry in the TZ database.
This option is included based on RFC 4833.
- dhcp6.ero uint16 [uint16 …]
A list of the options requested by the relay agent.
This option is included based on RFC 4994.
- dhcp6.v6-lost domain-name
The domain name of the LoST server for the client to use.
This option is included based on RFC 5223.
- dhcp6.capwap-ac-v6 ip6-address [ ip6-address … ]
A list of IPv6 addresses of CAPWAP ACs that the WTP may use. The addresses are listed in preference order.
This option is included based on RFC 5417.
- dhcp6.relay-id string
The DUID for the relay agent.
This option is included based on RFC 5460.
- dhcp6.v6-access-domain domain-name
The domain name associated with the access network.
This option is included based on RFC5986.
- dhcp6.sip-ua-cs-list domain-list
The list of domain names in the SIP User Agent Configuration Service Domains.
This option is included based on RFC 6011.
- dhcp6.bootfile-url text
The URL for a boot file.
This option is included based on RFC 5970.
- dhcp6.bootfile-param string
A string for the parameters to the bootfile. See RFC 5970 for more description of the layout of the parameters within the string.
This option is included based on RFC 5970.
- dhcp6.client-arch-type uint16 [ uint16 … ]
A list of one or more architecture types described as 16-bit values.
This option is included based on RFC 5970.
- dhcp6.nii uint8 uint8 uint8
The client network interface identitier option supplies information about a client's level of UNDI support. The values are, in order, the type, the major value and the minor value.
This option is included based on RFC5970.
- dhcp6.aftr-name domain-name
A domain name of the AFTR tunnel endpoint.
This option is included based on RFC 6334.
- dhcp6.erp-local-domain-name domain-name
A domain name for the ERP domain.
This option is included based on RFC 6440.
- dhcp6.rdnss-selection ip6-address uint8 domain-list
RDNSS information consists of an IPv6 address of RDNSS, a 8-bit flags field and a domain-list of domains for which the RDNSS has special knowledge.
This option is included based on RFC 6731.
- dhcp6.client-linklayer-addr string
A client link-layer address. The first two bytes must be the type of the link-layer followed by the address itself.
This option is included based on RFC 6939.
- dhcp6.link-address ip6-address
An IPv6 address used by a relay agent to indicate to the server the link on which the client is located.
This option is included based on RFC 6977.
- dhcp6.solmax-rt uint32
A value to override the default for SOL_MAX_RT. This is a 32-bit value.
This option is included based on RFC 7083.
- dhcp6.inf-max-rt uint32
A value to override the default for INF_MAX_RT. This is a 32-bit value.
This option is included based on RFC 7083.