13#ifndef __EFI_DHCP6_PROTOCOL_H__
14#define __EFI_DHCP6_PROTOCOL_H__
19#define EFI_DHCP6_PROTOCOL_GUID \
21 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b } \
24#define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \
26 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5 } \
137#define EFI_DHCP6_IA_TYPE_NA 3
141#define EFI_DHCP6_IA_TYPE_TA 4
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
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_DHCP6_CALLBACK)(IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_STATE CurrentState, IN EFI_DHCP6_EVENT Dhcp6Event, IN EFI_DHCP6_PACKET *Packet, OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL)
EFI_DHCP6_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol instance to intercept event...
EFI_STATUS(EFIAPI * EFI_DHCP6_CONFIGURE)(IN EFI_DHCP6_PROTOCOL *This, IN EFI_DHCP6_CONFIG_DATA *Dhcp6CfgData OPTIONAL)
Initialize or clean up the configuration data for the EFI DHCPv6 Protocol instance.
EFI_STATUS(EFIAPI * EFI_DHCP6_RENEW_REBIND)(IN EFI_DHCP6_PROTOCOL *This, IN BOOLEAN RebindRequest)
Manually extend the valid and preferred lifetimes for the IPv6 addresses of the configured IA and upd...
EFI_STATUS(EFIAPI * EFI_DHCP6_DECLINE)(IN EFI_DHCP6_PROTOCOL *This, IN UINT32 AddressCount, IN EFI_IPv6_ADDRESS *Addresses)
Inform that one or more IPv6 addresses assigned by a server are already in use by another node.
struct _EFI_DHCP6_PROTOCOL EFI_DHCP6_PROTOCOL
EFI_GUID gEfiDhcp6ProtocolGuid
EFI_STATUS(EFIAPI * EFI_DHCP6_RELEASE)(IN EFI_DHCP6_PROTOCOL *This, IN UINT32 AddressCount, IN EFI_IPv6_ADDRESS *Addresses)
Release one or more IPv6 addresses associated with the configured IA for current instance.
EFI_STATUS(EFIAPI * EFI_DHCP6_INFO_REQUEST)(IN EFI_DHCP6_PROTOCOL *This, IN BOOLEAN SendClientId, IN EFI_DHCP6_PACKET_OPTION *OptionRequest, IN UINT32 OptionCount, IN EFI_DHCP6_PACKET_OPTION *OptionList[] OPTIONAL, IN EFI_DHCP6_RETRANSMISSION *Retransmission, IN EFI_EVENT TimeoutEvent OPTIONAL, IN EFI_DHCP6_INFO_CALLBACK ReplyCallback, IN VOID *CallbackContext OPTIONAL)
Request configuration information without the assignment of any IA addresses of the client.
@ Dhcp6SendDecline
A Decline packet is about to be sent.
@ Dhcp6RcvdReply
A Reply packet is received and will be passed to Dhcp6Callback.
@ Dhcp6RcvdAdvertise
An Advertise packet is received and will be passed to Dhcp6Callback.
@ Dhcp6SendRequest
A Request packet is about to be sent.
@ Dhcp6EnterRenewing
A Renew packet is about to be sent.
@ Dhcp6SendRelease
A Release packet is about to be sent.
@ Dhcp6SendConfirm
A Confirm packet is about to be sent.
@ Dhcp6SendSolicit
A Solicit packet is about to be sent.
@ Dhcp6EnterRebinding
A Rebind packet is about to be sent.
@ Dhcp6SelectAdvertise
It is time for Dhcp6Callback to determine whether select the default Advertise packet by RFC 3315 pol...
@ Dhcp6RcvdReconfigure
A Reconfigure packet is received and will be passed to Dhcp6Callback.
EFI_STATUS(EFIAPI * EFI_DHCP6_GET_MODE_DATA)(IN EFI_DHCP6_PROTOCOL *This, OUT EFI_DHCP6_MODE_DATA *Dhcp6ModeData OPTIONAL, OUT EFI_DHCP6_CONFIG_DATA *Dhcp6ConfigData OPTIONAL)
Retrieve the current operating mode data and configuration data for the EFI DHCPv6 Protocol instance.
EFI_STATUS(EFIAPI * EFI_DHCP6_INFO_CALLBACK)(IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_PACKET *Packet)
EFI_DHCP6_INFO_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol instance to intercept ...
@ Dhcp6Declining
A Decline packet is sent out to indicate one or more addresses of the configured IA are in use by ano...
@ Dhcp6Requesting
A Request is sent out to the DHCPv6 server, and the EFI DHCPv6 Protocol instance is waiting for Reply...
@ Dhcp6Releasing
A Release packet is sent out to release one or more IPv6 addresses of the configured IA,...
@ Dhcp6Bound
The DHCPv6 S.A.R.R process is completed for the configured IA.
@ Dhcp6Selecting
A Solicit packet is sent out to discover DHCPv6 server, and the EFI DHCPv6 Protocol instance is colle...
@ Dhcp6Rebinding
A Rebind packet is sent out to extend lifetime for the IPv6 addresses of the configured IA,...
@ Dhcp6Renewing
A Renew packet is sent out to extend lifetime for the IPv6 addresses of the configured IA,...
@ Dhcp6Init
The EFI DHCPv6 Protocol instance is configured, and start() needs to be called.
@ Dhcp6Confirming
A Confirm packet is sent out to confirm the IPv6 addresses of the configured IA, and the EFI DHCPv6 P...
EFI_STATUS(EFIAPI * EFI_DHCP6_STOP)(IN EFI_DHCP6_PROTOCOL *This)
Stop the DHCPv6 S.A.R.R process.
EFI_GUID gEfiDhcp6ServiceBindingProtocolGuid
EFI_STATUS(EFIAPI * EFI_DHCP6_PARSE)(IN EFI_DHCP6_PROTOCOL *This, IN EFI_DHCP6_PACKET *Packet, IN OUT UINT32 *OptionCount, OUT EFI_DHCP6_PACKET_OPTION *PacketOptionList[] OPTIONAL)
Parse the option data in the DHCPv6 packet.
EFI_STATUS(EFIAPI * EFI_DHCP6_START)(IN EFI_DHCP6_PROTOCOL *This)
Start the DHCPv6 S.A.R.R process.
IPv6_ADDRESS EFI_IPv6_ADDRESS
16-byte buffer.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#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.
BOOLEAN ReconfigureAccept
If TRUE, the EFI DHCPv6 Protocol instance is willing to accept Reconfigure packet.
EFI_DHCP6_IA_DESCRIPTOR IaDescriptor
The descriptor for the IA of the EFI DHCPv6 Protocol instance.
BOOLEAN RapidCommit
If TRUE, the EFI DHCPv6 Protocol instance will send Solicit packet with Rapid Commit option.
UINT32 OptionCount
Number of the DHCPv6 options in the OptionList.
EFI_DHCP6_RETRANSMISSION * SolicitRetransmission
Parameter to control Solicit packet retransmission behavior.
VOID * CallbackContext
Pointer to the context that will be passed to Dhcp6Callback.
EFI_EVENT IaInfoEvent
If not NULL, the event will be signaled when any IPv6 address information of the configured IA is upd...
EFI_DHCP6_CALLBACK Dhcp6Callback
The callback function is to intercept various events that occur in the DHCPv6 S.A....
EFI_DHCP6_PACKET_OPTION ** OptionList
List of the DHCPv6 options to be included in Solicit and Request packet.
UINT8 Duid[1]
Array of DUID octects.
UINT16 Length
Length of DUID in octects.
EFI_IPv6_ADDRESS IpAddress
The IPv6 address.
UINT32 ValidLifetime
The valid lifetime in unit of seconds for the IPv6 address.
UINT32 PreferredLifetime
The preferred lifetime in unit of seconds for the IPv6 address.
UINT16 Type
Type for an IA.
UINT32 IaId
The identifier for an IA.
EFI_DHCP6_PACKET * ReplyPacket
Pointer to the cached latest Reply packet.
EFI_DHCP6_IA_DESCRIPTOR Descriptor
The descriptor for IA.
EFI_DHCP6_IA_ADDRESS IaAddress[1]
List of the IPv6 addresses of the configured IA.
EFI_DHCP6_STATE State
The state of the configured IA.
UINT32 IaAddressCount
Number of IPv6 addresses of the configured IA.
EFI_DHCP6_DUID * ClientId
Pointer to the DHCPv6 unique identifier.
EFI_DHCP6_IA * Ia
Pointer to the configured IA of current instance.
EFI_DHCP6_PACKET_OPTION defines the format of the DHCPv6 option, See RFC 3315 for more information.
UINT16 OpCode
The DHCPv6 option code, stored in network order.
UINT16 OpLen
Length of the DHCPv6 option data, stored in network order.
UINT8 Data[1]
The data for the DHCPv6 option, stored in network order.
EFI_DHCP6_PACKET defines the format of the DHCPv6 packet.
EFI_DHCP6_HEADER Header
The DHCPv6 packet header.
UINT32 Size
Size of the EFI_DHCP6_PACKET buffer.
UINT8 Option[1]
Start of the DHCPv6 packed option data.
UINT32 Length
Length of the EFI_DHCP6_PACKET from the first byte of the Header field to the last byte of the Option...
UINT32 Mrt
Maximum retransmission timeout for each retry.
UINT32 Mrc
Maximum retransmission count for one packet.
UINT32 Mrd
Maximum retransmission duration for one packet.
UINT32 Irt
Initial retransmission timeout.
The EFI DHCPv6 Protocol is used to get IPv6 addresses and other configuration parameters from DHCPv6 ...
EFI_DHCP6_CONFIGURE Configure
EFI_DHCP6_INFO_REQUEST InfoRequest
EFI_DHCP6_GET_MODE_DATA GetModeData
EFI_DHCP6_RELEASE Release
EFI_DHCP6_RENEW_REBIND RenewRebind
EFI_DHCP6_DECLINE Decline