]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h
NetworkPkg/UefiPxeBcDxe: Allow the NULL configuration for NewStationIP/NewSubnetMask
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcImpl.h
index 0b0ff1c06a416c0366c74e75d3be276add7c712f..2cdc8bf58921b264d1da60af84ab86e4edeec142 100644 (file)
@@ -2,7 +2,7 @@
   This EFI_PXE_BASE_CODE_PROTOCOL and EFI_LOAD_FILE_PROTOCOL.\r
   interfaces declaration.\r
 \r
-  Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
 \r
 #include <Guid/SmBios.h>\r
 #include <IndustryStandard/SmBios.h>\r
+#include <IndustryStandard/Dhcp.h>\r
 #include <Protocol/NetworkInterfaceIdentifier.h>\r
 #include <Protocol/Arp.h>\r
 #include <Protocol/Ip4.h>\r
+#include <Protocol/Ip4Config2.h>\r
 #include <Protocol/Ip6.h>\r
 #include <Protocol/Ip6Config.h>\r
 #include <Protocol/Udp4.h>\r
 #include <Protocol/Udp6.h>\r
 #include <Protocol/Dhcp4.h>\r
 #include <Protocol/Dhcp6.h>\r
+#include <Protocol/Dns6.h>\r
 #include <Protocol/Mtftp4.h>\r
 #include <Protocol/Mtftp6.h>\r
 #include <Protocol/PxeBaseCode.h>\r
@@ -37,6 +40,7 @@
 #include <Protocol/PxeBaseCodeCallBack.h>\r
 #include <Protocol/ServiceBinding.h>\r
 #include <Protocol/DriverBinding.h>\r
+#include <Protocol/AdapterInformation.h>\r
 \r
 #include <Library/DebugLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
@@ -65,6 +69,7 @@ typedef struct _PXEBC_VIRTUAL_NIC   PXEBC_VIRTUAL_NIC;
 #define PXEBC_DEFAULT_HOPLIMIT        64\r
 #define PXEBC_DEFAULT_LIFETIME        50000    // 50 ms, unit is microsecond\r
 #define PXEBC_UDP_TIMEOUT             30000000 // 3 seconds, unit is 100nanosecond\r
+#define PXEBC_DAD_ADDITIONAL_DELAY    30000000 // 3 seconds\r
 #define PXEBC_MTFTP_TIMEOUT           4\r
 #define PXEBC_MTFTP_RETRIES           6\r
 #define PXEBC_DHCP_RETRIES            4        // refers to mPxeDhcpTimeout, also by PXE2.1 spec.\r
@@ -114,6 +119,7 @@ struct _PXEBC_PRIVATE_DATA {
 \r
   EFI_ARP_PROTOCOL                          *Arp;\r
   EFI_IP4_PROTOCOL                          *Ip4;\r
+  EFI_IP4_CONFIG2_PROTOCOL                  *Ip4Config2;\r
   EFI_DHCP4_PROTOCOL                        *Dhcp4;\r
   EFI_MTFTP4_PROTOCOL                       *Mtftp4;\r
   EFI_UDP4_PROTOCOL                         *Udp4Read;\r
@@ -131,6 +137,7 @@ struct _PXEBC_PRIVATE_DATA {
   EFI_MTFTP6_PROTOCOL                       *Mtftp6;\r
   EFI_UDP6_PROTOCOL                         *Udp6Read;\r
   EFI_UDP6_PROTOCOL                         *Udp6Write;\r
+  EFI_DNS6_PROTOCOL                         *Dns6;\r
 \r
   EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii;\r
   EFI_PXE_BASE_CODE_PROTOCOL                PxeBc;\r
@@ -159,11 +166,14 @@ struct _PXEBC_PRIVATE_DATA {
   BOOLEAN                                   IsProxyRecved;\r
   BOOLEAN                                   IsDoDiscover;\r
 \r
+  EFI_IP_ADDRESS                            TmpStationIp;\r
   EFI_IP_ADDRESS                            StationIp;\r
   EFI_IP_ADDRESS                            SubnetMask;\r
   EFI_IP_ADDRESS                            GatewayIp;\r
   EFI_IP_ADDRESS                            ServerIp;\r
+  EFI_IPv6_ADDRESS                          *DnsServer;\r
   UINT16                                    CurSrcPort;\r
+  UINT32                                    IaId;\r
 \r
   UINT32                                    Ip4MaxPacketSize;\r
   UINT32                                    Ip6MaxPacketSize;\r