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

@@ -1,6 +1,6 @@
/** @file
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 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
@@ -146,11 +146,11 @@ DhcpConfigUdpIo (
/**
Destory the DHCP service. The Dhcp4 service may be partly initialized,
Destroy the DHCP service. The Dhcp4 service may be partly initialized,
or partly destroyed. If a resource is destroyed, it is marked as so in
case the destroy failed and being called again later.
@param[in] DhcpSb The DHCP service instance to destory.
@param[in] DhcpSb The DHCP service instance to destroy.
@retval EFI_SUCCESS Always return success.
@@ -212,7 +212,7 @@ Dhcp4CreateService (
DhcpSb->Signature = DHCP_SERVICE_SIGNATURE;
DhcpSb->ServiceState = DHCP_UNCONFIGED;
DhcpSb->InDestory = FALSE;
DhcpSb->InDestroy = FALSE;
DhcpSb->Controller = Controller;
DhcpSb->Image = ImageHandle;
InitializeListHead (&DhcpSb->Children);
@@ -414,7 +414,7 @@ Dhcp4DriverBindingStop (
DhcpSb = DHCP_SERVICE_FROM_THIS (ServiceBinding);
if (DhcpSb->InDestory) {
if (DhcpSb->InDestroy) {
return EFI_SUCCESS;
}
@@ -422,8 +422,8 @@ Dhcp4DriverBindingStop (
if (NumberOfChildren == 0) {
DhcpSb->InDestory = TRUE;
DhcpSb->ServiceState = DHCP_DESTORY;
DhcpSb->InDestroy = TRUE;
DhcpSb->ServiceState = DHCP_DESTROY;
gBS->UninstallProtocolInterface (
NicHandle,
@@ -436,7 +436,7 @@ Dhcp4DriverBindingStop (
FreePool (DhcpSb);
} else {
//
// Don't use NET_LIST_FOR_EACH_SAFE here, Dhcp4ServiceBindingDestoryChild
// Don't use NET_LIST_FOR_EACH_SAFE here, Dhcp4ServiceBindingDestroyChild
// may cause other child to be deleted.
//
while (!IsListEmpty (&DhcpSb->Children)) {
@@ -473,7 +473,7 @@ DhcpInitProtocol (
InitializeListHead (&Instance->Link);
Instance->Handle = NULL;
Instance->Service = DhcpSb;
Instance->InDestory = FALSE;
Instance->InDestroy = FALSE;
Instance->CompletionEvent = NULL;
Instance->RenewRebindEvent = NULL;
Instance->Token = NULL;
@@ -640,15 +640,15 @@ Dhcp4ServiceBindingDestroyChild (
//
// A child can be destroyed more than once. For example,
// Dhcp4DriverBindingStop will destroy all of its children.
// when caller driver is being stopped, it will destory the
// when caller driver is being stopped, it will destroy the
// dhcp child it opens.
//
if (Instance->InDestory) {
if (Instance->InDestroy) {
return EFI_SUCCESS;
}
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
Instance->InDestory = TRUE;
Instance->InDestroy = TRUE;
//
// Close the Udp4 protocol.
@@ -670,7 +670,7 @@ Dhcp4ServiceBindingDestroyChild (
);
if (EFI_ERROR (Status)) {
Instance->InDestory = FALSE;
Instance->InDestroy = FALSE;
gBS->RestoreTPL (OldTpl);
return Status;