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

@@ -8,7 +8,7 @@
RFC2348 - TFTP Blocksize Option
RFC2349 - TFTP Timeout Interval and Transfer Size Options
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 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
@@ -189,13 +189,15 @@ EfiMtftp6Configure (
// Don't configure the udpio here because each operation might override
// the configuration, so delay udpio configuration in each operation.
//
Instance->UdpIo = UdpIoCreateIo (
Service->Controller,
Service->Image,
Mtftp6ConfigDummyUdpIo,
UDP_IO_UDP6_VERSION,
NULL
);
if (Instance->UdpIo == NULL) {
Instance->UdpIo = UdpIoCreateIo (
Service->Controller,
Service->Image,
Mtftp6ConfigDummyUdpIo,
UDP_IO_UDP6_VERSION,
NULL
);
}
if (Instance->UdpIo == NULL) {
Status = EFI_OUT_OF_RESOURCES;
@@ -620,11 +622,11 @@ EfiMtftp6Poll (
Instance = MTFTP6_INSTANCE_FROM_THIS (This);
//
// Check the instance whether configured or in destory.
// Check the instance whether configured or in destroy.
//
if (Instance->Config == NULL) {
return EFI_NOT_STARTED;
} else if (Instance->InDestory) {
} else if (Instance->InDestroy) {
return EFI_DEVICE_ERROR;
}