|
|
This appendix describes the data items available in the request and response dictionaries. The environment dictionary entries are described in the "Environment Dictionary" section. For more information about extension dictionaries see the "Overview of Extension Dictionaries" section.
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.
These fields are available in both the request and response dictionaries.
All of the options followed with a '*' 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 API" and "The Dhcp-Parameter-List Option" section.
Options up to option type 100 that do not have names in Table D-1 can be accessed as option -n, in which n is the option number.
All fields in Table D-1 are read/write. The word "int" means a 32-bit integer.
| Name | Value |
|---|---|
chaddr | blob (sequence of bytes) |
ciaddr | IP address |
file | string |
flags | 16-bit unsigned int |
giaddr | IP address |
hlen | 8-bit unsigned int |
hops | 8-bit unsigned int |
htype | 8-bit unsigned int |
op | 8-bit unsigned int |
secs | 16-bit unsigned int |
siaddr | IP address |
sname | string |
xid | 32-bit unsigned int |
yiaddr | IP address |
Table D-2 lists the DHCP and BOOTP options.
| Name | Number | Value |
|---|---|---|
all-subnets-local | 27 | byte-valued boolean |
arp-cache-timeout | 35 | int |
boot-file | 61 | string |
boot-size | 13 | int |
broadcast-address | 28 | IP address |
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 int |
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 int |
dhcp-parameter | 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-patch | 18 | string |
finger-servers* | 73 | IP address |
font-servers* | 48 | IP address |
host-name | 12 | string |
ieee802.3-encapsulation | 36 | 8-bit unsigned int |
impress-servers* | 10 | IP address |
interface-mtu | 26 | 16-bit unsigned int |
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 int |
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 int |
perform-mask-discovery | 29 | byte-valued boolean |
policy-filters*:21 | 21 | IP address |
pop3-servers* | 70 | IP address |
relay-agent-info | 82 | blob (sequence of bytes) |
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- | 76 | IP address |
streettalk-servers* | 75 | IP address |
subnet-mask | 1 | IP address |
swap-server | 16 | IP address |
tcp-keepalive-internal | 38 | int |
tcp-keepallthe -garbage | 39 | int |
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) |
www-servers* | 72 | IP address |
x-display-managers* | 49 | IP address |
| 1There can be two policy filters, and each one has its own IP address. |
Table D-3 lists the decoded packet fields.
| Data Item | Value | Description |
|---|---|---|
dump | int | Immediately dumps the current decoded DHCP/BOOTP packet to the log file. If the value put into the data item dump is 1, then it dumps the current decoded packet. Since this operation takes place immediately, an extension can perform a put with a 1 several times during its execution. You can use this field to debug changes you make to the input or output packets. |
mac-address | blob | This is the 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. |
Table D-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.
| Data Item | Value | Operation |
|---|---|---|
allow-bootp | int | w/r |
If equal to 1, specifies that for this request BOOTP is allowed for any scope. Read during scope selection and while checking for lease acceptability. | ||
allow-dhcp | int | w/r |
If equal to a 1, specifies that for this request DHCP is allowed for any scope. Read during scope selection and while checking for lease acceptability. | ||
allow-dynamic-bootp | int | w/r |
If equal to a 1, specifies that for this request dynamic BOOTP is allowed for any scope. Read during scope selection and while checking for lease acceptability. | ||
boot-reply-options | blob | w/r |
If specified, this option overrides any bootp-reply-options specified in any policy. Read when gathering data for the output packet. | ||
client-class-name | string | w/r |
This is the name of the client-class used to complete the client information (if any). | ||
client-class-policy | string | r/w |
This is the name of the policy that is associated with the client-class. If you set this, it must be with the name of a policy that has been already configured in the server. | ||
client-domain-name | string | r/w |
This is the 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 | r/w |
This is the host name 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 | r/w |
The 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 a client-id that was internally generated from the MAC address.(For more information, see client-id-created-from-mac-address.) | ||
client-id-created-from-mac- | int | r/0 |
If this is 1, it indicated that the client-id was created from the MAC address and that 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 | r/w |
The 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 | r/w |
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-policy | strng | r/w |
This is the 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 | r/w |
This is the port from which the client sent its request. | ||
client-requested-host-name | string | r/w |
This is the host name 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 | r/w |
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 will 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 | w/r |
If specified, this option overrides any dhcp-reply-options specified in any policy. Read when gathering data for the output packet. | ||
import-packet | int | r/w |
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 | w/r |
If equal to a 1, specifies that 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 | w/r |
If equal to a 1, specifies that 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 | w/r |
If equal to a 1, specifies that for this request DNS update details are logged. (Not implemented in this release.) | ||
log-incoming-packet-detail | int | w/r |
If equal to a 1, specifies that 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 | w/r |
If equal to a 1, specifies that 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 | w/r |
If equal to a 1, specifies that 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 | w/r |
If equal to a 1, specifies that 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 | w/r |
If equal to a 1, specifies that for this request any unknown criteria specified in the client's inclusion or exclusion criteria will be logged. Read either when acquiring a lease for a new client or when checking the acceptability of a lease for an existing client. | ||
ping-clients | int | w/r |
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-to-client-address | int | r/w |
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 | r/w |
The comma-separated string that contains the scope's selection criteria. | ||
selection-criteria-excluded | string | r/o |
The comma-separated string that contains the scope's exclusion criteria. | ||
send-ack-first | int | w/r |
If equal to a 1, specifies that for this request DNS should be updated after the ACK for DHCP requests. Read just prior to initiating the DNS operation. | ||
transaction-time | int | r/o |
The time, in seconds, since 1970 that the input packet was decoded. | ||
update-dns-for-bootp | int | w/r |
If equal to a 1, specifies that for this request DNS should be updated for BOOTP requests. Read just prior to initialing the DNS operation for BOOTP. | ||
verbose-logging | int | w/r |
If equal to a 1, specifies that for this request verbose logging is enabled. Read at various times during processing. | ||
Table D-5 lists the data items you can set in the response dictionary. These data items can be set at any time. The DHCP server reads them at various times.
| Data item | Value | Operation |
|---|---|---|
client-domain-name | string |
|
From the client information in the lease. This is the 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 | r/w |
From the client information in the lease. This is the host name 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 | r/w |
From the client information in the lease. The client identification that the server used to keep track of the client. This may 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- | int | r/o |
From the client information in the lease. If this is 1, it indicated that the client-id was created from the MAC address and that 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 | r/w |
From the client information in the lease.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 above. | ||
client-requested-host-name | string | r/w |
From the client information in the lease. This is the host name that the client requested be used for the DNS update. | ||
domain-name-changed | int | r/w |
If equal to 1, then 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 | r/w |
If equal to 1, then the host name in the current packet differs from the host name used in the DNS update. Read after check-lease-acceptable and before pre-packet-encode. | ||
host-name-in-dns | int | r/w |
If equal to 1, then the host name is in DNS. Read after check-lease-acceptable and before pre-packet-encode.Written after the host name is placed into DNS. | ||
last-transaction-time | int | r/o |
The time, in seconds, since 1970, that the DHCP server last heard from this client. | ||
lease-deactivated | int | r/o |
If equal to 1, then the lease is deactivated. | ||
lease-ipaddress | IP address | r/o |
The IP address of the lease that the DHCP server uses in processing. | ||
lease-reserved | int | r/o |
If equal to 1, then the lease is reserved. | ||
lease-state | string | r/o |
The state of the lease, which can be either available, offered, expired, leased, or unavailable. | ||
mac-address | blob | r/w |
From the client information in the lease.This is the 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. | ||
ping-clients | int | r/w |
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 | r/w |
The IP address to use when replying to the DHCP client. Read just after pre-packet encode. | ||
reply-port | int | r/w |
The port to use when replying to the DHCP client. Read just after pre-packet encode. | ||
reverse-name-in-dns | int | r/w |
If equal to 1, then the reverse name is in DNS. Read prior to initializing a DNS operation. | ||
scope-allow-bootp | int | r/o |
If equal to 1, then the scope allows BOOTP. Written after a DNS operation completes. | ||
scope-allow-dhcp | int | r/o |
If equal to 1, then the scope allows DHCP. | ||
scope-allow-dynamic-bootp | int | r/o |
If equal to 1, then the scope allows dynamic BOOTP. | ||
scope-available-leases | int | r/o |
The number of available leases on the current scope. | ||
scope-deactivated | int | r/o |
If equal to 1, then the scope is deactivated. | ||
scope-dns-forward-server- | IP address | r/o |
The DNS server to use for the DNS forward address. | ||
scope-dns-forward-zone-name | string | r/o |
The forward zone name configured in the scope. | ||
scope-dns-number-of-host- | int | r/o |
The number of host bytes used by the DHCP server code that handles DNS updates. | ||
scope-ping-clients | boolean | r/o |
Setting it to 1 indicates that the scope associated with the current lease was configured to support a ping operation prior to offering a lease. | ||
scope-dns-reverse-server- | IP address | r/o |
The DNS server to use for the DNS reverse address. | ||
scope-dns-reverse-zone-name | string | r/o |
The reverse zone name configured in the scope. | ||
scope-network-number | IP address | r/o |
The network number of the scope that contains the lease the DHCP server is processing. | ||
scope-primary-network- | IP address | r/o |
The network number of this scope's primary scope. | ||
scope-primary-subnet-mask | IP address | r/o |
The subnet mask of this scope's primary scope. | ||
scope-renew-only | int | r/o |
If equal to 1, then the scope is renew-only. | ||
scope-renew-only-expire-time | int | r/o |
The absolute time, in seconds since January 1, 1970, at which a renew-only scope should cease to be renew-only | ||
scope-selection-tags | string | r/o |
The comma-separated string that contains the scope's selection criteria. | ||
scope-send-ack-first | int | r/o |
If equal to a 1, then the scope will send an ACK before performing the rest of the processing. | ||
scope-subnet-mask | IP address | r/o |
The subnet mask of the scope that contains the lease the DHCP server is processing. | ||
scope-update-dns-enabled | int | r/o |
If equal to 1, then the scope has update-DNS-enabled. | ||
scope-update-dns-for-bootp | int | r/o |
If equal to 1, then the scope has update-DNS-enabled for BOOTP. | ||
start-time-of-state | int | r/o |
The time, in seconds, since 1970, this lease was first placed into its current state. | ||
transaction-time | int | r/o |
The time, in seconds, since 1970 that the request was decoded. | ||
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Posted: Thu Nov 18 12:22:10 PST 1999
Copyright 1989-1999©Cisco Systems Inc.