NetworkPkg/Dhcp6Dxe/Dhcp6Io.c File Reference


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)

Detailed Description

Dhcp6 internal functions implementation.

(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.


Function Documentation

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.

Parameters:
[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.
Return values:
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.

Parameters:
[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.

Parameters:
[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.

Parameters:
[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.
Return values:
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.

Parameters:
[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.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
[in] Packet The pointer to the Dhcp6 advertisement message.
Return values:
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.

Parameters:
[in] Instance The pointer to Dhcp6 instance.
[in] Packet The pointer to the Dhcp6 reply message.
Return values:
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.

Parameters:
[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.

Parameters:
[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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
Return values:
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.

Parameters:
[in] Instance The pointer to DHCP6_INSTANCE.
[in] TxCb The control block for a transmitted message.
Return values:
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.

Parameters:
[in] Instance The pointer to DHCP6_INSTANCE.
Return values:
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 
)

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.

Parameters:
[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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
[in] Packet The pointer to reply messages.
[out] Option The pointer to status code option.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
[in] AdSelect The pointer to the selected Dhcp6 advertisement message.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
[in] DecIa The pointer to the decline Ia.
Return values:
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.

Parameters:
[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.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
[in] RelIa The pointer to the release Ia.
Return values:
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.

Parameters:
[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.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
Return values:
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.

Parameters:
[in] Instance The pointer to the Dhcp6 instance.
Return values:
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.

Parameters:
[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.
Return values:
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.

Parameters:
[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.
Return values:
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.

Parameters:
[in,out] Instance The pointer to the Dhcp6 instance.
[in] Packet The pointer to reply messages.
Return values:
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().


Generated on Mon Sep 28 08:49:05 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1