Newly Pre-defined Options in DHCP 4.3
  • 26 Oct 2018
  • 5 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Newly Pre-defined Options in DHCP 4.3

  • Dark
    Light
  • PDF

Article Summary

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.