2.2.1.2.16 DHCP_CLIENT_INFO_V5

The DHCP_CLIENT_INFO_V5 structure defines information about the DHCPv4 client. It augments the DHCP_CLIENT_INFO_V4 (section 2.2.1.2.14) structure by including the additional element AddressState. This structure is used in the DHCP_CLIENT_INFO_ARRAY_V5 structure.

 typedef struct _DHCP_CLIENT_INFO_V5 {
   DHCP_IP_ADDRESS ClientIpAddress;
   DHCP_IP_MASK SubnetMask;
   DHCP_CLIENT_UID ClientHardwareAddress;
   LPWSTR ClientName;
   LPWSTR ClientComment;
   DATE_TIME ClientLeaseExpires;
   DHCP_HOST_INFO OwnerHost;
   BYTE bClientType;
   BYTE AddressState;
 } DHCP_CLIENT_INFO_V5,
  *LPDHCP_CLIENT_INFO_V5;

ClientIpAddress: This is of type DHCP_IP_ADDRESS (section 2.2.1.2.1), a DWORD that contains the DHCPv4 client's IPv4 address.

SubnetMask: This is of type DHCP_IP_MASK (section 2.2.1.2.2), a DWORD that contains the DHCPv4 client's IPv4 subnet mask address.

ClientHardwareAddress: This is of type DHCP_CLIENT_UID (section 2.2.1.2.5), a structure that represents a DHCPv4 client-identifier (section 2.2.1.2.5.1) or a DHCPv4 client unique ID (section 2.2.1.2.5.2). Methods that accept DHCP_CLIENT_INFO_V5 as a parameter specify which representations are acceptable.

ClientName: A pointer to a null-terminated Unicode string that represents the DHCPv4 client's internet host name. There is no restriction on the length of this Unicode string.

ClientComment: A pointer to a null-terminated Unicode string that represents the description given to the DHCPv4 client. There is no restriction on the length of this Unicode string.

ClientLeaseExpires: This is of type DATE_TIME (section 2.2.1.2.11), a structure that contains the lease expiry time for the DHCPv4 client. This is UTC time.

OwnerHost: This of type DHCP_HOST_INFO (section 2.2.1.2.7), a structure that contains information about the DHCPv4 server machine that has provided a lease to the DHCPv4 client.

bClientType: This is of type BYTE that identifies the type of the DHCPv4 client. Possible values for this field are provided in the following table.

Value

Meaning

CLIENT_TYPE_UNSPECIFIED

0x00

A DHCPv4 client other than ones defined in this table.

CLIENT_TYPE_DHCP

0x01

The DHCPv4 client supports the DHCP protocol.

CLIENT_TYPE_BOOTP

0x02

The DHCPv4 client supports the BOOTP protocols ([RFC2132]).

CLIENT_TYPE_BOTH

0x03

The DHCPv4 client identifies both the DHCPv4 and the BOOTP protocols.

CLIENT_TYPE_RESERVATION_FLAG

0x04

There is an IPv4 reservation created for the DHCPv4 client.

CLIENT_TYPE_NONE

0x64

Backward compatibility for manual addressing.

AddressState: This is of type BYTE, as shown by the following set of bits. The AddressState member represents the state of the IPv4 address given to the DHCPv4 client.

BIT 7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

The following tables show the various bit representation values and their meanings.

BIT 0 and BIT 1 signify the state of the leased IPv4 address, as shown in the table that follows.

Value

Meaning

ADDRESS_STATE_OFFERED

0x0

The DHCPv4 client is offered this IPv4 address.

ADDRESS_STATE_ACTIVE

0x1

The IPv4 address is active and has an active DHCPv4 client lease record.

ADDRESS_STATE_DECLINED

0x2

The IPv4 address request is declined by the DHCPv4 client; hence it is a bad IPv4 address.

ADDRESS_STATE_DOOM

0x3

The IPv4 address is in DOOMED state and is due to be deleted.

BIT 2 and BIT 3 signify the Name Protection (section 3.3.3) related information of the leased IPv4 address, as shown in the table that follows.

Value

Meaning

ADDRESS_BIT_NO_DHCID

0x0

The address is leased to the DHCPv4 client without DHCID (sections 3 and 3.5 of [RFC4701]).

ADDRESS_BIT_DHCID_NO_CLIENTIDOPTION

0x1

The address is leased to the DHCPv4 client with DHCID as specified in section 3.5.3 of [RFC4701].

ADDRESS_BIT_DHCID_WITH_CLIENTIDOPTION

0x2

The address is leased to the DHCPv4 client with DHCID as specified in section 3.5.2 of [RFC4701].

ADDRESS_BIT_DHCID_WITH_DUID

0x3

The address is leased to the DHCPv4 client with DHCID as specified in section 3.5.1 of [RFC4701].

BIT 4, BIT 5, BIT 6, and BIT 7 specify DNS-related information as shown in the table that follows.

Value

Meaning

ADDRESS_BIT_CLEANUP

0x10

The DNS update for the DHCPv4 client lease record needs to be deleted from the DNS server when the lease is deleted.

ADDRESS_BIT_BOTH_REC

0x20

The DNS update needs to be sent for both A and PTR resource records ([RFC1034] section 3.6).

ADDRESS_BIT_UNREGISTERED

0x40

The DNS update is not completed for the lease record.

ADDRESS_BIT_DELETED

0x80

The address lease is expired, but the DNS updates for the lease record have not been deleted from the DNS server.