|
typedef struct _EFI_DHCP6_PROTOCOL | EFI_DHCP6_PROTOCOL |
|
typedef 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) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_INFO_CALLBACK) (IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_PACKET *Packet) |
|
typedef 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) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_CONFIGURE) (IN EFI_DHCP6_PROTOCOL *This, IN EFI_DHCP6_CONFIG_DATA *Dhcp6CfgData OPTIONAL) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_START) (IN EFI_DHCP6_PROTOCOL *This) |
|
typedef 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) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_RENEW_REBIND) (IN EFI_DHCP6_PROTOCOL *This, IN BOOLEAN RebindRequest) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_DECLINE) (IN EFI_DHCP6_PROTOCOL *This, IN UINT32 AddressCount, IN EFI_IPv6_ADDRESS *Addresses) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_RELEASE) (IN EFI_DHCP6_PROTOCOL *This, IN UINT32 AddressCount, IN EFI_IPv6_ADDRESS *Addresses) |
|
typedef EFI_STATUS(EFIAPI * | EFI_DHCP6_STOP) (IN EFI_DHCP6_PROTOCOL *This) |
|
typedef 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) |
|
UEFI Dynamic Host Configuration Protocol 6 Definition, which is used to get IPv6 addresses and other configuration parameters from DHCPv6 servers.
Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
- Revision Reference:
- This Protocol is introduced in UEFI Specification 2.2
Definition in file Dhcp6.h.
Initialize or clean up the configuration data for the EFI DHCPv6 Protocol instance.
The Configure() function is used to initialize or clean up the configuration data of the EFI DHCPv6 Protocol instance.
- When Dhcp6CfgData is not NULL and Configure() is called successfully, the configuration data will be initialized in the EFI DHCPv6 Protocol instance and the state of the configured IA will be transferred into Dhcp6Init.
- When Dhcp6CfgData is NULL and Configure() is called successfully, the configuration data will be cleaned up and no IA will be associated with the EFI DHCPv6 Protocol instance.
To update the configuration data for an EFI DCHPv6 Protocol instance, the original data must be cleaned up before setting the new configuration data.
- Parameters
-
[in] | This | Pointer to the EFI_DHCP6_PROTOCOL instance. |
[in] | Dhcp6CfgData | Pointer to the DHCPv6 configuration data structure. |
- Return values
-
EFI_SUCCESS | The mode data was returned. |
EFI_INVALID_PARAMETER | One or more following conditions are TRUE
- This is NULL.
- OptionCount > 0 and OptionList is NULL.
- OptionList is not NULL, and Client Id option, Reconfigure Accept option, Rapid Commit option or any IA option is specified in the OptionList.
- IaDescriptor.Type is neither EFI_DHCP6_IA_TYPE_NA nor EFI_DHCP6_IA_TYPE_NA.
- IaDescriptor is not unique.
- Both IaInfoEvent and SolicitRetransimssion are NULL.
- SolicitRetransmission is not NULL, and both SolicitRetransimssion->Mrc and SolicitRetransmission->Mrd are zero.
|
EFI_ACCESS_DENIED | The EFI DHCPv6 Protocol instance has been already configured when Dhcp6CfgData is not NULL. The EFI DHCPv6 Protocol instance has already started the DHCPv6 S.A.R.R when Dhcp6CfgData is NULL. |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. |
EFI_DEVICE_ERROR | An unexpected system or network error occurred. |
Definition at line 464 of file Dhcp6.h.
Inform that one or more IPv6 addresses assigned by a server are already in use by another node.
The Decline() function is used to manually decline the assignment of IPv6 addresses, which have been already used by another node. If all IPv6 addresses of the configured IA are declined through this function, the state of the IA will switch through Dhcp6Declining to Dhcp6Init, otherwise, the state of the IA will restore to Dhcp6Bound after the declining process. The Decline() can only be called when the IA is in Dhcp6Bound state. If the EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, this function is a blocking operation. It will return after the declining process finishes, or aborted by user.
- Parameters
-
[in] | This | Pointer to the EFI_DHCP4_PROTOCOL instance. |
[in] | AddressCount | Number of declining IPv6 addresses. |
[in] | Addresses | Pointer to the buffer stored all the declining IPv6 addresses. |
- Return values
-
EFI_SUCCESS | The DHCPv6 decline exchange process has completed when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL. The EFI DHCPv6 Protocol instance has sent Decline packet when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL. |
EFI_INVALID_PARAMETER | One or more following conditions are TRUE
- This is NULL.
- AddressCount is zero or Addresses is NULL.
|
EFI_NOT_FOUND | Any specified IPv6 address is not correlated with the configured IA for this instance. |
EFI_ACCESS_DENIED | The EFI DHCPv6 Child instance hasn't been configured, or the state of the configured IA is not in Dhcp6Bound. |
EFI_DEVICE_ERROR | An unexpected network or system error occurred. |
EFI_ABORTED | The DHCPv6 decline exchange process aborted by user. |
Definition at line 660 of file Dhcp6.h.
Request configuration information without the assignment of any IA addresses of the client.
The InfoRequest() function is used to request configuration information without the assignment of any IPv6 address of the client. Client sends out Information Request packet to obtain the required configuration information, and DHCPv6 server responds with Reply packet containing the information for the client. The received Reply packet will be passed to the user by ReplyCallback function. If user returns EFI_NOT_READY from ReplyCallback, the EFI DHCPv6 Protocol instance will continue to receive other Reply packets unless timeout according to the Retransmission parameter. Otherwise, the Information Request exchange process will be finished successfully if user returns EFI_SUCCESS from ReplyCallback.
- Parameters
-
[in] | This | Pointer to the EFI_DHCP6_PROTOCOL instance. |
[in] | SendClientId | If TRUE, the EFI DHCPv6 Protocol instance will build Client Identifier option and include it into Information Request packet. If FALSE, Client Identifier option will not be included. Client Identifier option can not be specified through OptionList parameter. |
[in] | OptionRequest | Pointer to the Option Request option in the Information Request packet. Option Request option can not be specified through OptionList parameter. |
[in] | OptionCount | Number of options in OptionList. |
[in] | OptionList | List of other DHCPv6 options. These options will be appended to the Option Request option. The caller is responsible for freeing this buffer. Type is defined in EFI_DHCP6_PROTOCOL.GetModeData(). |
[in] | Retransmission | Parameter to control Information Request packet retransmission behavior. The buffer can be freed after EFI_DHCP6_PROTOCOL.InfoRequest() returns. |
[in] | TimeoutEvent | If not NULL, this event is signaled when the information request exchange aborted because of no response. If NULL, the function call is a blocking operation; and it will return after the information-request exchange process finish or aborted by users. |
[in] | ReplyCallback | The callback function is to intercept various events that occur in the Information Request exchange process. It should not be set to NULL. |
[in] | CallbackContext | Pointer to the context that will be passed to ReplyCallback. |
- Return values
-
EFI_SUCCESS | The DHCPv6 S.A.R.R process is completed and at least one IPv6 |
EFI_SUCCESS | The DHCPv6 information request exchange process completed when TimeoutEvent is NULL. Information Request packet has been sent to DHCPv6 server when TimeoutEvent is not NULL. |
EFI_INVALID_PARAMETER | One or more following conditions are TRUE:
- This is NULL.
- OptionRequest is NULL or OptionRequest->OpCode is invalid.
- OptionCount > 0 and OptionList is NULL.
- OptionList is not NULL, and Client Identify option or Option Request option is specified in the OptionList.
- Retransimssion is NULL.
- Both Retransimssion->Mrc and Retransmission->Mrd are zero.
- ReplyCallback is NULL.
|
EFI_DEVICE_ERROR | An unexpected network or system error occurred. |
EFI_NO_RESPONSE | The DHCPv6 information request exchange process failed because of no response, or not all requested-options are responded by DHCPv6 servers when Timeout happened. |
EFI_ABORTED | The DHCPv6 information request exchange process aborted by user. |
Definition at line 568 of file Dhcp6.h.
Release one or more IPv6 addresses associated with the configured IA for current instance.
The Release() function is used to manually release the one or more IPv6 address. If AddressCount is zero, it will release all IPv6 addresses of the configured IA. If all IPv6 addresses of the IA are released through this function, the state of the IA will switch through Dhcp6Releasing to Dhcp6Init, otherwise, the state of the IA will restore to Dhcp6Bound after the releasing process. The Release() can only be called when the IA is in Dhcp6Bound state. If the EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, the function is a blocking operation. It will return after the releasing process finishes, or aborted by user.
- Parameters
-
[in] | This | Pointer to the EFI_DHCP6_PROTOCOL instance. |
[in] | AddressCount | Number of releasing IPv6 addresses. |
[in] | Addresses | Pointer to the buffer stored all the releasing IPv6 addresses. Ignored if AddressCount is zero. |
- Return values
-
EFI_SUCCESS | The DHCPv6 release exchange process has completed when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL. The EFI DHCPv6 Protocol instance has sent Release packet when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL. |
EFI_INVALID_PARAMETER | One or more following conditions are TRUE
- This is NULL.
- AddressCount is not zero or Addresses is NULL.
|
EFI_NOT_FOUND | Any specified IPv6 address is not correlated with the configured IA for this instance. |
EFI_ACCESS_DENIED | The EFI DHCPv6 Child instance hasn't been configured, or the state of the configured IA is not in Dhcp6Bound. |
EFI_DEVICE_ERROR | An unexpected network or system error occurred. |
EFI_ABORTED | The DHCPv6 release exchange process aborted by user. |
Definition at line 698 of file Dhcp6.h.
Start the DHCPv6 S.A.R.R process.
The Start() function starts the DHCPv6 S.A.R.R process. This function can be called only when the state of the configured IA is in the Dhcp6Init state. If the DHCPv6 S.A.R.R process completes successfully, the state of the configured IA will be transferred through Dhcp6Selecting and Dhcp6Requesting to Dhcp6Bound state. The update of the IPv6 addresses will be notified through EFI_DHCP6_CONFIG_DATA.IaInfoEvent. At the time when each event occurs in this process, the callback function set by EFI_DHCP6_PROTOCOL.Configure() will be called and the user can take this opportunity to control the process. If EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, the Start() function call is a blocking operation. It will return after the DHCPv6 S.A.R.R process completes or aborted by users. If the process is aborted by system or network error, the state of the configured IA will be transferred to Dhcp6Init. The Start() function can be called again to restart the process.
- Parameters
-
[in] | This | Pointer to the EFI_DHCP6_PROTOCOL instance. |
- Return values
-
EFI_SUCCESS | The DHCPv6 S.A.R.R process is completed and at least one IPv6 address has been bound to the configured IA when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL. The DHCPv6 S.A.R.R process is started when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL. |
EFI_ACCESS_DENIED | The EFI DHCPv6 Child instance hasn't been configured. |
EFI_INVALID_PARAMETER | This is NULL. |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. |
EFI_ALREADY_STARTED | The DHCPv6 S.A.R.R process has already started. |
EFI_DEVICE_ERROR | An unexpected network or system error occurred. |
EFI_NO_RESPONSE | The DHCPv6 S.A.R.R process failed because of no response. |
EFI_NO_MAPPING | No IPv6 address has been bound to the configured IA after the DHCPv6 S.A.R.R process. |
EFI_ABORTED | The DHCPv6 S.A.R.R process aborted by user. |
EFI_NO_MEDIA | There was a media error. |
Definition at line 505 of file Dhcp6.h.