audk/NetworkPkg/UefiPxeBcDxe
Jiaxin Wu be37315a08 NetworkPkg: Fix PXEv6 boot failure when DhcpBinl offer received.
In case of the DHCP and PXE services on different servers,PXEv6 boot will
failure when DhcpBinl offer received. The issue is caused by the following
reasons:
* PXE Client doesn't append VENDOR_CLASS request parameter, so the
offer replied from DHCP service will not contain VENDOR_CLASS option
(16).
* Once the DhcpBinl offer is selected, the boot discover message should
be sent out to request the bootfile by this offer. Current implementation
always use servers multi-cast address instead of BootFileUrl address in
dhcp6 offer. we should check it first, then decide whether use multi-cast
address or not.
* If DhcpBinl offer is selected, the boot discover message shouldn't
find server ID Option from DhcpBinl offer. That's incorrect because DHCP
service and PXE service on different servers. In such a case, we can ignore
the Server ID Option.

With the above fix in the patch, PXEv6 can boot successfully when DhcpBinl
offer received.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
2017-05-03 11:28:44 +08:00
..
ComponentName.c 1. Add EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() support. 2012-12-13 06:47:06 +00:00
PxeBcBoot.c NetworkPkg: Add dns support for pxe boot based on IPv6. 2016-10-26 16:42:35 +08:00
PxeBcBoot.h Fix bugs in PXE driver when using option 43 for boot server list and boot menu prompt. 2012-08-24 08:25:42 +00:00
PxeBcDhcp4.c NetworkPkg: Correct the proxy DHCP offer handing 2017-04-21 13:04:53 +08:00
PxeBcDhcp4.h NetworkPkg: Check for the max DHCP packet length before use it. 2016-11-18 16:30:50 +08:00
PxeBcDhcp6.c NetworkPkg: Fix PXEv6 boot failure when DhcpBinl offer received. 2017-05-03 11:28:44 +08:00
PxeBcDhcp6.h NetworkPkg: Check for the max DHCP packet length before use it. 2016-11-18 16:30:50 +08:00
PxeBcDriver.c NetworkPkg:Fix Network memory leak when calling GetModeData interface 2016-01-28 02:32:43 +00:00
PxeBcDriver.h Update dual network stack drivers to produce multiple Driver Binding Protocol. 2013-04-25 01:33:43 +00:00
PxeBcImpl.c NetworkPkg: Fix potential ASSERT if NetIp4IsUnicast is called 2017-03-23 11:39:31 +08:00
PxeBcImpl.h NetworkPkg: Add dns support for pxe boot based on IPv6. 2016-10-26 16:42:35 +08:00
PxeBcMtftp.c NetworkPkg:Replace unsafe string functions. 2015-07-08 12:17:11 +00:00
PxeBcMtftp.h NetworkPkg:Replace unsafe string functions. 2015-07-08 12:17:11 +00:00
PxeBcSupport.c NetworkPkg: Refine UintnToAscDecWithFormat functions logic 2016-12-22 16:17:22 +08:00
PxeBcSupport.h NetworkPkg: Update PXE driver to follow edk2 coding standards. 2016-07-12 08:50:36 +08:00
UefiPxeBcDxe.inf NetworkPkg: Add dns support for pxe boot based on IPv6. 2016-10-26 16:42:35 +08:00
UefiPxeBcDxe.uni NetworkPkg: Convert all .uni files to utf-8 2015-12-15 04:56:57 +00:00
UefiPxeBcDxeExtra.uni NetworkPkg: Convert all .uni files to utf-8 2015-12-15 04:56:57 +00:00