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:
@@ -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;
|
||||
|
@@ -6,7 +6,7 @@
|
||||
RFC 1534: Interoperation Between DHCP and BOOTP
|
||||
RFC 3396: Encoding Long Options in DHCP.
|
||||
|
||||
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
|
||||
@@ -48,12 +48,12 @@ typedef struct _DHCP_PROTOCOL DHCP_PROTOCOL;
|
||||
// The state of the DHCP service. It starts as UNCONFIGED. If
|
||||
// and active child configures the service successfully, it
|
||||
// goes to CONFIGED. If the active child configures NULL, it
|
||||
// goes back to UNCONFIGED. It becomes DESTORY if it is (partly)
|
||||
// destoried.
|
||||
// goes back to UNCONFIGED. It becomes DESTROY if it is (partly)
|
||||
// destroyed.
|
||||
//
|
||||
#define DHCP_UNCONFIGED 0
|
||||
#define DHCP_CONFIGED 1
|
||||
#define DHCP_DESTORY 2
|
||||
#define DHCP_DESTROY 2
|
||||
|
||||
|
||||
struct _DHCP_PROTOCOL {
|
||||
@@ -63,7 +63,7 @@ struct _DHCP_PROTOCOL {
|
||||
EFI_HANDLE Handle;
|
||||
DHCP_SERVICE *Service;
|
||||
|
||||
BOOLEAN InDestory;
|
||||
BOOLEAN InDestroy;
|
||||
|
||||
EFI_EVENT CompletionEvent;
|
||||
EFI_EVENT RenewRebindEvent;
|
||||
@@ -83,8 +83,8 @@ struct _DHCP_SERVICE {
|
||||
UINT32 Signature;
|
||||
EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
|
||||
|
||||
INTN ServiceState; // CONFIGED, UNCONFIGED, and DESTORY
|
||||
BOOLEAN InDestory;
|
||||
INTN ServiceState; // CONFIGED, UNCONFIGED, and DESTROY
|
||||
BOOLEAN InDestroy;
|
||||
|
||||
EFI_HANDLE Controller;
|
||||
EFI_HANDLE Image;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
EFI DHCP protocol implementation.
|
||||
|
||||
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
|
||||
@@ -972,11 +972,11 @@ DhcpInput (
|
||||
DhcpSb = (DHCP_SERVICE *) Context;
|
||||
|
||||
//
|
||||
// Don't restart receive if error occurs or DHCP is destoried.
|
||||
// Don't restart receive if error occurs or DHCP is destroyed.
|
||||
//
|
||||
if (EFI_ERROR (IoStatus)) {
|
||||
return ;
|
||||
} else if (DhcpSb->ServiceState == DHCP_DESTORY) {
|
||||
} else if (DhcpSb->ServiceState == DHCP_DESTROY) {
|
||||
NetbufFree (UdpPacket);
|
||||
return ;
|
||||
}
|
||||
|
Reference in New Issue
Block a user