1. Fix a bug in PXE driver that the PXE boot do not restart if a new boot option on the different IP stack is selected.

2. Retrieve the IP information after iSCSI TCPv6 connection established and fill it into iBFT table.
3. Generate a random IAID for each NIC port to require different IPv6 address in PXE driver.
4. Update function EfiMtftp6Configure() and Mtftp6RrqHandleOack() to allocate at most one UdpIo.
5. Fix a typo from “destory” to “destroy” in network code.

Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Ouyang Qian <qian.ouyang@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13859 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
sfu5
2012-10-17 08:23:41 +00:00
parent e98e59c237
commit 75dce34062
50 changed files with 320 additions and 197 deletions

View File

@@ -82,7 +82,7 @@ Dhcp6ConfigureUdpIo (
/**
Destory the Dhcp6 service. The Dhcp6 service may be partly initialized,
Destroy the Dhcp6 service. The Dhcp6 service may be partly initialized,
or partly destroyed. If a resource is destroyed, it is marked as such in
case the destroy failed and being called again later.
@@ -95,7 +95,7 @@ Dhcp6DestroyService (
)
{
//
// All children instances should have been already destoryed here.
// All children instances should have been already destroyed here.
//
ASSERT (Service->NumOfChild == 0);
@@ -155,7 +155,7 @@ Dhcp6CreateService (
// Initialize the fields of the new Dhcp6 service.
//
Dhcp6Srv->Signature = DHCP6_SERVICE_SIGNATURE;
Dhcp6Srv->InDestory = FALSE;
Dhcp6Srv->InDestroy = FALSE;
Dhcp6Srv->Controller = Controller;
Dhcp6Srv->Image = ImageHandle;
Dhcp6Srv->Xid = (0xffffff & NET_RANDOM (NetRandomInitSeed ()));
@@ -294,7 +294,7 @@ Dhcp6CreateInstance (
Dhcp6Ins->Signature = DHCP6_INSTANCE_SIGNATURE;
Dhcp6Ins->UdpSts = EFI_ALREADY_STARTED;
Dhcp6Ins->Service = Service;
Dhcp6Ins->InDestory = FALSE;
Dhcp6Ins->InDestroy = FALSE;
Dhcp6Ins->MediaPresent = TRUE;
CopyMem (
@@ -528,7 +528,7 @@ Dhcp6DriverBindingStop (
Service = DHCP6_SERVICE_FROM_THIS (ServiceBinding);
if (Service->InDestory) {
if (Service->InDestroy) {
return EFI_SUCCESS;
}
@@ -536,9 +536,9 @@ Dhcp6DriverBindingStop (
if (NumberOfChildren == 0) {
//
// Destory the service itself if no child instance left.
// Destroy the service itself if no child instance left.
//
Service->InDestory = TRUE;
Service->InDestroy = TRUE;
Status = gBS->UninstallProtocolInterface (
NicHandle,
@@ -547,7 +547,7 @@ Dhcp6DriverBindingStop (
);
if (EFI_ERROR (Status)) {
Service->InDestory = FALSE;
Service->InDestroy = FALSE;
goto ON_EXIT;
}
@@ -555,7 +555,7 @@ Dhcp6DriverBindingStop (
} else {
//
// Destory all the children instances before destory the service.
// Destroy all the children instances before destroy the service.
//
while (!IsListEmpty (&Service->Child)) {
Instance = NET_LIST_HEAD (&Service->Child, DHCP6_INSTANCE, Link);
@@ -747,13 +747,13 @@ Dhcp6ServiceBindingDestroyChild (
return EFI_INVALID_PARAMETER;
}
if (Instance->InDestory) {
if (Instance->InDestroy) {
return EFI_SUCCESS;
}
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
Instance->InDestory = TRUE;
Instance->InDestroy = TRUE;
Status = gBS->CloseProtocol (
Service->UdpIo->UdpHandle,
@@ -763,7 +763,7 @@ Dhcp6ServiceBindingDestroyChild (
);
if (EFI_ERROR (Status)) {
Instance->InDestory = FALSE;
Instance->InDestroy = FALSE;
gBS->RestoreTPL (OldTpl);
return Status;
}
@@ -778,7 +778,7 @@ Dhcp6ServiceBindingDestroyChild (
);
if (EFI_ERROR (Status)) {
Instance->InDestory = FALSE;
Instance->InDestroy = FALSE;
gBS->RestoreTPL (OldTpl);
return Status;
}

View File

@@ -246,7 +246,7 @@ struct _DHCP6_INSTANCE {
UINT8 AdPref;
EFI_IPv6_ADDRESS *Unicast;
EFI_STATUS UdpSts;
BOOLEAN InDestory;
BOOLEAN InDestroy;
BOOLEAN MediaPresent;
UINT64 StartTime;
};
@@ -266,7 +266,7 @@ struct _DHCP6_SERVICE {
UINT32 Xid;
LIST_ENTRY Child;
UINTN NumOfChild;
BOOLEAN InDestory;
BOOLEAN InDestroy;
};
/**

View File

@@ -52,7 +52,7 @@ Dhcp6EnqueueRetry (
}
//
// Save tx packet pointer, and it will be destoryed when reply received.
// Save tx packet pointer, and it will be destroyed when reply received.
//
TxCb->TxPacket = Packet;
TxCb->Xid = Packet->Dhcp6.Header.TransactionId;
@@ -2510,7 +2510,7 @@ Dhcp6HandleStateful (
ClientId = Service->ClientId;
Status = EFI_SUCCESS;
if (Instance->InDestory || Instance->Config == NULL) {
if (Instance->InDestroy || Instance->Config == NULL) {
goto ON_CONTINUE;
}
@@ -2624,7 +2624,7 @@ Dhcp6HandleStateless (
IsMatched = FALSE;
InfCb = NULL;
if (Instance->InDestory) {
if (Instance->InDestroy) {
goto ON_EXIT;
}