Cisco CNS Network Registrar CLI Reference Guide, 5.5
Appendix: DHCP Extension Dictionary Entries
Downloads: This chapterpdf (PDF - 255.0KB) | Feedback

DHCP Extension Dictionary Entries

Table Of Contents

DHCP Extension Dictionary Entries

Decoded DHCP Packet Data Items

Request Dictionary

Response Dictionary


DHCP Extension Dictionary Entries


This appendix describes the data items available in the request and response dictionaries. The environment dictionary entries are described in the "Environment Dictionary" section on page 4-15. For more information about extension dictionaries see the "Extension Dictionaries" section on page 4-15.

The request dictionary consists of decoded packet data items, and the request dictionary specific data items.

The response dictionary consists of the decoded packet data items, and the response dictionary specific data items.

Decoded DHCP Packet Data Items

The decoded DHCP packet data items represent the information in the DHCP packet, and are available in both the request and response dictionaries.

Both the request and response dictionaries provide access to considerably more internal server data structures than just the decoded request and decoded response.

The DHCP and BOOTP fields are available in both the request and response dictionaries.

All of the options followed by an asterisk (*) are multiple, which means that there may be more than one value associated with each option. In the DHCP/BOOTP packet, all of these data items appear in the same option. However, in the extension interface, these multiple data items are accessible through indexing. For more information about indexing in the Tcl and C/C++ APIs, see "DHCP Extension Dictionary Entries" and "Using the dhcp-parameter-request-list Option" section on page 4-18.

You can access options up to type 100 that do not have names in Table C-1 as option -n, in which n is the option number. All fields are read/write.

Table C-1 DHCP and BOOTP Fields 

Name
Value

chaddr

blob (sequence of bytes)

ciaddr

IP address

file

string

flags

16-bit unsigned integer

giaddr

IP address

hlen

8-bit unsigned integer

hops

8-bit unsigned integer

htype

8-bit unsigned integer

op

8-bit unsigned integer

secs

16-bit unsigned integer

siaddr

IP address

sname

string

xid

32-bit unsigned integer

yiaddr

IP address


Table C-2 lists the DHCP and BOOTP options.

Table C-2 DHCP and BOOTP Options 

Name (*=multivalue)
Number
Value

all-subnets-local

27

byte-valued boolean

arp-cache-timeout

35

int

boot-file

61

string

boot-size

13

16-bit unsigned integer

broadcast-address

28

IP address

cisco-vpn-id

168

blob (sequence of bytes)

cookie-servers*

8

IP address

default-ip-ttl

23

8-bit unsigned int

default-tcp-ttl

37

8-bit unsigned int

dhcp-class-identifier

60

string

dhcp-client-identifier

61

blob (sequence of bytes)

dhcp-lease-time

51

int

dhcp-max-message-size

57

16-bit unsigned integer

dhcp-message

56

string

dhcp-message-type

53

blob (sequence of bytes)

dhcp-option-overload

52

blob (sequence of bytes)

dhcp-parameter-request-list*

55

8-bit unsigned integer

dhcp-parameter
-request-list-blob

55

blob (sequence of bytes)

dhcp-rebinding-time

59

int

dhcp-renewal-time

58

int

dhcp-requested-address

50

IP address

dhcp-server-identifier

54

IP address

dhcp-user-class-id

77

string

domain-name

15

string

domain-name-servers*

6

IP address

extensions-path

18

string

finger-servers*

73

IP address

font-servers*

48

IP address

host-name

12

string

ieee802.3-encapsulation

36

8-bit unsigned integer

impress-servers*

10

IP address

interface-mtu

26

16-bit unsigned integer

ip-forwarding

19

byte-valued boolean

irc-servers*

74

IP address

log-servers*

7

IP address

lpr-servers*

9

IP address

mask-supplier

30

byte-valued boolean

max-dgram-reassembly

22

16-bit unsigned integer

merit-dump

14

string

mobile-ip-home-agents*

68

IP address

name-servers*

5

IP address

netbios-dd-servers*

45

IP address

netbios-name-servers*

44

IP address

netbios-node-type

46

blob (sequence of bytes)

netbios-scope

47

string

nis+-servers*

65

IP address

nis+domain

64

string

nis-domain

40

string

nis-servers*

41

IP address

nntp-servers*

71

IP address

non-local-source-routing

20

byte-valued boolean

ntp-servers*

42

IP address

path-mtu-aging-timeout

24

int

path-mtu-patheau-tables*

25

16-bit unsigned integer

perform-mask-discovery

29

byte-valued boolean

policy-filters*

21

IP address (there can be two policy filters, each one having its own IP address)

pop3-servers*

70

IP address

relay-agent-information

suboptions:

82

blob (sequence of bytes)

cisco-server-id-override

suboption 152

IP address

cisco-subnet-selection

suboption 150

IP address

cisco-vpn-id

suboption 151

string. The first byte defines the type of the option, where 0 means the rest of the option contains a VRF name as a string. If the first byte is 1, the rest of the option contains an RFC 2685-style VPN ID. This is typically seven additional bytes.

cisco-vpn-id-data

suboption 151

blob (does not require suboption number as first byte)

relay-agent-circuit-id

suboption 1

blob (requires suboption number as first byte; deprecated in favor of relay-agent-circuit-id-data)

relay-agent-circuit-id-
data

suboption 1

blob (does not require suboption number as first byte)

relay-agent-remote-id

suboption 2

blob (requires suboption number as first byte; deprecated in favor of relay-agent-remote-id-data)

relay-agent-remote-id-
data

suboption 2

blob (does not require suboption number as first byte)

relay-agent-server-id-
override-data

suboption 182

IP address

relay-agent-vpn-id-data

suboption 181

string

relay-agent-subnet-
selection-data

suboption 180

IP address

resource-location-servers*

11

IP address

root-path

17

string

router-discovery

31

byte-valued boolean

router-solicitation-address

32

IP address

routers*

3

IP address

smtp-servers*

69

IP address

static-routes*

33

IP address

streettalk-directory-
assistance-servers*

76

IP address

streettalk-servers*

75

IP address

subnet-mask

1

IP address

subnet-selection

118

IP address

swap-server

16

IP address

tcp-keepalive-internal

38

int

tcp-keepalive-garbage

39

byte-valued boolean

tftp-server

66

string

time-offset

2

int

time-servers*

4

IP address

trailer-encapsulation

34

byte-valued boolean

vendor-encapsulated-options

43

blob (sequence of bytes)

vpn-id

167

blob (sequence of bytes)

www-servers*

72

IP address

x-display-managers*

49

IP address


Table C-3 lists the decoded packet fields.

Table C-3 Decoded Packet Field 

Data Item
Value
Description

dump-packet

int

When the value of dump-packet is set to 1, Network Registrar dumps the current decoded DHCP/BOOTP packet to the log file. An extension can put the value 1 into the dump-packet data item at multiple points in its execution. This may be useful when debugging extensions.

mac-address

blob

MAC address that came in the client packet. The first byte is the hardware type, the second is the hardware length, and the remaining (up to 16) is the information from the chaddr read just after post-packet-decode. This is a useful aggregation of the htype, hlen, and chaddr fields of the DHCP packet. When read it is constructed from these fields; when written it is placed into these fields.

relay-agent-circuit-id

blob

Accesses and manipulates the relay-agent circuit id data from either a DHCP request or response. Requires the suboption number (1) as the first byte. Deprecated in favor of the relay-agent-circuit-id-data data item.

relay-agent-circuit-
id-data

blob

Accesses and manipulates the relay-agent circuit id data from either a DHCP request or response.

relay-agent-remote-id

blob

Accesses and manipulates the relay-agent remote id data from either a DHCP request or response. Requires the sub-option number (2) as the first byte. Deprecated in favor of the relay-agent-remote-id-data data item.

relay-agent-remote-
id-data

blob

Accesses and manipulates the relay-agent remote id data from either a DHCP request or response.


Request Dictionary

Table C-4 lists the data items that you can set in the request dictionary. The data items can be set at any time. The DHCP server reads them at various times. Unless indicated otherwise, all operations are read/write.

Table C-4 Request Dictionary Specific Data Items 

Data Item
Value

allow-bootp

int

If set to 1, for this request BOOTP is allowed for any scope. Read during scope selection and while checking for lease acceptability.

allow-dhcp

int

If set to a 1, for this request DHCP is allowed for any scope. Read during scope selection and while checking for lease acceptability.

allow-dynamic-bootp

int

If set to a 1, for this request dynamic BOOTP is allowed for any scope. Read during scope selection and while checking for lease acceptability.

boot-reply-options

blob

Overrides any bootp-reply-options specified in any policy. Read when gathering data for the output packet.

client-class-name

string

Name of the client-class used to complete the client information (if any).

client-class-policy

string

Name of the policy that is associated with the client-class. If set, it must be with the name of a policy that was already configured in the server.

client-domain-name

string

Domain name that the client wants to use. It may not exist, in which case the DHCP server uses the domain name specified in the scope. It is read when queuing the request for DNS update just prior to the update of stable storage.

client-host-name

string

Hostname used for the client in DNS. It is read when queuing in the request for a DNS update just prior to the update of stable storage. It is updated with the actual name placed into DNS when that operation completes.

client-id

blob

Client identification that the server uses to keep track of the client. This may be the client-id that was sent with a request or internally generated from the MAC address. See client-id-created-from-mac-address.

client-id-created-from-mac-
address

int

If this is 1, the client-id was created from the MAC address and the client-id should not be used in reporting, nor should it ever be equal to a client-id that was not created from a MAC address.

client-ipaddress

IP address

IP address from which the client sent its packet. Note that it could be zero if the client does not yet have an IP address.

client-mac-address

blob

This is the MAC address that is stored in the client object associated with the request dictionary. It has the same format (and was created from) the mac-address described in the "Decoded DHCP Packet Data Items" section.

client-os-type

int

You can change the value in the client entry of the request packet by setting the value in the request dictionary at the pre-client-lookup or post-client-lookup extension points. This value can also be read at the check-lease-acceptable extension point, but cannot be set there. To set the value, you must first set the os-type in the post-packet-decode request dictionary.

client-policy

string

Name of the policy that is associated with the client entry. If you set this, it must be with the name of a policy that is already configured in the DHCP server.

client-port

int

Port from which the client sent its request.

client-requested-host-name

string

Hostname that the client requested be used for the DNS update. The DHCP server saves this information so that a change can be detected.

client-wants-nulls-in-string

int

Determines whether the DHCP server returns strings to the client terminated with a null. If set to 1, the server terminates strings with a null. If set to 0, the server does not terminate strings with a null.This is set before post-packet-decode and read when encoding the response packet after pre-packet-encode.

dhcp-reply-options

blob

If specified, overrides any dhcp-reply-options specified in any policy. Read when gathering data for the output packet.

import-packet

int

Determines whether the server treats the packet as if came from an import client. If set to 1, the server treats it like an import client and performs all DNS operations on it prior to sending an ACK. Read when checking whether the server is in import mode (right after post-packet-decode), getting ready for DNS processing, and when setting the reply address.

log-client-criteria-processing

int

If set to a 1, for this request the criteria processing for the client is logged. Read when attempting to acquire a new lease for a client that does not have one, and when checking a lease for acceptability.

log-client-detail

int

If set to a 1, for this request the results of the client-class processing are logged. Read at the end of client-class processing, after the post-client-lookup extension point is run.

log-dns-update-detail

int

If set to a 1, for this request DNS update details are logged. (Not implemented in this release.)

log-failover-detail

int

If set to a 1, a more detailed level of logging of failover activity is enabled. For example, all failover state changes are logged.

log-incoming-packet-detail

int

If set to a 1, for this request incoming packets should be dumped in detail into the log. Read prior to packet decoding and therefore prior to the first extension point.

log-incoming-packets

int

If set to a 1, for this request incoming packets should be logged. Read after decoding the packet and after the post-decode-packet extension point.

log-ldap-create-detail

int

If set to a 1, messages are logged whenever the DHCP server initiates a lease state entry create to an LDAP server, receives a response from an LDAP server, or retrieves a result or error message from an LDAP server.

log-ldap-query-detail

int

If set to a 1, messages are logged whenever the DHCP server initiates a query to an LDAP server, receives a response from an LDAP server, or retrieves a query result or an error message from an LDAP server.

log-ldap-update-detail

int

If set to a 1, messages are logged whenever the DHCP server initiates an update lease state to an LDAP server, receives a response from an LDAP server, or a retrieves a result or error message from an LDAP server.

log-leasequery

int

If set to a 1, messages are logged when leasequery packets are processed without internal errors and result in an ACK or a NAK.

log-incoming-packets

int

If set to a 1, for this request incoming packets should be logged. Read after decoding the packet and after the post-decode-packet extension point.

log-missing-options

int

If set to a 1, for this request missing options, that is, options that are requested by a client but that the DHCP server cannot return, are logged. Read during gathering of data for the response.

log-outgoing-packet-detail

int

If set to a 1, for this request the outgoing packet should be dumped in detail into the log. Read just prior to sending the packet to the DHCP client and after pre-packet-encode.

log-unknown-criteria

int

If set to a 1, for this request any unknown criteria specified in the client's inclusion or exclusion criteria are logged. Read either when acquiring a lease for a new client or when checking the acceptability of a lease for an existing client.

namespace-description

string (read-only)

Description for the namespace. See the namespace-name data items for details.

namespace-id

int (read-only)

Namespace identifier. See the namespace-name data items for details.

namespace-name

string (read-only)

Name of the namespace. The request dictionary does not have valid values for these items at the post-packet-decode script point, but does at all others, because the namespace has not yet been determined. This is so that a script can change the vpn-id option or sub-option at the post-packet-decode script point and thus affect the namespace that is used for a lease.

namespace-vrf-name

string (read-only)

Virtual routing and forwarding table identifier for the namespace. See the namespace-name data items for details.

namespace-vpn-id

blob, typically 7 bytes (read-only)

Virtual private network identifier for the namespace. See the namespace-name data items for details.

ping-clients

int

If set to a 1, for this request a ping should be performed prior to offering a lease. Read just prior to determining if a lease is acceptable for a client.

reply-to-client-address

int

If set to 1, the server sends the response packet to the client-ip-address and the client-port instead of using the RFC-mandated algorithm.

selection-criteria

string

Comma-separated string that contains the scope's selection criteria.

selection-criteria-excluded

string

Comma-separated string that contains the scope's exclusion criteria.

send-ack-first

int

If set to a 1, for this request DNS should be updated after the ACK for DHCP requests. Read just prior to initiating the DNS operation.

transaction-time

int

Time, in seconds, since 1970 that the input packet was decoded.

update-dns-for-bootp

int

If set to a 1, for this request DNS should be updated for BOOTP requests. Read just prior to initialing the DNS operation for BOOTP.

verbose-logging

int

If set to a 1, for this request verbose logging is enabled. Read at various times during processing.


Response Dictionary

Table C-5 lists the data items you can set in the response dictionary at any time. The DHCP server reads them at various times. Unless indicated otherwise, the operation is read/write.

Table C-5 Response Dictionary Specific Data Items 

Data item
Value

auto-configure

int

Network Registrar can ask and be notified if auto-configuration should be disabled on the local subnet. Writing an extension script to return yiaddr=0.0.0.0 and set this option (0xFB) to 0 prevents a Windows 2000 RC3 DHCP client from auto-configuring, allowing clients to choose a link-local IP address so that they can communicate with other hosts on the same link.

client-domain-name

string (read-only)

From the client information in the lease, the domain name that the client wants to use. It might not exist, in which case the DHCP server uses the domain name specified in the scope. It is read when queuing the request for DNS update just prior to the update of stable storage.

client-host-name

string

From the client information in the lease, the hostname that the DHCP server puts into DNS. Read when queueing the request for a DNS update just prior to the update of stable storage.

client-id

blob

From the client information in the lease, the client identification that the server used to keep track of the client. This might be the client-id that was sent with a request or a client-id that was internally generated from the MAC address.

client-id-created-from-
mac-address

int (read-only)

From the client information in the lease. If 1, the client-id was created from the MAC address and the client-id should not be used in reporting, nor should it ever be equal to a client-id that was not created from a MAC address.

client-mac-address

blob

From the client information in the lease, the MAC address that is stored in the client object associated with the request dictionary. It has the same format (and was created from) the mac-address described above.

client-os-type

int

You can change the value in the client entry of the request packet by setting the value in the request dictionary at the pre-client-lookup or post-client-lookup extension points. This value can also be read at the check-lease-acceptable extension point, but cannot be set there. To set the value, you must first set the os-type in the post-packet-decode request dictionary.

client-requested-host-name

string

From the client information in the lease, the hostname that the client requested to be used for the DNS update.

domain-name-changed

int

If set to 1, the domain name in the current packet differs from the domain name used in the DNS update. Read after check-lease-acceptable and before pre-packet-encode.

   

host-name-changed

int

If set to 1, the hostname in the current packet differs from the hostname used in the DNS update. Read after check-lease-acceptable and before pre-packet-encode.

host-name-in-dns

int

If set to 1, the hostname is in DNS. Read after check-lease-acceptable and before pre-packet-encode. Written after the hostname is placed into DNS.

last-transaction-time

int (read-only)

Time, in seconds, since 1970, that the DHCP server last heard from this client.

lease-deactivated

int (read-only)

If set to 1, the lease is deactivated.

lease-ipaddress

IP address (read-only)

IP address of the lease that the DHCP server uses in processing.

lease-namespace-description

string (read-only)

Description for the namespace stored with a response's lease.

lease-namespace-id

int (read-only)

Identifier for the namespace stored with a response's lease.

lease-namespace-name

string (read-only)

Name of the namespace stored with a response's lease.

lease-namespace-vrf-name

string (read-only)

Virtual routing and forwarding table identifier for the namespace stored with a response's lease.

lease-namespace-vpn-id

blob, typically 7 bytes (read-only)

Virtual private network identifier for the namespace stored with a response's lease.

lease-relay-agent-circuit-id

blob

Accesses and manipulates the relay-agent circuit id data as stored with a response's lease. Requires the suboption number 1 as the first byte. Deprecated in favor of the lease-relay-agent-circuit-id-data data item.

lease-relay-agent-circuit-id-data

blob (use instead of the deprecated lease-relay-agent-circuit-id item)

Accesses and manipulates the relay-agent-circuit-id-data data as stored with a response's lease. Relevant only if the dhcp command's save-relay-agent-data attribute is enabled.

lease-relay-agent-remote-id

blob

Accesses and manipulates the relay-agent-remote-id data as stored with a response's lease. Requires the suboption number 2 as the first byte. Deprecated in favor of the lease-relay-agent-remote-id-data data item.

lease-relay-agent-remote-id-data

blob (use instead of the deprecated lease-relay-agent-remote-id item)

Accesses and manipulates the relay-agent-remote-id-data data as stored with a response's lease. Relevant only if the dhcp command's save-relay-agent-data attribute is enabled.

lease-relay-agent-server-id-
override-data

IP address

Accesses and manipulates the relay-agent-server-id-override-data data as stored with a response's lease. Relevant only if the dhcp command's save-relay-agent-data attribute is enabled.

lease-relay-agent-subnet-
selection-data

IP address

Accesses and manipulates the relay-agent-subnet-selection-data data as stored with a response's lease. Relevant only if the dhcp command's save-relay-agent-data attribute is enabled.

lease-relay-agent-vpn-id-data

blob

Accesses and manipulates the relay-agent-vpn-id data as stored with a response's lease. Relevant only if the dhcp command's save-relay-agent-data attribute is enabled.

lease-reserved

int (read-only)

If set to 1, the lease is reserved.

lease-state

string (read-only)

State of the lease, which can be available, offered, expired, leased, or unavailable.

mac-address

blob

If set to 1, the scope allows BOOTP. Written after a DNS operation completes.

namespace-description

string (read-only)

Description for the namespace.

namespace-id

int (read-only)

Namespace identifier.

namespace-name

string (read-only)

Name of the namespace.

namespace-vrf-name

string (read-only)

Virtual routing and forwarding table identifier for the namespace.

namespace-vpn-id

blob, typically 7 bytes (read-only)

Virtual private network identifier for the namespace.

ping-clients

int

If equal to a 1, specifies that for this request a ping should be performed prior to offering a lease. Read just prior to determining if a lease is acceptable for a client.

reply-ipaddress

IP address

The IP address to use when replying to the DHCP client. Read just after pre-packet-encode. If you change the value of this data item in the pre-packet-encode extension point, the IP address you place in this data item should be for a system that is able to respond to ARP queries for that IP address (unless the IP address is for a broadcast IP address). Even if unicast is enabled and the broadcast flag is not set in the DHCP request, the local ARP cache is not set with a mapping from a new reply-ipaddress in the pre-packet-encode extension point to the MAC address in the DHCP request.

reply-port

int

The port to use when replying to the DHCP client. Read just after pre-packet encode.

reverse-name-in-dns

int

If equal to 1, then the reverse name is in DNS. Read prior to initializing a DNS operation.

scope-allow-bootp

int

If equal to 1, then the scope allows BOOTP. Written after a DNS operation completes.

scope-allow-dhcp

int (read-only)

If set to 1, the scope allows DHCP.

scope-allow-dynamic-bootp

int (read-only)

If set to 1, the scope allows dynamic BOOTP.

scope-available-leases

int (read-only)

Number of available leases on the current scope.

scope-deactivated

int (read-only)

If set to 1, the scope is de-activated.

scope-dns-forward-server-
address

IP address (read-only)

DNS server to use for the DNS forward address.

scope-dns-forward-zone-
name

string (read-only)

Forward zone name configured in the scope.

scope-dns-number-of-host-
bytes

int (read-only)

Number of host bytes used by the DHCP server code that handles DNS updates.

scope-dns-reverse-server-
address

IP address (read-only)

DNS server to use for the DNS reverse address.

scope-dns-reverse-zone-
name

string (read-only)

Reverse zone name configured in the scope.

scope-name

string (read-only)

The name of the scope that contains the lease that the DHCP server is processing.

scope-network-number

IP address (read-only)

Network number of the scope that contains the lease the DHCP server is processing.

scope-ping-clients

boolean (read-only)

If set to 1, the scope associated with the current lease was configured to support a ping operation prior to offering a lease.

scope-primary-network-
number

IP address (read-only)

Network number of this scope's primary scope.

   

scope-primary-subnet-mask

IP address (read-only)

Subnet mask of this scope's primary scope.

scope-renew-only

int (read-only)

If set to 1, the scope is renew-only.

scope-renew-only-expire-
time

int (read-only)

Absolute time, in seconds since January 1, 1970, at which a renew-only scope should cease to be renew-only

scope-selection-tags

string (read-only)

Comma-separated string that contains the scope's selection criteria.

scope-send-ack-first

int (read-only)

If set to 1, the scope sends an ACK before performing the rest of the processing.

scope-subnet-mask

IP address (read-only)

Subnet mask of the scope that contains the lease the DHCP server is processing.

scope-update-dns-enabled

int (read-only)

If set to 1, the scope has update-DNS-enabled.

scope-update-dns-for-bootp

int (read-only)

If set to 1, the scope has update-DNS-enabled for BOOTP.

start-time-of-state

int (read-only)

Time, in seconds, since 1970, this lease was first placed into its current state.

transaction-time

int (read-only)

Time, in seconds, since 1970 that the request was decoded.