American Megatrends, Inc.

UefiNetworkStackII

Copyright

Release Notes

© American Megatrends, Inc.


Copyright

American Megatrends, Inc.
5555 Oakbrook Parkway
Suite 200
Norcross, GA 30093 (USA)

Copyright (c) 1999-2014 American Megatrends, Inc. All Rights Reserved.

This publication contains proprietary information, which is protected by copyright. No part of this publication may be reproduced, transcribed, stored in a retrieval system, translated into any language or computer language, or transmitted in any form whatsoever without the prior written consent of the publisher, American Megatrends, Inc.

American Megatrends, Inc. retains the right to update, change, modify this publication at any time, without notice.

For Additional Information

Call American Megatrends BIOS Sales Department at 1-800-828-9264 for additional information.

Limitations of Liability

In no event shall American Megatrends be held liable for any loss, expenses, or damages of any kind whatsoever, whether direct, indirect, incidental, or consequential, arising from the design or use of this product or the support materials provided with the product.

Limited Warranty

No warranties are made, either expressed or implied, with regard to the contents of this work, its merchantability, or fitness for a particular use. American Megatrends assumes no responsibility for errors and omissions or for the uses made of the material contained herein or reader decisions based on such use.

Trademark and Copyright Acknowledgments

All product names used in this publication are for identification purposes only and are trademarks of their respective Companies.


Release Notes - NDA Required

Component Information:
Component Title: UEFINetworkStack II
Component Reference Name: UEFINetworkStack II
Component Type: eModule
Release Date: 2014-06-12
Source Control Label: 4.6.5.4_UefiNetworkStackII_11
Source Control Location: SS: ALASKA;$/Alaska/Bin/Modules/Network/UEFINetworkStack II
Component Description:
The Network stack Module is set of drivers that produce network protocols.
The UEFI Network Stack implements the TCP/IP network interfaces such as SNP, MNP, ARP, IP, UDP, DHCP, MTFTP, and TCP.
Modules are available for both IPV4 and IPV6. Module supports UEFI specifications 2.3 specification.
Modules do not require any porting.
UEFI PXE support through option rom using BiosSnp Thunk driver is not supported with this network stack.
************************************************************************************************
This module requires UEFI UNDI driver specific to the network chip used in the platform.
ISCSI module needs to be added along with this module for UEFI ISCSI boot support.
************************************************************************************************

NetworkStack Module is divided into three sub categories.
Common Drivers
These drivers are shared between IPV4 and IPV6 modules. Thesse modules should be present for IPV4 and IPV6 modules to work.
SNP - Produces EFI_SIMPLE_NETWORK_PROTOCOL on top of UNDI protocol. Used by MNP module.
MNP - Produces EFI_MANAGED_NETWORK_PROTOCOL. Used by IP Module.
ARP - Produces EFI_ARP_PROTOCOL. Used by UEfiPxeBc Module
DPC - Produces EFI_DPC_PROTOCOL. Used by IpSec Module.
TCP - Produces both EFI_TCP4_PROTOCOL and EFI_TCP6_PROTOCOL . Used by modules that requires TCP support such as ISCSI.
UEFIPxeBc - Used for UEFI PXE boot.
IPSec - Produces EFI_IPSEC_PROTOCOL.
NetworkStackSetupScreen - Setup page to Enable/Disable network stack.
IPV4 Modules
These drivers are specific to IPV4 support. These drivers can be enabled/disabled as a group, based on requirement.
IP4 - Produces EFI_IP4_PROTOCOL. Used by UDP and TCP Modules.
IP4Config - Produces EFI_IP4_CONFIG_PROTOCOL. Used by IP4 module
UDP4 - Produces EFI_UDP4_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules.
DHCP4 - Produces EFI_DHCP4_PROTOCOL. Used by UEFIPxeBC module.
MTFTP4 - Produces EFI_MTFTP4_PROTOCOL. Used by UEFIPxeBC module.
IPV6 Modules
These drivers are specific to IPV6 support. These drivers can be enabled/disabled as a group, based on requirement.
IP6 - Produces EFI_IP6_PROTOCOL EFI_IP6_CONFIG_PROTOCOL. Used by UDP and TCP Modules.
UDP6 - Produces EFI_UDP6_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules
DHCP6 - Produces EFI_DHCP6_PROTOCOL. Used by UEFIPxeBC module.
MTFTP6 - Produces EFI_MTFTP6_PROTOCOL. Used by UEFIPxeBC module.
AMI Build Tools:
Tools Label: TOOLS_40, Dated: 2012-06-21
Visual eBios: RSS.5.73.0239, Dated: 2013-06-21
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
1. Updated to Intel SVN version 15318 and 15555.
EIP Addressed in this Label:
1. EIP #171760 : Updated to intel SVN source 15318 and 15555.
2. EIP #154427 : NetworkStackSetupScreen.inf is modified to use '/' slash instead of '\'.
3. EIP #147413 : Conversion of NetworkStackSetupScreen.sd to the new setup format.
4. EIP #149487 : After Disable CSM, Can't see the LAN MAC when Add an Attempt.
5. EIP #166563 : Removing RT attributes.
6. EIP #151935 : UEFI PXE Performance issue.
Files Changed for EIP fixes in this Label:
1. EIP #154427 : NetworkStackSetupScreen.inf
2. EIP #147413 : NetworkStackSetupScreen.sd
3. EIP #149487 : TcpDriver.c
4. EIP #166563 : NetworkStackSetupScreen.c
5. EIP #151935 : Udp4Impl.c, Udp6Impl.c
Known issues and limitations in this label:
MediaDetectTime(Time to wait for media to be detected during PXE boot)

On giving a MediaDetectTime of one sec, media will be detected even after one sec(upto 10 secs(approx)) as this includes time taken to call various libraries as well.
Remaining Issues:
N0NE
Unit Testing:
1. Build with VS2008 and DDK3790.
2. Verified if Network Stack setup options are set properly.
3. Disabled CSM and verified if MAC is seen in Iscsi Add Attempt page(Tested this as fix was in NtwStk).
4. Ran commands ifconfig -l and verified MAC addresses are displayed and connected ports were indicated.
5. Build with disabled Network Stack modules enabled.
6. Checked basics (ip4/ip6 disabled,ip4/ip6 pxe boot, media detect time, pxe abort time).
Validation Testing:
Validation Report
Release History:
4.6.5.4_UefiNetworkStackII_11
  1. [TAG] EIP171760
    [Category] New Feature
    [Description] Updated to intel SVN source 15555.

  2. [TAG] EIP147413
    [Category] Improvement
    [Description] Conversion of NetworkStackSetupScreen.sd to the new setup format.
    [Files] NetworkStackSetupScreen.sd
    Common/NetworkStackSetupScreen\NetworkStackSetupScreen.sd

  3. [TAG] EIP154427
    [Category] Improvement
    [Description] NetworkStackSetupScreen.inf is modified to use '/' slash instead of '\'.
    [Files] NetworkStackSetupScreen.inf

  4. [TAG] EIP147413
    [Category] Improvement
    [Description] Conversion of NetworkStackSetupScreen.sd to the new setup format.
    [Files] NetworkStackSetupScreen.sd

  5. [TAG] EIP149487
    [Category] Bug Fix
    [Description] After Disable CSM, Can't see the LAN MAC when Add an Attempt.
    [Files] TcpDxe\TcpDriver.c

4.6.4_UEFI_NETWORK_STACK_II_10
  1. [TAG] EIP14928
    [Category] New Feature
    [Description] Updated to intel SVN source 14928.

  2. [Category] Improvement
    [Description] Add Media Detect Time setup option.
    [Files] PxeBcImpl.c,PxeBcDriver.c,NetworkStackSetupScreen.uni,NetworkStackSetupScreen.sd,NetworkStackSetup.h.

  3. [TAG] EIP132315
    [Category] Improvement
    [Description] Register UNDI shutdown for the Legacy boot event.
    [Files] SnpDxe\Snp.c

  4. [TAG] EIP137694
    [Category] Bug Fix
    [Severity:] Important
    [Symptom:] Different Ipv6 address are assigned every boot for particular port results in DHCP reaching out of range.
    [Root Cause] Different IAID is assigned every boot for particular port which results in identifying particuar port as different client every boot.
    [Solution] Implementation is changed to assign same IAID for particular port every boot by saving in the NVRAM.
    [Files] UefiPxeBcDxe\PxeBcDriver.c

  5. [TAG] EIP139964
    [Category] Improvement
    [Description] Use gEfiNetworkStackGuid by adding it in inf instead of declaring it in c files.
    [Files] Guid.cif,Protocol.cif,UefiPxeBcDxe.inf,PxeBcDriver.c,SnpDxe.inf,
    Snp.c,NetworkStackSetupScreen.inf,NetworkStackSetupScreen.c,MnpDxe.inf,
    MnpDriver.h,MnpDriver.c,Sa.c,IpSecDxe.inf,ArpDxe.inf,ArpDriver.h,ArpDriver.c,AmiNetworkPkg.dec.

4.6.4_UEFI_NETWORK_STACK_II_09
  1. [TAG] EIP134349
    [Category] New Feature
    [Description] Updated to intel SVN source 14578.

  2. [TAG] EIP125512
    [Category] Bug Fix
    [Root Cause] Stop function of gPxeBcDriverBinding protocol is called when UEFI PXE boot is made as the SNP protocol is opened by attribute "BY DRIVER" in start function. When stop function is called all the child handles are destroyed which results system reset.
    [Solution] Commented out the Openprotocol and Closeprotocols of SNP in the start and stop functions of driver. Added a check in Mnp supported function that whethetr MNP protocol is available or not in the device path of the controller handle before returning EFI_SUCCESS.
    [Files] MnpDriver.c,PxeBcDriver.c.

  3. [TAG] EIP124834
    [Category] Improvement
    [Description] [ASUS-DT]Modify Networkstack String.
    [Files] NetworkStackSetupScreen.uni.

  4. [TAG] EIP122198
    [Category] Improvement
    [Description] GCC changes for AmiNetworkPkg
    [Files] Ip6Impl.c,Ip6Driver.c,Dhcp6Io.c,PxeBcDhcp6.c,Ip4Driver.c,TcpDriver.c,AmiNetworkPostManagerLib.c

Previous Labels:
4.6.4_UEFI_NETWORK_STACK_II_10
4.6.4_UEFI_NETWORK_STACK_II_09
4.6.4_UEFI_NETWORK_STACK_II_08

© American Megatrends Inc.


Release Notes - NDA Required

Validation Report of [INT]4.6.4_UEFI_NW_STACK_II_10

Platform Information Form :

Board Information - Intel Rosecity CRB
BIOS Information (Label) - 4.6.5.4_RC_0ABYV026

The following Tests have been validated

UEFI Network Stack
1) PXE Boot With IPV4 ----- PASS
2) PXE Boot With IPV6 ---- PASS
3) PXE OS Installation With IPV4---- PASS
4) PXE OS Installation With IPV6 ---- PASS
5) PXE Boot Time Wait - PASS
6) Press "Esc Key" during ipv6 Pxe boot ---- PASS
7) ipv4 enabled ipv6 disabled ---- PASS
8) ipv4 disabled ipv6 enabled ------ PASS
9) ipv4 disabled ipv6 disabled ----- PASS
10) Media Detect Time ---- PASS
11) PXE ipv4 and IPV6 boot with offboard cards ---- PASS
12) PXE ipv4 and IPV6 boot in Multiple ports ------ PASS
13) Checked if ipv6 address is changing for a particular port on continuous reboots ----- PASS
14) Booted to legacy O.S. with Network Stack enabled. Sent system to hibernate mode. Rebooted again. ---- PASS


Release Notes - NDA Required

Validation Report of INTa_4.6.5.4_UefiNwStack_II_11

Platform Information Form :

Board Information - Intel Rosecity CRB
BIOS Information (Label) - 4.6.5.4_RoseCity_0ABYV029

The following Tests have been validated

UEFI Network Stack
1) Enable Networkstack and save changes and reboot. PXE Boot With IPV4 ----- PASS
2) Enable Networkstack and save changes and reboot.PXE Boot With IPV6 ---- PASS
3) Enable Networkstack and save changes and reboot.PXE OS Installation With IPV4 ---- PASS
4) Enable Networkstack and save changes and reboot.PXE OS Installation With IPV6 ---- PASS
5) Enable Networkstack and save changes and reboot. Now set a value for PXE Boot Time Wait --- PASS
6) Enable Networkstack and save changes and reboot. Press "Esc Key" during ipv6 Pxe boot ---- PASS
7) Enable Networkstack and save changes and reboot. On next boot, change ipv4 enabled ipv6 disabled ---- PASS
8) Enable Networkstack and save changes and reboot. On next boot, change ipv4 to disabled ipv6 to enabled ---- PASS
9) Enable Networkstack and save changes and reboot. On next boot, change ipv4 to disabled ipv6 to disabled ----- PASS
10) Enable Networkstack and save changes and reboot. Now PXE boot through ipv4 and IPV6 with offboard cards ---- PASS
11) Enable Networkstack and save changes and reboot. PXE ipv4 and IPV6 boot in Multiple ports ---- PASS
12) Check if ipv6 address is changing for a particular port on continuous reboots ------ PASS
13) set some value to Media Detect Count ----- PASS
14) Booted to legacy O.S. with Network Stack enabled. Sent system to hibernate mode. Rebooted again. ---- PASS


Release Notes - NDA Required

Component Information:
Component Title: UEFINetworkStack II
Component Reference Name: UEFINetworkStack II
Component Type:eModule
Release Date: 2012-03-08
Source Control Label: 4.6.4_UEFI_NETWORK_STACK_II_08
Source Control Location: SS: ALASKA;$/Alaska/Bin/Modules/Network/UEFINetworkStack II;
Component Description:

The Network stack Module is set of drivers that produce network protocols. All the modules are available only as binaries.

The UEFI Network Stack implements the TCP/IP network interfaces such as SNP, MNP, ARP, IP, UDP, DHCP, MTFTP, and TCP.

Modules are available for both IPV4 and IPV6. Module supports UEFI specifications 2.3 specification.

Modules are available as Binary and source is not provided with these modules.

Modules does not require any porting.

UEFI PXE support through option rom using BiosSnp Thunk driver is no longer supported with this network stack.

************************************************************************************************

This module requires UEFI UNDI driver specific to the network chip used in the platform.

ISCSI module needs to be added along with this module for UEFI ISCSI boot support.

*************************************************************************************************

Module is divided into three sub catogories

Common Drivers

These drivers are shared between IPV4 and IPV6 modules. Thesse modules should be present for IPV4 and IPV6 modules to work.

SNP - Produces EFI_SIMPLE_NETWORK_PROTOCOL on top of UNDI protocol. Used by MNP module.

MNP - Produces EFI_MANAGED_NETWORK_PROTOCOL. Used by IP Module.

ARP - Produces EFI_ARP_PROTOCOL. Used by UEfiPxeBc Module

DPC - Produces EFI_DPC_PROTOCOL. Used by IpSec Module.

TCP - Produces both EFI_TCP4_PROTOCOL and EFI_TCP6_PROTOCOL . Used by modules that requires TCP support such as ISCSI.

UEFIPxeBc - Used for UEFI PXE boot.

IPSec - Produce EFI_IPSEC_PROTOCOL.

NetworkStackSetupScreen - Setup page to Enable\Disable network stack.

IPV4 Modules

These drivers are specific to IPV4 support. These drivers can be enabled/disabled as a group, based on requirement.

IP4 - Produces EFI_IP4_PROTOCOL. Used by UDP and TCP Modules.

IP4Config - Produces EFI_IP4_CONFIG_PROTOCOL. Used by IP4 module.

UDP4 - Produces EFI_UDP4_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules.

DHCP4 - Produces EFI_DHCP4_PROTOCOL. Used by UEFIPxeBC module.

MTFTP4 - Produces EFI_MTFTP4_PROTOCOL. Used by UEFIPxeBC module.

IPV6 Modules

These drivers are specific to IPV6 support. These drivers can be enabled/disabled as a group, based on requirement.

IP6 - Produces EFI_IP6_PROTOCOL EFI_IP6_CONFIG_PROTOCOL. Used by UDP and TCP Modules.

UDP6 - Produces EFI_UDP6_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules.

DHCP6 - Produces EFI_DHCP6_PROTOCOL. Used by UEFIPxeBC module.

MTFTP6 - Produces EFI_MTFTP6_PROTOCOL. Used by UEFIPxeBC module.

General Bug Fixes:

Updated network stack to Intel SVN version 14144.

Clear Graphics screen before priting PXE messages.

EIP addressed in this label:

113577 - Handle ESC key to abort PXE boot.

110821 - Even when NetworkStack setup option is disabled, Network drivers are getting launched for NIC cards which have inbuilt SNP/MNP network device driver support.

100095 - Pxe Ipv6 is failing on first boot.

Files changed for Bug fixes:

ArpDxeDriver, SnpDxeDriver, MnpDxeDriver, UefiPxeBcDxeDriver, IpSecDxeDriver, TcpDxeDriver, Dhcp4DxeDriver, Ip4ConfigDxeDriver, Ip4DxeDriver, Mtftp4DxeDriver, Udp4DxeDriver, Dhcp6DxeDriver, Ip6DxeDriver, Mtftp6DxeDriver, Udp6DxeDriver, NetworkStackSetupScreen.h, NetworkStackSetupScreen.sd and NetworkStackSetupScreen.uni

Known issues and limitations in this label:
  1. Ipv6 Iscsi support is not validated by installing OS due to lack of OS support.

Remaining Issues:

  1. IPv6 ISCSI validation by installing OS.

Unit Testing:

  1. Validated IPV4 / IPV6 pxe boot by installing windows server 2012 over PXE.
Validation Testing:
  1. Validated IPV4 / IPV6 pxe boot by installing windows server 2012 over PXE.

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: UEFINetworkStack II
Component Reference Name: UEFINetworkStack II
Component Type: eModule
Release Date: 2012-09-12
Source Control Label: 4.6.4_UEFI_NETWORK_STACK_II_09
Source Control Location: SS: ALASKA;$/Alaska/Bin/Modules/Network/UEFINetworkStack II
Component Description:
The Network stack Module is set of drivers that produce network protocols.
The UEFI Network Stack implements the TCP/IP network interfaces such as SNP, MNP, ARP, IP, UDP, DHCP, MTFTP, and TCP.
Modules are available for both IPV4 and IPV6. Module supports UEFI specifications 2.3 specification.
Modules do not require any porting.
UEFI PXE support through option rom using BiosSnp Thunk driver is not supported with this network stack.
************************************************************************************************
This module requires UEFI UNDI driver specific to the network chip used in the platform.
ISCSI module needs to be added along with this module for UEFI ISCSI boot support.
************************************************************************************************

NetworkStack Module is divided into three sub categories.
Common Drivers
These drivers are shared between IPV4 and IPV6 modules. Thesse modules should be present for IPV4 and IPV6 modules to work.
SNP - Produces EFI_SIMPLE_NETWORK_PROTOCOL on top of UNDI protocol. Used by MNP module.
MNP - Produces EFI_MANAGED_NETWORK_PROTOCOL. Used by IP Module.
ARP - Produces EFI_ARP_PROTOCOL. Used by UEfiPxeBc Module
DPC - Produces EFI_DPC_PROTOCOL. Used by IpSec Module.
TCP - Produces both EFI_TCP4_PROTOCOL and EFI_TCP6_PROTOCOL . Used by modules that requires TCP support such as ISCSI.
UEFIPxeBc - Used for UEFI PXE boot.
IPSec - Produces EFI_IPSEC_PROTOCOL.
NetworkStackSetupScreen - Setup page to Enable/Disable network stack.
IPV4 Modules
These drivers are specific to IPV4 support. These drivers can be enabled/disabled as a group, based on requirement.
IP4 - Produces EFI_IP4_PROTOCOL. Used by UDP and TCP Modules.
IP4Config - Produces EFI_IP4_CONFIG_PROTOCOL. Used by IP4 module
UDP4 - Produces EFI_UDP4_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules.
DHCP4 - Produces EFI_DHCP4_PROTOCOL. Used by UEFIPxeBC module.
MTFTP4 - Produces EFI_MTFTP4_PROTOCOL. Used by UEFIPxeBC module.
IPV6 Modules
These drivers are specific to IPV6 support. These drivers can be enabled/disabled as a group, based on requirement.
IP6 - Produces EFI_IP6_PROTOCOL EFI_IP6_CONFIG_PROTOCOL. Used by UDP and TCP Modules.
UDP6 - Produces EFI_UDP6_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules
DHCP6 - Produces EFI_DHCP6_PROTOCOL. Used by UEFIPxeBC module.
MTFTP6 - Produces EFI_MTFTP6_PROTOCOL. Used by UEFIPxeBC module.
AMI Build Tools:
Tools Label: TOOLS_40, Dated: 2012-06-21
Visual eBios: RSS.5.73.0239, Dated: 2013-06-21
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
1. Updated to Intel SVN version 14578.
EIP Addressed in this Label:
1. EIP #134349: Updated to intel SVN source 14578.
2. EIP #125512: Bug 16042431 - X4-4: UEFI pxe install causes system reboot.
3. EIP #124834: [ASUS-DT]Modify Networkstack String.
4. EIP #122198: GCC changes for AmiNetworkPkg.
Files Changed for EIP fixes in this Label:
2. EIP #125512: MnpDriver.c,PxeBcDriver.c.
3. EIP #124834: NetworkStackSetupScreen.uni.
4. EIP #122198: Ip6Impl.c,Ip6Driver.c,Dhcp6Io.c,PxeBcDhcp6.c,Ip4Driver.c,TcpDriver.c,AmiNetworkPostManagerLib.c.
Known issues and limitations in this label:
NONE.
Remaining Issues:
N0NE
Unit Testing:
Verified that Network Stack setup strings are proper.
Validation Testing:

Tested on Rosecity: SandyBridge- EP A1 + Patsburg A1 Platform
Release Mode
Verified that PXE boot over IPv4 is successfull.
Verified that PXE boot over IPv6 is successfull.
Verified that OS installation over PXE through IPv6 is successfull.
Verified that OS installation over PXE through IPv4 is successfull.
Verified PxeBootWaitTime functionality.
Verified that PXE boot over IPv4 is successfull when PxeIPv4 is enabled and PxeIpv6 is disabled.
Verified that PXE boot over IPv6 is successfull when PxeIPv6 is enabled and PxeIpv4 is disabled.
Verified that No PXE boot options are displayed in boot menu when both PxeIpv4 and PxeIpv6 are disabled
Debug Mode
Verified that PXE boot over IPv4 is successfull.
Verified that PXE boot over IPv6 is successfull.
Verified PxeBootWaitTime functionality.
Verified that PXE boot over IPv4 is successfull when PxeIPv4 is enabled and PxeIpv6 is disabled.
Verified that PXE boot over IPv6 is successfull when PxeIPv6 is enabled and PxeIpv4 is disabled.
Verified that No PXE boot options are displayed in boot menu when both PxeIpv4 and PxeIpv6 are disabled
Release History:
4.6.4_UEFI_NETWORK_STACK_II_09
  1. [TAG] EIP134349
    [Category] New Feature
    [Description] Updated to intel SVN source 14578.

  2. [TAG] EIP125512
    [Category] Bug Fix
    [Root Cause] Stop function of gPxeBcDriverBinding protocol is called when UEFI PXE boot is made as the SNP protocol is opened by attribute "BY DRIVER" in start function. When stop function is called all the child handles are destroyed which results system reset.
    [Solution] Commented out the Openprotocol and Closeprotocols of SNP in the start and stop functions of driver. Added a check in Mnp supported function that whethetr MNP protocol is available or not in the device path of the controller handle before returning EFI_SUCCESS.
    [Files] MnpDriver.c,PxeBcDriver.c.

  3. [TAG] EIP124834
    [Category] Improvement
    [Description] [ASUS-DT]Modify Networkstack String.
    [Files] NetworkStackSetupScreen.uni.

  4. [TAG] EIP122198
    [Category] Improvement
    [Description] GCC changes for AmiNetworkPkg
    [Files] Ip6Impl.c,Ip6Driver.c,Dhcp6Io.c,PxeBcDhcp6.c,Ip4Driver.c,TcpDriver.c,AmiNetworkPostManagerLib.c

Previous Labels:
4.6.4_UEFI_NETWORK_STACK_II_08

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: UEFINetworkStack II
Component Reference Name: UEFINetworkStack II
Component Type: eModule
Release Date: 2014-01-10
Source Control Label: 4.6.4_UEFI_NETWORK_STACK_II_10
Source Control Location: SS: ALASKA;$/Alaska/Bin/Modules/Network/UEFINetworkStack II
Component Description:
The Network stack Module is set of drivers that produce network protocols.
The UEFI Network Stack implements the TCP/IP network interfaces such as SNP, MNP, ARP, IP, UDP, DHCP, MTFTP, and TCP.
Modules are available for both IPV4 and IPV6. Module supports UEFI specifications 2.3 specification.
Modules do not require any porting.
UEFI PXE support through option rom using BiosSnp Thunk driver is not supported with this network stack.
************************************************************************************************
This module requires UEFI UNDI driver specific to the network chip used in the platform.
ISCSI module needs to be added along with this module for UEFI ISCSI boot support.
************************************************************************************************

NetworkStack Module is divided into three sub categories.
Common Drivers
These drivers are shared between IPV4 and IPV6 modules. Thesse modules should be present for IPV4 and IPV6 modules to work.
SNP - Produces EFI_SIMPLE_NETWORK_PROTOCOL on top of UNDI protocol. Used by MNP module.
MNP - Produces EFI_MANAGED_NETWORK_PROTOCOL. Used by IP Module.
ARP - Produces EFI_ARP_PROTOCOL. Used by UEfiPxeBc Module
DPC - Produces EFI_DPC_PROTOCOL. Used by IpSec Module.
TCP - Produces both EFI_TCP4_PROTOCOL and EFI_TCP6_PROTOCOL . Used by modules that requires TCP support such as ISCSI.
UEFIPxeBc - Used for UEFI PXE boot.
IPSec - Produces EFI_IPSEC_PROTOCOL.
NetworkStackSetupScreen - Setup page to Enable/Disable network stack.
IPV4 Modules
These drivers are specific to IPV4 support. These drivers can be enabled/disabled as a group, based on requirement.
IP4 - Produces EFI_IP4_PROTOCOL. Used by UDP and TCP Modules.
IP4Config - Produces EFI_IP4_CONFIG_PROTOCOL. Used by IP4 module
UDP4 - Produces EFI_UDP4_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules.
DHCP4 - Produces EFI_DHCP4_PROTOCOL. Used by UEFIPxeBC module.
MTFTP4 - Produces EFI_MTFTP4_PROTOCOL. Used by UEFIPxeBC module.
IPV6 Modules
These drivers are specific to IPV6 support. These drivers can be enabled/disabled as a group, based on requirement.
IP6 - Produces EFI_IP6_PROTOCOL EFI_IP6_CONFIG_PROTOCOL. Used by UDP and TCP Modules.
UDP6 - Produces EFI_UDP6_PROTOCOL. Used by UEFIPxeBC and MTFTP6 modules
DHCP6 - Produces EFI_DHCP6_PROTOCOL. Used by UEFIPxeBC module.
MTFTP6 - Produces EFI_MTFTP6_PROTOCOL. Used by UEFIPxeBC module.
AMI Build Tools:
Tools Label: TOOLS_40, Dated: 2012-06-21
Visual eBios: RSS.5.73.0239, Dated: 2013-06-21
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
1. Updated to Intel SVN version 14928.
EIP Addressed in this Label:
1. EIP #148764 : Updated to intel SVN source 14928.
2. EIP #148764 : Add Media Detect Time setup option.
3. EIP #132315 : Register UNDI shutdown for the Legacy boot event.
4. EIP #137694 : Different Ipv6 address are assigned every boot for particular port results in DHCP reaching out of range.
5. EIP #139964 : Use gEfiNetworkStackGuid by adding it in inf instead of declaring it in c files.
Files Changed for EIP fixes in this Label:
1. EIP #148764 : Ip4Config.c,Ip4Impl.c.
2. EIP #148764 : NetworkStackSetupScreen.uni, NetworkStackSetupScreen.sd, NetworkStackSetup.h, PxeBcDriver.c, PxeBcImpl.c, Ip4Impl.c.
3. EIP #132315 : Snp.c.
4. EIP #137694 : PxeBcDriver.c
5. EIP #139964 : Guid.cif,NetworkStackSetup.h,Protocol.cif,UefiPxeBcDxe.inf,PxeBcDriver.c,SnpDxe.inf,Snp.c,NetworkStackSetupScreen.inf,
NetworkStackSetupScreen.c,MnpDxe.inf,MnpDriver.h,MnpDriver.c,Sa.c,IpSecDxe.inf,ArpDxe.inf,ArpDriver.h,ArpDriver.c,AmiNetworkPkg.dec
Known issues and limitations in this label:
MediaDetectTime(Time to wait for media to be detected during PXE boot)

On giving a MediaDetectTime of one sec, media will be detected even after one sec(upto 10 secs(approx)) as this includes time taken to call various libraries as well.
Remaining Issues:
N0NE
Unit Testing:
1. Build with VS2008 and DDK3790.
2. Checked if ipv6 address is changing for a particular port on continuous reboots.
3. Booted to legacy O.S. with Network Stack enabled. Sent system to hibernate mode. Rebooted again.
4. a. Set media detect time to one sec in Setup. Did pxe boot in an unconnected port. Added network connection later within that time span in that port.
b. Changed MediaDetectTime to different values and noted time upto which media can be detected.
Validation Testing:
Validation Report
Release History:
4.6.4_UEFI_NETWORK_STACK_II_10
  1. [TAG] EIP14928
    [Category] New Feature
    [Description] Updated to intel SVN source 14928.

  2. [Category] Improvement
    [Description] Add Media Detect Time setup option.
    [Files] PxeBcImpl.c,PxeBcDriver.c,NetworkStackSetupScreen.uni,NetworkStackSetupScreen.sd,NetworkStackSetup.h.

  3. [TAG] EIP132315
    [Category] Improvement
    [Description] Register UNDI shutdown for the Legacy boot event.
    [Files] SnpDxe\Snp.c

  4. [TAG] EIP137694
    [Category] Bug Fix
    [Severity:] Important
    [Symptom:] Different Ipv6 address are assigned every boot for particular port results in DHCP reaching out of range.
    [Root Cause] Different IAID is assigned every boot for particular port which results in identifying particuar port as different client every boot.
    [Solution] Implementation is changed to assign same IAID for particular port every boot by saving in the NVRAM.
    [Files] UefiPxeBcDxe\PxeBcDriver.c

  5. [TAG] EIP139964
    [Category] Improvement
    [Description] Use gEfiNetworkStackGuid by adding it in inf instead of declaring it in c files.
    [Files] Guid.cif,Protocol.cif,UefiPxeBcDxe.inf,PxeBcDriver.c,SnpDxe.inf,
    Snp.c,NetworkStackSetupScreen.inf,NetworkStackSetupScreen.c,MnpDxe.inf,
    MnpDriver.h,MnpDriver.c,Sa.c,IpSecDxe.inf,ArpDxe.inf,ArpDriver.h,ArpDriver.c,AmiNetworkPkg.dec.

4.6.4_UEFI_NETWORK_STACK_II_09
  1. [TAG] EIP134349
    [Category] New Feature
    [Description] Updated to intel SVN source 14578.

  2. [TAG] EIP125512
    [Category] Bug Fix
    [Root Cause] Stop function of gPxeBcDriverBinding protocol is called when UEFI PXE boot is made as the SNP protocol is opened by attribute "BY DRIVER" in start function. When stop function is called all the child handles are destroyed which results system reset.
    [Solution] Commented out the Openprotocol and Closeprotocols of SNP in the start and stop functions of driver. Added a check in Mnp supported function that whethetr MNP protocol is available or not in the device path of the controller handle before returning EFI_SUCCESS.
    [Files] MnpDriver.c,PxeBcDriver.c.

  3. [TAG] EIP124834
    [Category] Improvement
    [Description] [ASUS-DT]Modify Networkstack String.
    [Files] NetworkStackSetupScreen.uni.

  4. [TAG] EIP122198
    [Category] Improvement
    [Description] GCC changes for AmiNetworkPkg
    [Files] Ip6Impl.c,Ip6Driver.c,Dhcp6Io.c,PxeBcDhcp6.c,Ip4Driver.c,TcpDriver.c,AmiNetworkPostManagerLib.c

Previous Labels:
4.6.4_UEFI_NETWORK_STACK_II_09
4.6.4_UEFI_NETWORK_STACK_II_08

© American Megatrends Inc.


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the source files.
For a list in alphabetical order, see In Alphabetical Order.

  • Arp.mak
  • Dhcp4.mak
  • Dhcp6.mak
  • Dpc.mak
  • Ip4.mak
  • Ip4Config.mak
  • Ip6.mak
  • IpSec.mak
  • IScsi.mak
  • Mnp.mak
  • Mtftp4.mak
  • Mtftp6.mak
  • NetworkStackSetupScreen.c
  • NetworkStackSetupScreen.h
  • NetworkStackSetupScreen.mak
  • NetworkStackSetupScreen.sd
  • Snp.mak
  • Tcp.mak
  • Udp4.mak
  • Udp6.mak
  • UefiPxeBc.mak
Built on 11:21:48 06/12/14


Arp.mak

Description:


Dhcp4.mak

Description:


Dhcp6.mak

Description:


Dpc.mak

Description:


Ip4.mak

Description:


Ip4Config.mak

Description:


Ip6.mak

Description:


IpSec.mak

Description:


IScsi.mak

Description:


Mnp.mak

Description:


Mtftp4.mak

Description:


Mtftp6.mak

Description:


NetworkStackSetupScreen.c

The following functions are used in the file: NetworkStackSetupScreen.c.

Function | Description
InitNetworkStackVar | Entry point of the network stack setup driver. This entry point is necessary to initlialize the NetworkStack setup driver.


InitNetworkStackVar in the NetworkStackSetupScreen.c

Function : InitNetworkStackVar

File: NetworkStackSetupScreen.c
Description:
Entry point of the  network stack setup driver. This entry point is
necessary to initlialize the NetworkStack setup driver.
Input:
ImageHandle   EFI_HANDLE: A handle for the image that is initializing this driver
SystemTable   EFI_SYSTEM_TABLE: A pointer to the EFI system table
Output:
EFI_SUCCESS:              Driver initialized successfully


NetworkStackSetupScreen.h

Description:
Network stack setup data structure definintion


NetworkStackSetupScreen.mak

Description:
Make file for the NetworkStackSetupScreen component


NetworkStackSetupScreen.sd

Description:
Setup definitions for NetworkStack setup screen


Snp.mak

Description:


Tcp.mak

Description:


Udp4.mak

Description:


Udp6.mak

Description:


UefiPxeBc.mak

Description:


Functions in Alphabetical Order

In Alphabetical Order

The following topics provide a list in alphabetical order.
For a list by file name, see By File Name.

  • I


Functions in Alphabetical Order

I

Function | Description
InitNetworkStackVar | Entry point of the network stack setup driver. This entry point is necessary to initlialize the NetworkStack setup driver.


General Information


[TAG]	EIP128467
[Category]	Improvement
[Description]	Customer requested feature is provided for stopping FRB2 timer and starting OS wdt timer.
[Files]	DxeFrb.c

DxeFrb.h

DxeFrb.inf

[TAG]	EIP144997
[Category]	Improvement
[Description]	Timeout pcd 'BulkDataTransferTimeout' is added to increase timeout and verified.
[Files]	PeiIpmiUsb.inf

UsbBmc.c

DxeIpmiUsb.inf

UsbBmc.c

AmiIpmiPkg.dec