/** @file | |
Dhcp6 internal functions declaration. | |
Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php. | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#ifndef __EFI_DHCP6_IO_H__ | |
#define __EFI_DHCP6_IO_H__ | |
/** | |
Clean up the specific nodes in the retry list. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@param[in] Scope The scope of cleanup nodes. | |
**/ | |
VOID | |
Dhcp6CleanupRetry ( | |
IN DHCP6_INSTANCE *Instance, | |
IN UINT32 Scope | |
); | |
/** | |
Clean up the session of the instance stateful exchange. | |
@param[in, out] Instance The pointer to the Dhcp6 instance. | |
@param[in] Status The return status from udp. | |
**/ | |
VOID | |
Dhcp6CleanupSession ( | |
IN OUT DHCP6_INSTANCE *Instance, | |
IN EFI_STATUS Status | |
); | |
/** | |
Create the solicit message and send it. | |
@param[in] Instance The pointer to Dhcp6 instance. | |
@retval EFI_SUCCESS Create and send the solicit message successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval Others Failed to send the solicit message. | |
**/ | |
EFI_STATUS | |
Dhcp6SendSolicitMsg ( | |
IN DHCP6_INSTANCE *Instance | |
); | |
/** | |
Create the request message and send it. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@retval EFI_SUCCESS Create and send the request message successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval EFI_DEVICE_ERROR An unexpected error. | |
@retval Others Failed to send the request message. | |
**/ | |
EFI_STATUS | |
Dhcp6SendRequestMsg ( | |
IN DHCP6_INSTANCE *Instance | |
); | |
/** | |
Create the renew/rebind message and send it. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@param[in] RebindRequest If TRUE, it is a Rebind type message. | |
Otherwise, it is a Renew type message. | |
@retval EFI_SUCCESS Create and send the renew/rebind message successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval EFI_DEVICE_ERROR An unexpected error. | |
@retval Others Failed to send the renew/rebind message. | |
**/ | |
EFI_STATUS | |
Dhcp6SendRenewRebindMsg ( | |
IN DHCP6_INSTANCE *Instance, | |
IN BOOLEAN RebindRequest | |
); | |
/** | |
Create the decline message and send it. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@param[in] DecIa The pointer to the decline Ia. | |
@retval EFI_SUCCESS Create and send the decline message successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval EFI_DEVICE_ERROR An unexpected error. | |
@retval Others Failed to send the decline message. | |
**/ | |
EFI_STATUS | |
Dhcp6SendDeclineMsg ( | |
IN DHCP6_INSTANCE *Instance, | |
IN EFI_DHCP6_IA *DecIa | |
); | |
/** | |
Create the release message and send it. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@param[in] RelIa The pointer to the release Ia. | |
@retval EFI_SUCCESS Create and send the release message successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval EFI_DEVICE_ERROR An unexpected error. | |
@retval Others Failed to send the release message. | |
**/ | |
EFI_STATUS | |
Dhcp6SendReleaseMsg ( | |
IN DHCP6_INSTANCE *Instance, | |
IN EFI_DHCP6_IA *RelIa | |
); | |
/** | |
Start the information request process. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@param[in] SendClientId If TRUE, the client identifier option will be included in | |
information request message. Otherwise, the client identifier | |
option will not be included. | |
@param[in] OptionRequest The pointer to the option request option. | |
@param[in] OptionCount The number options in the OptionList. | |
@param[in] OptionList The array pointers to the appended options. | |
@param[in] Retransmission The pointer to the retransmission control. | |
@param[in] TimeoutEvent The event of timeout. | |
@param[in] ReplyCallback The callback function when the reply was received. | |
@param[in] CallbackContext The pointer to the parameter passed to the callback. | |
@retval EFI_SUCCESS Start the info-request process successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval EFI_NO_MAPPING No source address is available for use. | |
@retval Others Failed to start the info-request process. | |
**/ | |
EFI_STATUS | |
Dhcp6StartInfoRequest ( | |
IN DHCP6_INSTANCE *Instance, | |
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 | |
); | |
/** | |
Create the information request message and send it. | |
@param[in] Instance The pointer to the Dhcp6 instance. | |
@param[in] InfCb The pointer to the information request control block. | |
@param[in] SendClientId If TRUE, the client identifier option will be included in | |
information request message. Otherwise, the client identifier | |
option will not be included. | |
@param[in] OptionRequest The pointer to the option request option. | |
@param[in] OptionCount The number options in the OptionList. | |
@param[in] OptionList The array pointers to the appended options. | |
@param[in] Retransmission The pointer to the retransmission control. | |
@retval EFI_SUCCESS Create and send the info-request message successfully. | |
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. | |
@retval Others Failed to send the info-request message. | |
**/ | |
EFI_STATUS | |
Dhcp6SendInfoRequestMsg ( | |
IN DHCP6_INSTANCE *Instance, | |
IN DHCP6_INF_CB *InfCb, | |
IN BOOLEAN SendClientId, | |
IN EFI_DHCP6_PACKET_OPTION *OptionRequest, | |
IN UINT32 OptionCount, | |
IN EFI_DHCP6_PACKET_OPTION *OptionList[], | |
IN EFI_DHCP6_RETRANSMISSION *Retransmission | |
); | |
/** | |
The receive callback function for the Dhcp6 exchange process. | |
@param[in] Udp6Wrap The pointer to the received net buffer. | |
@param[in] EndPoint The pointer to the udp end point. | |
@param[in] IoStatus The return status from udp io. | |
@param[in] Context The opaque parameter to the function. | |
**/ | |
VOID | |
EFIAPI | |
Dhcp6ReceivePacket ( | |
IN NET_BUF *Udp6Wrap, | |
IN UDP_END_POINT *EndPoint, | |
IN EFI_STATUS IoStatus, | |
IN VOID *Context | |
); | |
/** | |
The timer routine of the Dhcp6 instance for each second. | |
@param[in] Event The timer event. | |
@param[in] Context The opaque parameter to the function. | |
**/ | |
VOID | |
EFIAPI | |
Dhcp6OnTimerTick ( | |
IN EFI_EVENT Event, | |
IN VOID *Context | |
); | |
#endif |