cc/td/doc/product/rtrmgmt/ciscoasu/nr/nr3.0
hometocprevnextglossaryfeedbacksearchhelp
PDF

Table of Contents

DHCP Extension Dictionary Entries

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. For more information about extension dictionaries see the "Overview of Extension Dictionaries" section.

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.

DHCP and BOOTP Fields

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.


Table D-1: DHCP and BOOTP Fields
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.


Table D-2: 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
-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-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-
assistance-servers*

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.


Table D-3: Decoded Packet Field
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.

The Request Dictionary

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.


Table D-4: Request Dictionary Specific Data Items
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-
address

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.

The Response Dictionary

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.


Table D-5: Response Dictionary Specific Data Items
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-
address

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-
address

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-
bytes

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-
address

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-
number

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.


hometocprevnextglossaryfeedbacksearchhelp
Posted: Thu Nov 18 12:22:10 PST 1999
Copyright 1989-1999©Cisco Systems Inc.