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,7 +1,7 @@
|
||||
/** @file
|
||||
The driver binding and service binding protocol for IP4 driver.
|
||||
|
||||
Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 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
|
||||
@@ -118,7 +118,7 @@ Ip4DriverBindingSupported (
|
||||
Clean up a IP4 service binding instance. It will release all
|
||||
the resource allocated by the instance. The instance may be
|
||||
partly initialized, or partly destroyed. If a resource is
|
||||
destroyed, it is marked as that in case the destory failed and
|
||||
destroyed, it is marked as that in case the destroy failed and
|
||||
being called again later.
|
||||
|
||||
@param[in] IpSb The IP4 serviceing binding instance to clean up
|
||||
@@ -176,7 +176,7 @@ Ip4CreateService (
|
||||
IpSb->ServiceBinding.CreateChild = Ip4ServiceBindingCreateChild;
|
||||
IpSb->ServiceBinding.DestroyChild = Ip4ServiceBindingDestroyChild;
|
||||
IpSb->State = IP4_SERVICE_UNSTARTED;
|
||||
IpSb->InDestory = FALSE;
|
||||
IpSb->InDestroy = FALSE;
|
||||
|
||||
IpSb->NumChildren = 0;
|
||||
InitializeListHead (&IpSb->Children);
|
||||
@@ -315,7 +315,7 @@ ON_ERROR:
|
||||
Clean up a IP4 service binding instance. It will release all
|
||||
the resource allocated by the instance. The instance may be
|
||||
partly initialized, or partly destroyed. If a resource is
|
||||
destroyed, it is marked as that in case the destory failed and
|
||||
destroyed, it is marked as that in case the destroy failed and
|
||||
being called again later.
|
||||
|
||||
@param[in] IpSb The IP4 serviceing binding instance to clean up
|
||||
@@ -581,7 +581,7 @@ Ip4DriverBindingStop (
|
||||
|
||||
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||
|
||||
if (IpSb->Ip4Config != NULL && (IpSb->State != IP4_SERVICE_DESTORY)) {
|
||||
if (IpSb->Ip4Config != NULL && (IpSb->State != IP4_SERVICE_DESTROY)) {
|
||||
|
||||
IpSb->Ip4Config->Stop (IpSb->Ip4Config);
|
||||
|
||||
@@ -651,7 +651,7 @@ Ip4DriverBindingStop (
|
||||
|
||||
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||
|
||||
if (IpSb->InDestory) {
|
||||
if (IpSb->InDestroy) {
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
@@ -668,10 +668,10 @@ Ip4DriverBindingStop (
|
||||
goto ON_ERROR;
|
||||
}
|
||||
|
||||
IpSb->InDestory = TRUE;
|
||||
IpSb->InDestroy = TRUE;
|
||||
|
||||
State = IpSb->State;
|
||||
IpSb->State = IP4_SERVICE_DESTORY;
|
||||
IpSb->State = IP4_SERVICE_DESTROY;
|
||||
|
||||
//
|
||||
// Clear the variable data.
|
||||
@@ -696,10 +696,10 @@ Ip4DriverBindingStop (
|
||||
|
||||
FreePool (IpSb);
|
||||
} else if (NumberOfChildren == 0) {
|
||||
IpSb->InDestory = TRUE;
|
||||
IpSb->InDestroy = TRUE;
|
||||
|
||||
State = IpSb->State;
|
||||
IpSb->State = IP4_SERVICE_DESTORY;
|
||||
IpSb->State = IP4_SERVICE_DESTROY;
|
||||
|
||||
//
|
||||
// Clear the variable data.
|
||||
@@ -912,18 +912,18 @@ Ip4ServiceBindingDestroyChild (
|
||||
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||
|
||||
//
|
||||
// A child can be destoried more than once. For example,
|
||||
// Ip4DriverBindingStop will destory all of its children.
|
||||
// when UDP driver is being stopped, it will destory all
|
||||
// A child can be destroyed more than once. For example,
|
||||
// Ip4DriverBindingStop will destroy all of its children.
|
||||
// when UDP driver is being stopped, it will destroy all
|
||||
// the IP child it opens.
|
||||
//
|
||||
if (IpInstance->State == IP4_STATE_DESTORY) {
|
||||
if (IpInstance->State == IP4_STATE_DESTROY) {
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
State = IpInstance->State;
|
||||
IpInstance->State = IP4_STATE_DESTORY;
|
||||
IpInstance->State = IP4_STATE_DESTROY;
|
||||
|
||||
//
|
||||
// Close the Managed Network protocol.
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Implement IP4 pesudo interface.
|
||||
|
||||
Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 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
|
||||
@@ -745,10 +745,10 @@ Ip4FreeInterface (
|
||||
}
|
||||
|
||||
//
|
||||
// Destory the interface if this is the last IP instance that
|
||||
// Destroy the interface if this is the last IP instance that
|
||||
// has the address. Remove all the system transmitted packets
|
||||
// from this interface, cancel the receive request if there is
|
||||
// one, and destory the ARP requests.
|
||||
// one, and destroy the ARP requests.
|
||||
//
|
||||
Ip4CancelFrames (Interface, EFI_ABORTED, Ip4CancelInstanceFrame, NULL);
|
||||
Ip4CancelReceive (Interface);
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Definition for IP4 pesudo interface structure.
|
||||
|
||||
Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 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
|
||||
@@ -154,7 +154,7 @@ struct _IP4_INTERFACE {
|
||||
BOOLEAN Configured;
|
||||
|
||||
//
|
||||
// Handle used to create/destory ARP child. All the IP children
|
||||
// Handle used to create/destroy ARP child. All the IP children
|
||||
// share one MNP which is owned by IP service binding.
|
||||
//
|
||||
EFI_HANDLE Controller;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 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
|
||||
@@ -1256,7 +1256,7 @@ EfiIp4Configure (
|
||||
Status = Ip4CleanProtocol (IpInstance);
|
||||
|
||||
//
|
||||
// Don't change the state if it is DESTORY, consider the following
|
||||
// Don't change the state if it is DESTROY, consider the following
|
||||
// valid sequence: Mnp is unloaded-->Ip Stopped-->Udp Stopped,
|
||||
// Configure (ThisIp, NULL). If the state is changed to UNCONFIGED,
|
||||
// the unload fails miserably.
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Ip4 internal functions and type defintions.
|
||||
|
||||
Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 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
|
||||
@@ -50,23 +50,23 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
//
|
||||
// The state of IP4 protocol. It starts from UNCONFIGED. if it is
|
||||
// successfully configured, it goes to CONFIGED. if configure NULL
|
||||
// is called, it becomes UNCONFIGED again. If (partly) destoried, it
|
||||
// becomes DESTORY.
|
||||
// is called, it becomes UNCONFIGED again. If (partly) destroyed, it
|
||||
// becomes DESTROY.
|
||||
//
|
||||
#define IP4_STATE_UNCONFIGED 0
|
||||
#define IP4_STATE_CONFIGED 1
|
||||
#define IP4_STATE_DESTORY 2
|
||||
#define IP4_STATE_DESTROY 2
|
||||
|
||||
//
|
||||
// The state of IP4 service. It starts from UNSTARTED. It transits
|
||||
// to STARTED if autoconfigure is started. If default address is
|
||||
// configured, it becomes CONFIGED. and if partly destoried, it goes
|
||||
// to DESTORY.
|
||||
// configured, it becomes CONFIGED. and if partly destroyed, it goes
|
||||
// to DESTROY.
|
||||
//
|
||||
#define IP4_SERVICE_UNSTARTED 0
|
||||
#define IP4_SERVICE_STARTED 1
|
||||
#define IP4_SERVICE_CONFIGED 2
|
||||
#define IP4_SERVICE_DESTORY 3
|
||||
#define IP4_SERVICE_DESTROY 3
|
||||
|
||||
|
||||
///
|
||||
@@ -160,7 +160,7 @@ struct _IP4_SERVICE {
|
||||
UINT32 Signature;
|
||||
EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
|
||||
INTN State;
|
||||
BOOLEAN InDestory;
|
||||
BOOLEAN InDestroy;
|
||||
|
||||
//
|
||||
// List of all the IP instances and interfaces, and default
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
IP4 input process.
|
||||
|
||||
Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 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
|
||||
@@ -845,7 +845,7 @@ Ip4AccpetFrame (
|
||||
IpSb = (IP4_SERVICE *) Context;
|
||||
Option = NULL;
|
||||
|
||||
if (EFI_ERROR (IoStatus) || (IpSb->State == IP4_SERVICE_DESTORY)) {
|
||||
if (EFI_ERROR (IoStatus) || (IpSb->State == IP4_SERVICE_DESTROY)) {
|
||||
goto DROP;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user