Functions | |
EFI_STATUS | Dhcp6EnqueueRetry (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet, IN UINT16 *Elapsed, IN EFI_DHCP6_RETRANSMISSION *RetryCtl) |
EFI_STATUS | Dhcp6DequeueRetry (IN DHCP6_INSTANCE *Instance, IN UINT32 PacketXid, IN BOOLEAN NeedSignal) |
VOID | Dhcp6CleanupRetry (IN DHCP6_INSTANCE *Instance, IN UINT32 Scope) |
BOOLEAN | Dhcp6IsValidTxCb (IN DHCP6_INSTANCE *Instance, IN DHCP6_TX_CB *TxCb) |
VOID | Dhcp6CleanupSession (IN OUT DHCP6_INSTANCE *Instance, IN EFI_STATUS Status) |
EFI_STATUS EFIAPI | Dhcp6CallbackUser (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_EVENT Event, IN OUT EFI_DHCP6_PACKET **Packet) |
EFI_STATUS | Dhcp6UpdateIaInfo (IN OUT DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet) |
EFI_STATUS | Dhcp6SeekStsOption (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet, OUT UINT8 **Option) |
EFI_STATUS | Dhcp6TransmitPacket (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet, IN UINT16 *Elapsed) |
EFI_STATUS | Dhcp6SendSolicitMsg (IN DHCP6_INSTANCE *Instance) |
EFI_STATUS | Dhcp6InitSolicitMsg (IN DHCP6_INSTANCE *Instance) |
EFI_STATUS | Dhcp6SendRequestMsg (IN DHCP6_INSTANCE *Instance) |
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 | Dhcp6SendRenewRebindMsg (IN DHCP6_INSTANCE *Instance, IN BOOLEAN RebindRequest) |
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) |
EFI_STATUS | Dhcp6SendConfirmMsg (IN DHCP6_INSTANCE *Instance) |
EFI_STATUS | Dhcp6HandleReplyMsg (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet) |
EFI_STATUS | Dhcp6SelectAdvertiseMsg (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *AdSelect) |
EFI_STATUS | Dhcp6HandleAdvertiseMsg (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet) |
VOID | Dhcp6HandleStateful (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet) |
VOID | Dhcp6HandleStateless (IN DHCP6_INSTANCE *Instance, IN EFI_DHCP6_PACKET *Packet) |
VOID EFIAPI | Dhcp6ReceivePacket (IN NET_BUF *Udp6Wrap, IN UDP_END_POINT *EndPoint, IN EFI_STATUS IoStatus, IN VOID *Context) |
BOOLEAN | Dhcp6LinkMovDetect (IN DHCP6_INSTANCE *Instance) |
VOID EFIAPI | Dhcp6OnTimerTick (IN EFI_EVENT Event, IN VOID *Context) |
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.
Copyright (c) 2009 - 2015, 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.
EFI_STATUS EFIAPI Dhcp6CallbackUser | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_EVENT | Event, | |||
IN OUT EFI_DHCP6_PACKET ** | Packet | |||
) |
Callback to user when Dhcp6 transmit/receive occurs.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Event | The current Dhcp6 event. |
[in,out] | Packet | The pointer to the packet sending or received. |
EFI_SUCCESS | The user function returns success. | |
EFI_NOT_READY | Direct the caller to continue collecting the offer. | |
EFI_ABORTED | The user function ask it to abort. |
Referenced by Dhcp6HandleAdvertiseMsg(), Dhcp6HandleReplyMsg(), Dhcp6SelectAdvertiseMsg(), Dhcp6SendConfirmMsg(), Dhcp6SendDeclineMsg(), Dhcp6SendReleaseMsg(), Dhcp6SendRenewRebindMsg(), Dhcp6SendRequestMsg(), and Dhcp6SendSolicitMsg().
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().
EFI_STATUS Dhcp6DequeueRetry | ( | IN DHCP6_INSTANCE * | Instance, | |
IN UINT32 | PacketXid, | |||
IN BOOLEAN | NeedSignal | |||
) |
Dequeue the packet from retry list if reply received or timeout at last.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | PacketXid | The packet transaction id to match. |
[in] | NeedSignal | If TRUE, then an timeout event need be signaled when it is existed. Otherwise, this parameter is ignored. |
EFI_SUCCESS | Successfully dequeued the packet into retry list . | |
EFI_NOT_FOUND | There is no xid matched in retry list. |
References Dhcp6MsgInfoRequest, _DHCP6_TX_CB::Link, _DHCP6_INF_CB::Link, _DHCP6_INF_CB::TimeoutEvent, _DHCP6_TX_CB::TxPacket, _DHCP6_INF_CB::Xid, and _DHCP6_TX_CB::Xid.
Referenced by Dhcp6HandleReplyMsg(), Dhcp6HandleStateless(), Dhcp6OnTimerTick(), and Dhcp6SelectAdvertiseMsg().
EFI_STATUS Dhcp6EnqueueRetry | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet, | |||
IN UINT16 * | Elapsed, | |||
IN EFI_DHCP6_RETRANSMISSION * | RetryCtl | |||
) |
Enqueue the packet into the retry list in case of timeout.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to the Dhcp6 packet to retry. |
[in] | Elapsed | The pointer to the elapsed time value in the packet. |
[in] | RetryCtl | The pointer to the transmission control of the packet. This parameter is optional and may be NULL. |
EFI_SUCCESS | Successfully enqueued the packet into the retry list according to its message type. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected message type. |
References _DHCP6_IA_CB::AllExpireTime, DHCP6_CNF_IRT, DHCP6_CNF_MRC, DHCP6_CNF_MRD, DHCP6_CNF_MRT, DHCP6_DEC_IRT, DHCP6_DEC_MRC, DHCP6_DEC_MRD, DHCP6_DEC_MRT, DHCP6_INF_IRT, DHCP6_INF_MRC, DHCP6_INF_MRD, DHCP6_INF_MRT, DHCP6_REB_IRT, DHCP6_REB_MRC, DHCP6_REB_MRT, DHCP6_REL_IRT, DHCP6_REL_MRC, DHCP6_REL_MRD, DHCP6_REL_MRT, DHCP6_REN_IRT, DHCP6_REN_MRC, DHCP6_REN_MRT, DHCP6_REQ_IRT, DHCP6_REQ_MRC, DHCP6_REQ_MRD, DHCP6_REQ_MRT, DHCP6_SOL_IRT, DHCP6_SOL_MRC, DHCP6_SOL_MRD, DHCP6_SOL_MRT, Dhcp6CalculateExpireTime(), Dhcp6MsgConfirm, Dhcp6MsgDecline, Dhcp6MsgInfoRequest, Dhcp6MsgRebind, Dhcp6MsgRelease, Dhcp6MsgRenew, Dhcp6MsgRequest, Dhcp6MsgSolicit, _DHCP6_TX_CB::Elapsed, _DHCP6_TX_CB::Link, _DHCP6_TX_CB::RetryCtl, _DHCP6_TX_CB::RetryExp, _DHCP6_IA_CB::T1, _DHCP6_IA_CB::T2, _DHCP6_TX_CB::TxPacket, and _DHCP6_TX_CB::Xid.
Referenced by Dhcp6SendConfirmMsg(), Dhcp6SendDeclineMsg(), Dhcp6SendInfoRequestMsg(), Dhcp6SendReleaseMsg(), Dhcp6SendRenewRebindMsg(), Dhcp6SendRequestMsg(), and Dhcp6SendSolicitMsg().
EFI_STATUS Dhcp6HandleAdvertiseMsg | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet | |||
) |
Handle with the Dhcp6 advertisement message.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to the Dhcp6 advertisement message. |
EFI_SUCCESS | Processed the advertisement message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to process the advertise message. |
References Dhcp6CallbackUser(), Dhcp6HandleReplyMsg(), Dhcp6MsgAdvertise, Dhcp6MsgReply, Dhcp6OptPreference, Dhcp6OptRapidCommit, Dhcp6SeekOption(), Dhcp6SeekStsOption(), and Dhcp6SelectAdvertiseMsg().
Referenced by Dhcp6HandleStateful().
EFI_STATUS Dhcp6HandleReplyMsg | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet | |||
) |
Handle with the Dhcp6 reply message.
[in] | Instance | The pointer to Dhcp6 instance. |
[in] | Packet | The pointer to the Dhcp6 reply message. |
EFI_SUCCESS | Processed the reply message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to process the reply message. |
References Dhcp6AppendCacheIa(), Dhcp6CacheIa(), Dhcp6CallbackUser(), Dhcp6DequeueRetry(), Dhcp6InitSolicitMsg(), Dhcp6MsgReply, Dhcp6OptRapidCommit, Dhcp6SeekIaOption(), Dhcp6SeekOption(), Dhcp6SeekStsOption(), Dhcp6SendRequestMsg(), Dhcp6StsNoBinding, Dhcp6StsNotOnLink, Dhcp6StsUnspecFail, Dhcp6StsUseMulticast, and Dhcp6UpdateIaInfo().
Referenced by Dhcp6HandleAdvertiseMsg(), and Dhcp6HandleStateful().
VOID Dhcp6HandleStateful | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet | |||
) |
The Dhcp6 stateful exchange process routine.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to the received Dhcp6 message. |
References _DHCP6_SERVICE::ClientId, Dhcp6CleanupSession(), Dhcp6HandleAdvertiseMsg(), Dhcp6HandleReplyMsg(), Dhcp6MsgAdvertise, Dhcp6MsgReply, Dhcp6OptClientId, Dhcp6OptServerId, Dhcp6ReceivePacket(), Dhcp6SeekOption(), and _DHCP6_SERVICE::UdpIo.
Referenced by Dhcp6ReceivePacket().
VOID Dhcp6HandleStateless | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet | |||
) |
The Dhcp6 stateless exchange process routine.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to the received Dhcp6 message. |
References _DHCP6_INF_CB::CallbackContext, DHCP6_PACKET_STATELESS, Dhcp6CleanupRetry(), Dhcp6DequeueRetry(), Dhcp6MsgReply, Dhcp6OptServerId, Dhcp6ReceivePacket(), Dhcp6SeekOption(), _DHCP6_INF_CB::ReplyCallback, _DHCP6_SERVICE::UdpIo, and _DHCP6_INF_CB::Xid.
Referenced by Dhcp6ReceivePacket().
EFI_STATUS Dhcp6InitSolicitMsg | ( | IN DHCP6_INSTANCE * | Instance | ) |
Configure some parameter to initiate SolicitMsg.
[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 Dhcp6SendSolicitMsg().
Referenced by Dhcp6HandleReplyMsg().
BOOLEAN Dhcp6IsValidTxCb | ( | IN DHCP6_INSTANCE * | Instance, | |
IN DHCP6_TX_CB * | TxCb | |||
) |
Check whether the TxCb is still a valid control block in the instance's retry list.
[in] | Instance | The pointer to DHCP6_INSTANCE. |
[in] | TxCb | The control block for a transmitted message. |
TRUE | The control block is in Instance's retry list. | |
FALSE | The control block is NOT in Instance's retry list. |
Referenced by Dhcp6OnTimerTick().
BOOLEAN Dhcp6LinkMovDetect | ( | IN DHCP6_INSTANCE * | Instance | ) |
Detect Link movement for specified network device.
This routine will try to invoke Snp->GetStatus() to get the media status. If media present status switches from unpresent to present, a link movement is detected. Note that the underlying UNDI driver may not support reporting media status from GET_STATUS command. If that, fail to detect link movement.
[in] | Instance | The pointer to DHCP6_INSTANCE. |
TRUE | A link movement is detected. | |
FALSE | A link movement is not detected. |
Referenced by Dhcp6OnTimerTick().
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 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. |
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 Dhcp6SeekStsOption | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet, | |||
OUT UINT8 ** | Option | |||
) |
Seek StatusCode Option in package. A Status Code option may appear in the options field of a DHCP message and/or in the options field of another option. See details in section 22.13, RFC3315.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to reply messages. |
[out] | Option | The pointer to status code option. |
EFI_SUCCESS | Seek status code option successfully. | |
EFI_DEVICE_ERROR | An unexpected error. |
References Dhcp6OptIana, Dhcp6OptStatusCode, Dhcp6SeekIaOption(), Dhcp6SeekOption(), and Dhcp6StsSuccess.
Referenced by Dhcp6HandleAdvertiseMsg(), and Dhcp6HandleReplyMsg().
EFI_STATUS Dhcp6SelectAdvertiseMsg | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | AdSelect | |||
) |
Select the appointed Dhcp6 advertisement message.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | AdSelect | The pointer to the selected Dhcp6 advertisement message. |
EFI_SUCCESS | Selected the right advertisement message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
Others | Failed to select the advertise message. |
References Dhcp6CallbackUser(), Dhcp6DequeueRetry(), Dhcp6OptServerUnicast, Dhcp6SeekOption(), Dhcp6SendRequestMsg(), and Dhcp6UpdateIaInfo().
Referenced by Dhcp6HandleAdvertiseMsg(), and Dhcp6OnTimerTick().
EFI_STATUS Dhcp6SendConfirmMsg | ( | IN DHCP6_INSTANCE * | Instance | ) |
Create the Confirm message and send it.
[in] | Instance | The pointer to the Dhcp6 instance. |
EFI_SUCCESS | Created and sent the confirm message successfully. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
EFI_DEVICE_ERROR | An unexpected error. | |
Others | Failed to send the confirm message. |
References _DHCP6_SERVICE::ClientId, DHCP6_BASE_PACKET_SIZE, Dhcp6AppendETOption(), Dhcp6AppendIaOption(), Dhcp6AppendOption(), Dhcp6CallbackUser(), Dhcp6EnqueueRetry(), Dhcp6MsgConfirm, Dhcp6OptClientId, Dhcp6TransmitPacket(), and _DHCP6_SERVICE::Xid.
Referenced by Dhcp6OnTimerTick().
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 | 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 | 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 | 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 | 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 | 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 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().
EFI_STATUS Dhcp6TransmitPacket | ( | IN DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet, | |||
IN UINT16 * | Elapsed | |||
) |
Transmit Dhcp6 message by udpio.
[in] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to transmit message. |
[in] | Elapsed | The pointer to the elapsed time value to fill in. |
EFI_SUCCESS | Successfully transmitted the packet. | |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. | |
Others | Failed to transmit the packet. |
References DHCP6_PORT_CLIENT, DHCP6_PORT_SERVER, Dhcp6DummyExtFree(), Dhcp6OnTransmitted(), mAllDhcpRelayAndServersAddress, SetElapsedTime(), and _DHCP6_SERVICE::UdpIo.
Referenced by Dhcp6OnTimerTick(), Dhcp6SendConfirmMsg(), Dhcp6SendDeclineMsg(), Dhcp6SendInfoRequestMsg(), Dhcp6SendReleaseMsg(), Dhcp6SendRenewRebindMsg(), Dhcp6SendRequestMsg(), and Dhcp6SendSolicitMsg().
EFI_STATUS Dhcp6UpdateIaInfo | ( | IN OUT DHCP6_INSTANCE * | Instance, | |
IN EFI_DHCP6_PACKET * | Packet | |||
) |
Update Ia according to the new reply message.
[in,out] | Instance | The pointer to the Dhcp6 instance. |
[in] | Packet | The pointer to reply messages. |
EFI_SUCCESS | Updated the Ia information successfully. | |
EFI_DEVICE_ERROR | An unexpected error. |
References Dhcp6GenerateIaCb(), Dhcp6OptIana, Dhcp6OptStatusCode, Dhcp6SeekIaOption(), Dhcp6SeekOption(), and Dhcp6StsSuccess.
Referenced by Dhcp6HandleReplyMsg(), and Dhcp6SelectAdvertiseMsg().