Functions | |
VOID | Dhcp6CleanupRetry (IN DHCP6_INSTANCE *Instance, IN UINT32 Scope) |
VOID | Dhcp6CleanupSession (IN OUT DHCP6_INSTANCE *Instance, IN EFI_STATUS Status) |
EFI_STATUS | Dhcp6SendSolicitMsg (IN DHCP6_INSTANCE *Instance) |
EFI_STATUS | Dhcp6SendRequestMsg (IN DHCP6_INSTANCE *Instance) |
EFI_STATUS | Dhcp6SendRenewRebindMsg (IN DHCP6_INSTANCE *Instance, IN BOOLEAN RebindRequest) |
EFI_STATUS | Dhcp6SendDeclineMsg (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_IA *DecIa) |
EFI_STATUS | Dhcp6SendReleaseMsg (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_IA *RelIa) |
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[], IN EFI_DHCP6_RETRANSMISSION *Retransmission, IN EFI_EVENT TimeoutEvent, IN EFI_DHCP6_INFO_CALLBACK ReplyCallback, IN VOID *CallbackContext) |
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) |
VOID EFIAPI | Dhcp6ReceivePacket (IN NET_BUF *Udp6Wrap, IN UDP_END_POINT *EndPoint, IN EFI_STATUS IoStatus, IN VOID *Context) |
VOID EFIAPI | Dhcp6OnTimerTick (IN EFI_EVENT Event, IN VOID *Context) |
Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
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.
VOID Dhcp6CleanupRetry | ( | IN DHCP6_INSTANCE * | Instance, | |
IN UINT32 | Scope | |||
) |
Clean up the specific nodes in the retry list.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Scope | The scope of cleanup nodes. |
References DHCP6_PACKET_ALL, DHCP6_PACKET_STATEFUL, DHCP6_PACKET_STATELESS, Dhcp6MsgInfoRequest, _DHCP6_INF_CB::Link, _DHCP6_TX_CB::Link, _DHCP6_INF_CB::TimeoutEvent, and _DHCP6_TX_CB::TxPacket.
Referenced by Dhcp6CleanupSession(), Dhcp6DestroyInstance(), Dhcp6HandleStateless(), and Dhcp6ReceivePacket().
VOID Dhcp6CleanupSession | ( | IN OUT DHCP6_INSTANCE * | Instance, | |
IN EFI_STATUS | Status | |||
) |
Clean up the session of the instance stateful exchange.
[in,out] | Instance | The pointer to the Dhcp6 instance. |
[in] | Status | The return status from udp. |
References DHCP6_PACKET_STATEFUL, and Dhcp6CleanupRetry().
Referenced by Dhcp6HandleStateful(), Dhcp6OnTimerTick(), and EfiDhcp6Stop().
VOID EFIAPI Dhcp6OnTimerTick | ( | IN EFI_EVENT | Event, | |
IN VOID * | Context | |||
) |
The timer routine of the Dhcp6 instance for each second.
[in] | Event | The timer event. |
[in] | Context | The opaque parameter to the function. |
References _DHCP6_INSTANCE::AdPref, _DHCP6_INSTANCE::AdSelect, _DHCP6_INSTANCE::Config, Dhcp6CalculateExpireTime(), Dhcp6CleanupSession(), Dhcp6DequeueRetry(), Dhcp6IsValidTxCb(), Dhcp6LinkMovDetect(), Dhcp6MsgConfirm, Dhcp6MsgInfoRequest, Dhcp6MsgRenew, Dhcp6MsgSolicit, Dhcp6SelectAdvertiseMsg(), Dhcp6SendConfirmMsg(), Dhcp6SendRenewRebindMsg(), Dhcp6TransmitPacket(), _DHCP6_TX_CB::Elapsed, _DHCP6_IA_CB::Ia, _DHCP6_INSTANCE::IaCb, _DHCP6_IA_CB::LeaseTime, _DHCP6_TX_CB::RetryCnt, _DHCP6_TX_CB::RetryCtl, _DHCP6_TX_CB::RetryExp, _DHCP6_TX_CB::RetryLos, _DHCP6_TX_CB::SolicitRetry, _DHCP6_IA_CB::T1, _DHCP6_IA_CB::T2, _DHCP6_TX_CB::TickTime, _DHCP6_INSTANCE::TxList, _DHCP6_TX_CB::TxPacket, _DHCP6_INSTANCE::UdpSts, and _DHCP6_TX_CB::Xid.
Referenced by Dhcp6CreateInstance().
VOID EFIAPI Dhcp6ReceivePacket | ( | IN NET_BUF * | Udp6Wrap, | |
IN UDP_END_POINT * | EndPoint, | |||
IN EFI_STATUS | IoStatus, | |||
IN VOID * | Context | |||
) |
The receive callback function for the Dhcp6 exchange process.
[in] | Udp6Wrap | The pointer to the received net buffer. |
[in] | EndPoint | The pointer to the udp end point. |
[in] | IoStatus | The return status from udp io. |
[in] | Context | The opaque parameter to the function. |
[in] | Udp6Wrap | The pointer to the received net buffer. |
[in] | EndPoint | The pointer to the udp end point. |
[in] | IoStatus | The return status from udp io. |
[in] | Context | The opaque parameter to the function. |
References _DHCP6_SERVICE::Child, DHCP6_PACKET_ALL, Dhcp6CleanupRetry(), Dhcp6HandleStateful(), Dhcp6HandleStateless(), Dhcp6MsgInfoRequest, Dhcp6ReceivePacket(), _DHCP6_INSTANCE::TxList, _DHCP6_TX_CB::TxPacket, _DHCP6_SERVICE::UdpIo, and _DHCP6_TX_CB::Xid.
Referenced by Dhcp6HandleStateful(), Dhcp6HandleStateless(), Dhcp6ReceivePacket(), Dhcp6StartInfoRequest(), EfiDhcp6Decline(), EfiDhcp6Release(), EfiDhcp6RenewRebind(), and EfiDhcp6Start().
EFI_STATUS Dhcp6SendDeclineMsg | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_IA * | DecIa | |||
) |
Create the decline message and send it.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | DecIa | The pointer to the decline Ia. |
EFI_SUCCESS | Create and send the decline message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the decline message. |
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | DecIa | The pointer to the decline Ia. |
EFI_SUCCESS | Created and sent the decline message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the decline message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendIaOption(), Dhcp6AppendOption(), Dhcp6CallbackUser(), Dhcp6EnqueueRetry(), Dhcp6MsgDecline, Dhcp6OptClientId, Dhcp6OptServerId, Dhcp6SeekOption(), Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by EfiDhcp6Decline().
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 | |||
) |
Create the information request message and send it.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | InfCb | The pointer to the information request control block. |
[in] | SendClientId | If TRUE, the client identifier option will be included in information request message. Otherwise, the client identifier option will not be included. |
[in] | OptionRequest | The pointer to the option request option. |
[in] | OptionCount | The number options in the OptionList. |
[in] | OptionList | The array pointers to the appended options. |
[in] | Retransmission | The pointer to the retransmission control. |
EFI_SUCCESS | Create and send the info-request message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
Others | Failed to send the info-request message. |
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | InfCb | The pointer to the information request control block. |
[in] | SendClientId | If TRUE, the client identifier option will be included in information request message. Otherwise, the client identifier option will not be included. |
[in] | OptionRequest | The pointer to the option request option. |
[in] | OptionCount | The number options in the OptionList. |
[in] | OptionList | The array pointers to the appended options. |
[in] | Retransmission | The pointer to the retransmission control. |
EFI_SUCCESS | Created and sent the info-request message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
Others | Failed to send the info-request message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendOption(), Dhcp6EnqueueRetry(), Dhcp6MsgInfoRequest, Dhcp6OptClientId, Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by Dhcp6StartInfoRequest().
EFI_STATUS Dhcp6SendReleaseMsg | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_IA * | RelIa | |||
) |
Create the release message and send it.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | RelIa | The pointer to the release Ia. |
EFI_SUCCESS | Create and send the release message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the release message. |
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | RelIa | The pointer to the release Ia. |
EFI_SUCCESS | Created and sent the release message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the release message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendIaOption(), Dhcp6AppendOption(), Dhcp6CallbackUser(), Dhcp6EnqueueRetry(), Dhcp6MsgRelease, Dhcp6OptClientId, Dhcp6OptServerId, Dhcp6SeekOption(), Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by EfiDhcp6Release(), and EfiDhcp6Stop().
EFI_STATUS Dhcp6SendRenewRebindMsg | ( | IN DHCP6_INSTANCE * | Instance, | |
IN BOOLEAN | RebindRequest | |||
) |
Create the renew/rebind message and send it.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | RebindRequest | If TRUE, it is a Rebind type message. Otherwise, it is a Renew type message. |
EFI_SUCCESS | Create and send the renew/rebind message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the renew/rebind message. |
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | RebindRequest | If TRUE, it is a Rebind type message. Otherwise, it is a Renew type message. |
EFI_SUCCESS | Created and sent the renew/rebind message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the renew/rebind message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendIaOption(), Dhcp6AppendOption(), Dhcp6CallbackUser(), Dhcp6EnqueueRetry(), Dhcp6MsgRebind, Dhcp6MsgRenew, Dhcp6OptClientId, Dhcp6OptServerId, Dhcp6SeekOption(), Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by Dhcp6OnTimerTick(), and EfiDhcp6RenewRebind().
EFI_STATUS Dhcp6SendRequestMsg | ( | IN DHCP6_INSTANCE * | Instance | ) |
Create the request message and send it.
[in] | Instance | The pointer to the Dhcp6 instance. |
EFI_SUCCESS | Create and send the request message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the request message. |
[in] | Instance | The pointer to the Dhcp6 instance. |
EFI_SUCCESS | Created and sent the request message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the request message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendIaOption(), Dhcp6AppendOption(), Dhcp6CallbackUser(), Dhcp6EnqueueRetry(), Dhcp6MsgRequest, Dhcp6OptClientId, Dhcp6OptServerId, Dhcp6SeekOption(), Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by Dhcp6HandleReplyMsg(), and Dhcp6SelectAdvertiseMsg().
EFI_STATUS Dhcp6SendSolicitMsg | ( | IN DHCP6_INSTANCE * | Instance | ) |
Create the solicit message and send it.
[in] | Instance | The pointer to Dhcp6 instance. |
EFI_SUCCESS | Create and send the solicit message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
Others | Failed to send the solicit message. |
[in] | Instance | The pointer to the Dhcp6 instance. |
EFI_SUCCESS | Created and sent the solicit message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
Others | Failed to send the solicit message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendIaOption(), Dhcp6AppendOption(), Dhcp6CallbackUser(), Dhcp6EnqueueRetry(), Dhcp6MsgSolicit, Dhcp6OptClientId, Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by Dhcp6InitSolicitMsg(), and EfiDhcp6Start().
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[], | |||
IN EFI_DHCP6_RETRANSMISSION * | Retransmission, | |||
IN EFI_EVENT | TimeoutEvent, | |||
IN EFI_DHCP6_INFO_CALLBACK | ReplyCallback, | |||
IN VOID * | CallbackContext | |||
) |
Start the information request process.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | SendClientId | If TRUE, the client identifier option will be included in information request message. Otherwise, the client identifier option will not be included. |
[in] | OptionRequest | The pointer to the option request option. |
[in] | OptionCount | The number options in the OptionList. |
[in] | OptionList | The array pointers to the appended options. |
[in] | Retransmission | The pointer to the retransmission control. |
[in] | TimeoutEvent | The event of timeout. |
[in] | ReplyCallback | The callback function when the reply was received. |
[in] | CallbackContext | The pointer to the parameter passed to the callback. |
EFI_SUCCESS | Start the info-request process successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_NO_MAPPING | No source address is available for use. | |
Others | Failed to start the info-request process. |
References _DHCP6_INF_CB::CallbackContext, Dhcp6ReceivePacket(), Dhcp6SendInfoRequestMsg(), _DHCP6_INF_CB::Link, _DHCP6_INF_CB::ReplyCallback, _DHCP6_INF_CB::TimeoutEvent, and _DHCP6_SERVICE::UdpIo.
Referenced by EfiDhcp6InfoRequest().