15#ifndef __EFI_DHCP4_PROTOCOL_H__
16#define __EFI_DHCP4_PROTOCOL_H__
21#define EFI_DHCP4_PROTOCOL_GUID \
23 0x8a219718, 0x4ef5, 0x4761, {0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56 } \
26#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
28 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80 } \
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
#define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
EFI_STATUS(EFIAPI * EFI_DHCP4_PARSE)(IN EFI_DHCP4_PROTOCOL *This, IN EFI_DHCP4_PACKET *Packet, IN OUT UINT32 *OptionCount, OUT EFI_DHCP4_PACKET_OPTION *PacketOptionList[] OPTIONAL)
Parses the packed DHCP option data.
@ Dhcp4Stopped
The EFI DHCPv4 Protocol driver is stopped.
@ Dhcp4Init
The EFI DHCPv4 Protocol driver is inactive.
@ Dhcp4Bound
The DHCP configuration has completed.
@ Dhcp4Rebooting
The EFI DHCPv4 Protocol driver is seeking to reuse the previously allocated IP address by sending a r...
@ Dhcp4Requesting
The EFI DHCPv4 Protocol driver has sent the request to the DHCP server and is waiting for a response.
@ Dhcp4InitReboot
The EFI DHCPv4 Protocol driver was initialized with a previously allocated or known IP address.
@ Dhcp4Rebinding
The DHCP configuration has timed out and the EFI DHCPv4 Protocol driver is trying to extend the lease...
@ Dhcp4Selecting
The EFI DHCPv4 Protocol driver is collecting DHCP offer packets from DHCP servers.
@ Dhcp4Renewing
The DHCP configuration is being renewed and another request has been sent out, but it has not receive...
EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid
EFI_STATUS(EFIAPI * EFI_DHCP4_STOP)(IN EFI_DHCP4_PROTOCOL *This)
Stops the current address configuration.
EFI_STATUS(EFIAPI * EFI_DHCP4_TRANSMIT_RECEIVE)(IN EFI_DHCP4_PROTOCOL *This, IN EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN *Token)
Transmits a DHCP formatted packet and optionally waits for responses.
EFI_STATUS(EFIAPI * EFI_DHCP4_BUILD)(IN EFI_DHCP4_PROTOCOL *This, IN EFI_DHCP4_PACKET *SeedPacket, IN UINT32 DeleteCount, IN UINT8 *DeleteList OPTIONAL, IN UINT32 AppendCount, IN EFI_DHCP4_PACKET_OPTION *AppendList[] OPTIONAL, OUT EFI_DHCP4_PACKET **NewPacket)
Builds a DHCP packet, given the options to be appended or deleted or replaced.
EFI_STATUS(EFIAPI * EFI_DHCP4_START)(IN EFI_DHCP4_PROTOCOL *This, IN EFI_EVENT CompletionEvent OPTIONAL)
Starts the DHCP configuration process.
EFI_STATUS(EFIAPI * EFI_DHCP4_RELEASE)(IN EFI_DHCP4_PROTOCOL *This)
Releases the current address configuration.
EFI_GUID gEfiDhcp4ProtocolGuid
EFI_STATUS(EFIAPI * EFI_DHCP4_RENEW_REBIND)(IN EFI_DHCP4_PROTOCOL *This, IN BOOLEAN RebindRequest, IN EFI_EVENT CompletionEvent OPTIONAL)
Extends the lease time by sending a request packet.
struct _EFI_DHCP4_PROTOCOL EFI_DHCP4_PROTOCOL
EFI_STATUS(EFIAPI * EFI_DHCP4_CONFIGURE)(IN EFI_DHCP4_PROTOCOL *This, IN EFI_DHCP4_CONFIG_DATA *Dhcp4CfgData OPTIONAL)
Initializes, changes, or resets the operational settings for the EFI DHCPv4 Protocol driver.
@ Dhcp4RcvdNak
A DHCPNAK packet was received and will be passed to Dhcp4Callback.
@ Dhcp4Fail
The DHCP process failed because a DHCPNAK packet was received or the user aborted the DHCP process at...
@ Dhcp4SendDecline
A decline packet is about to be sent.
@ Dhcp4RcvdAck
A DHCPACK packet was received and will be passed to Dhcp4Callback.
@ Dhcp4SendRequest
A request packet is about to be sent.
@ Dhcp4SelectOffer
It is time for Dhcp4Callback to select an offer.
@ Dhcp4EnterRebinding
It is time to enter the Dhcp4Rebinding state and to contact any server.
@ Dhcp4BoundCompleted
The DHCP configuration process has completed.
@ Dhcp4RcvdOffer
A reply packet was just received.
@ Dhcp4SendDiscover
The packet to start the configuration sequence is about to be sent.
@ Dhcp4EnterRenewing
It is time to enter the Dhcp4Renewing state and to contact the server that originally issued the netw...
@ Dhcp4AddressLost
The configured IP address was lost either because the lease has expired, the user released the config...
EFI_STATUS(EFIAPI * EFI_DHCP4_GET_MODE_DATA)(IN EFI_DHCP4_PROTOCOL *This, OUT EFI_DHCP4_MODE_DATA *Dhcp4ModeData)
Returns the current operating mode and cached data packet for the EFI DHCPv4 Protocol driver.
EFI_STATUS(EFIAPI * EFI_DHCP4_CALLBACK)(IN EFI_DHCP4_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP4_STATE CurrentState, IN EFI_DHCP4_EVENT Dhcp4Event, IN EFI_DHCP4_PACKET *Packet OPTIONAL, OUT EFI_DHCP4_PACKET **NewPacket OPTIONAL)
Callback routine.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
IPv4_ADDRESS EFI_IPv4_ADDRESS
4-byte buffer.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
VOID * CallbackContext
The pointer to the context that will be passed to Dhcp4Callback when it is called.
EFI_DHCP4_PACKET_OPTION ** OptionList
List of DHCP options to be included in every packet that is sent during the Dhcp4SendDiscover event.
UINT32 * DiscoverTimeout
The maximum amount of time (in seconds) to wait for returned packets in each of the retries.
EFI_IPv4_ADDRESS ClientAddress
For a DHCPDISCOVER, setting this parameter to the previously allocated IP address will cause the EFI ...
UINT32 * RequestTimeout
The maximum amount of time (in seconds) to wait for return packets in each of the retries.
UINT32 OptionCount
Number of DHCP options in the OptionList.
EFI_DHCP4_CALLBACK Dhcp4Callback
The callback function to intercept various events that occurred in the DHCP configuration process.
UINT32 RequestTryCount
The number of times to try sending a packet during the Dhcp4SendRequest event and waiting for a respo...
UINT32 DiscoverTryCount
The number of times to try sending a packet during the Dhcp4SendDiscover event and waiting for a resp...
UINT16 ListenPort
Alternate station source (or listening) port number.
EFI_IPv4_ADDRESS ListenAddress
Alternate listening address.
EFI_IPv4_ADDRESS SubnetMask
The subnet mask of above listening unicast/broadcast IP address.
EFI_IPv4_ADDRESS ServerAddress
The server IP address that is providing the DHCP service to this client.
EFI_IPv4_ADDRESS SubnetMask
The subnet mask of the connected network that was acquired from the DHCP server.
EFI_DHCP4_CONFIG_DATA ConfigData
The configuration data of the current EFI DHCPv4 Protocol driver instance.
UINT32 LeaseTime
The lease time (in 1-second units) of the configured IP address.
EFI_DHCP4_STATE State
The EFI DHCPv4 Protocol driver operating state.
EFI_IPv4_ADDRESS RouterAddress
The router IP address that was acquired from the DHCP server.
EFI_IPv4_ADDRESS ClientAddress
The client IP address that was acquired from the DHCP server.
EFI_DHCP4_PACKET * ReplyPacket
The cached latest DHCPACK or DHCPNAK or BOOTP REPLY packet.
EFI_MAC_ADDRESS ClientMacAddress
The local hardware address.
UINT8 OpCode
DHCP option code.
UINT8 Data[1]
Start of the DHCP option data.
UINT8 Length
Length of the DHCP option data.
UINT8 Option[1]
Start of the DHCP packed option data.
UINT32 Length
Length of the EFI_DHCP4_PACKET from the first byte of the Header field to the last byte of the Option...
EFI_DHCP4_HEADER Header
DHCP packet header.
UINT32 Size
Size of the EFI_DHCP4_PACKET buffer.
UINT32 Magik
DHCP magik cookie in network byte order.
EFI_IPv4_ADDRESS RemoteAddress
The pointer to the server IP address.
UINT32 ListenPointCount
The number of entries in ListenPoints.
UINT32 TimeoutValue
The number of seconds to collect responses.
EFI_DHCP4_LISTEN_POINT * ListenPoints
An array of station address and port number pairs that are used as receiving filters.
EFI_DHCP4_PACKET * Packet
The pointer to the packet to be transmitted.
EFI_STATUS Status
The completion status of transmitting and receiving.
EFI_IPv4_ADDRESS GatewayAddress
The pointer to the gateway address to override the existing setting.
UINT32 ResponseCount
Number of received packets.
UINT16 RemotePort
The server listening port number.
EFI_DHCP4_PACKET * ResponseList
The pointer to the allocated list of received packets.
EFI_EVENT CompletionEvent
If not NULL, the event that will be signaled when the collection process completes.
32-byte buffer containing a network Media Access Control address.
This protocol is used to collect configuration information for the EFI IPv4 Protocol drivers and to p...
EFI_DHCP4_TRANSMIT_RECEIVE TransmitReceive
EFI_DHCP4_CONFIGURE Configure
EFI_DHCP4_GET_MODE_DATA GetModeData
EFI_DHCP4_RENEW_REBIND RenewRebind
EFI_DHCP4_RELEASE Release