Add IPV6 support from UNDI

Add new information block ‘IPV6 support from UNDI’ in AIP protocol and provide sample implementation in UNDI driver.
Update PXE driver to get ‘Ipv6Available’ of PXE BC Mode data from UNDI driver, if unsupported then not to start PXE over IPv6 path. 


Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17275 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ye Ting
2015-04-30 02:57:10 +00:00
committed by tye1
parent 1f17c7f71b
commit 2bbe9553c4
9 changed files with 405 additions and 10 deletions

View File

@@ -435,7 +435,7 @@ UndiDriverStart (
UNDI32Device->NIIProtocol_31.MinorVer = PXE_ROMID_MINORVER_31;
UNDI32Device->NIIProtocol_31.ImageSize = 0;
UNDI32Device->NIIProtocol_31.ImageAddr = 0;
UNDI32Device->NIIProtocol_31.Ipv6Supported = FALSE;
UNDI32Device->NIIProtocol_31.Ipv6Supported = TRUE;
UNDI32Device->NIIProtocol_31.StringId[0] = 'U';
UNDI32Device->NIIProtocol_31.StringId[1] = 'N';
@@ -444,6 +444,10 @@ UndiDriverStart (
UNDI32Device->DeviceHandle = NULL;
UNDI32Device->Aip.GetInformation = UndiAipGetInfo;
UNDI32Device->Aip.SetInformation = UndiAipSetInfo;
UNDI32Device->Aip.GetSupportedTypes = UndiAipGetSupportedTypes;
//
// install both the 3.0 and 3.1 NII protocols.
//
@@ -453,6 +457,8 @@ UndiDriverStart (
&UNDI32Device->NIIProtocol_31,
&gEfiDevicePathProtocolGuid,
UNDI32Device->Undi32DevPath,
&gEfiAdapterInformationProtocolGuid,
&UNDI32Device->Aip,
NULL
);
@@ -497,6 +503,8 @@ UndiErrorAllocDataPointer:
&UNDI32Device->NIIProtocol_31,
&gEfiDevicePathProtocolGuid,
UNDI32Device->Undi32DevPath,
&gEfiAdapterInformationProtocolGuid,
&UNDI32Device->Aip,
NULL
);