X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=NetworkPkg%2FUefiPxeBcDxe%2FPxeBcImpl.h;h=f0db4a0c1adcfb8e6b903bd794b4694114e87967;hp=c4a0add1c92a3cd03622c399ddf5cb7d56fb0f9b;hb=ecf98fbcf858b9cb09ff0ac1c2a09c0111b4026b;hpb=15f3fc850c006c021472af09d1c9b641b7d47d40 diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h index c4a0add1c9..f0db4a0c1a 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h @@ -2,15 +2,9 @@ This EFI_PXE_BASE_CODE_PROTOCOL and EFI_LOAD_FILE_PROTOCOL. interfaces declaration. - Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php. - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -21,15 +15,18 @@ #include #include +#include #include #include #include +#include #include #include #include #include #include #include +#include #include #include #include @@ -37,12 +34,14 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -64,24 +63,21 @@ typedef struct _PXEBC_VIRTUAL_NIC PXEBC_VIRTUAL_NIC; #define PXEBC_DEFAULT_HOPLIMIT 64 #define PXEBC_DEFAULT_LIFETIME 50000 // 50 ms, unit is microsecond #define PXEBC_UDP_TIMEOUT 30000000 // 3 seconds, unit is 100nanosecond +#define PXEBC_DAD_ADDITIONAL_DELAY 30000000 // 3 seconds #define PXEBC_MTFTP_TIMEOUT 4 #define PXEBC_MTFTP_RETRIES 6 #define PXEBC_DHCP_RETRIES 4 // refers to mPxeDhcpTimeout, also by PXE2.1 spec. #define PXEBC_MENU_MAX_NUM 24 #define PXEBC_OFFER_MAX_NUM 16 +#define PXEBC_CHECK_MEDIA_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20) + #define PXEBC_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'P') #define PXEBC_VIRTUAL_NIC_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'V') #define PXEBC_PRIVATE_DATA_FROM_PXEBC(a) CR (a, PXEBC_PRIVATE_DATA, PxeBc, PXEBC_PRIVATE_DATA_SIGNATURE) #define PXEBC_PRIVATE_DATA_FROM_ID(a) CR (a, PXEBC_PRIVATE_DATA, Id, PXEBC_PRIVATE_DATA_SIGNATURE) #define PXEBC_VIRTUAL_NIC_FROM_LOADFILE(a) CR (a, PXEBC_VIRTUAL_NIC, LoadFile, PXEBC_VIRTUAL_NIC_SIGNATURE) -#define PXEBC_PRIVATE_GUID \ - { \ - 0xa4dfac32, 0xfbb4, 0x4907,{0xb3, 0x13, 0x4, 0xe, 0xe2, 0x42, 0x33, 0x20 } \ - } - - typedef union { PXEBC_DHCP4_PACKET_CACHE Dhcp4; PXEBC_DHCP6_PACKET_CACHE Dhcp6; @@ -105,7 +101,7 @@ struct _PXEBC_PRIVATE_DATA { EFI_HANDLE Image; PXEBC_PRIVATE_PROTOCOL Id; - EFI_SIMPLE_NETWORK_PROTOCOL *Snp; + EFI_SIMPLE_NETWORK_PROTOCOL *Snp; PXEBC_VIRTUAL_NIC *Ip4Nic; PXEBC_VIRTUAL_NIC *Ip6Nic; @@ -119,6 +115,7 @@ struct _PXEBC_PRIVATE_DATA { EFI_ARP_PROTOCOL *Arp; EFI_IP4_PROTOCOL *Ip4; + EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; EFI_DHCP4_PROTOCOL *Dhcp4; EFI_MTFTP4_PROTOCOL *Mtftp4; EFI_UDP4_PROTOCOL *Udp4Read; @@ -136,6 +133,7 @@ struct _PXEBC_PRIVATE_DATA { EFI_MTFTP6_PROTOCOL *Mtftp6; EFI_UDP6_PROTOCOL *Udp6Read; EFI_UDP6_PROTOCOL *Udp6Write; + EFI_DNS6_PROTOCOL *Dns6; EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii; EFI_PXE_BASE_CODE_PROTOCOL PxeBc; @@ -146,6 +144,8 @@ struct _PXEBC_PRIVATE_DATA { EFI_PXE_BASE_CODE_MODE Mode; EFI_PXE_BASE_CODE_FUNCTION Function; UINT32 Ip6Policy; + UINT32 SolicitTimes; + UINT64 ElapsedTime; EFI_UDP4_CONFIG_DATA Udp4CfgData; EFI_UDP6_CONFIG_DATA Udp6CfgData; @@ -162,11 +162,14 @@ struct _PXEBC_PRIVATE_DATA { BOOLEAN IsProxyRecved; BOOLEAN IsDoDiscover; + EFI_IP_ADDRESS TmpStationIp; EFI_IP_ADDRESS StationIp; EFI_IP_ADDRESS SubnetMask; EFI_IP_ADDRESS GatewayIp; EFI_IP_ADDRESS ServerIp; + EFI_IPv6_ADDRESS *DnsServer; UINT16 CurSrcPort; + UINT32 IaId; UINT32 Ip4MaxPacketSize; UINT32 Ip6MaxPacketSize;