From f6b7393ceb34c9b3a27434268bf2ce517047641f Mon Sep 17 00:00:00 2001 From: tye Date: Wed, 4 Nov 2009 08:18:34 +0000 Subject: [Change summary]: 1. Update NetLib to a combined NetLib support dual network stack: 1) Add Network Debug facility for IPv4 stack. 2) Extend the library APIs to support IPv6 stack: a. NetIp6IsUnspecifiedAddr b. NetIp6IsLinkLocalAddr c. NetIp6IsNetEqual d. NetLibCreateIPv6DPathNode. e. NetIp6PseudoHeadChecksum f. NetIp6IsValidUnicast 3) Update the structure definitions: a. Update NET_BUF to add EFI_IP6_HEADER and EFI_UDP_HEADER b. Add NET_IP6_PSEUDO_HDR 4) Update Ip4IsUnicast to NetIp4IsUnicast 2. Update the impacted modules to adopt the combined NetLib. 3. Clean up coding style errors in all network drivers and libraries. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9391 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h | 211 ++++++++++----------- 1 file changed, 103 insertions(+), 108 deletions(-) (limited to 'MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h') diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h index 103ae2f57d..829caa8bbf 100644 --- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h +++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h @@ -15,115 +15,109 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #ifndef __EFI_PXEBC_DHCP_H__ #define __EFI_PXEBC_DHCP_H__ -typedef enum { - PXEBC_DHCP4_MAX_OPTION_NUM = 16, - PXEBC_DHCP4_MAX_OPTION_SIZE = 312, - PXEBC_DHCP4_MAX_PACKET_SIZE = 1472, - - PXEBC_DHCP4_S_PORT = 67, - PXEBC_DHCP4_C_PORT = 68, - PXEBC_BS_DOWNLOAD_PORT = 69, - PXEBC_BS_DISCOVER_PORT = 4011, - - PXEBC_DHCP4_OPCODE_REQUEST = 1, - PXEBC_DHCP4_OPCODE_REPLY = 2, - PXEBC_DHCP4_MSG_TYPE_REQUEST = 3, - PXEBC_DHCP4_MAGIC = 0x63538263, // network byte order - // - // Dhcp Options - // - PXEBC_DHCP4_TAG_PAD = 0, // Pad Option - PXEBC_DHCP4_TAG_EOP = 255, // End Option - PXEBC_DHCP4_TAG_NETMASK = 1, // Subnet Mask - PXEBC_DHCP4_TAG_TIME_OFFSET = 2, // Time Offset from UTC - PXEBC_DHCP4_TAG_ROUTER = 3, // Router option, - PXEBC_DHCP4_TAG_TIME_SERVER = 4, // Time Server - PXEBC_DHCP4_TAG_NAME_SERVER = 5, // Name Server - PXEBC_DHCP4_TAG_DNS_SERVER = 6, // Domain Name Server - PXEBC_DHCP4_TAG_HOSTNAME = 12, // Host Name - PXEBC_DHCP4_TAG_BOOTFILE_LEN = 13, // Boot File Size - PXEBC_DHCP4_TAG_DUMP = 14, // Merit Dump File - PXEBC_DHCP4_TAG_DOMAINNAME = 15, // Domain Name - PXEBC_DHCP4_TAG_ROOTPATH = 17, // Root path - PXEBC_DHCP4_TAG_EXTEND_PATH = 18, // Extensions Path - PXEBC_DHCP4_TAG_EMTU = 22, // Maximum Datagram Reassembly Size - PXEBC_DHCP4_TAG_TTL = 23, // Default IP Time-to-live - PXEBC_DHCP4_TAG_BROADCAST = 28, // Broadcast Address - PXEBC_DHCP4_TAG_NIS_DOMAIN = 40, // Network Information Service Domain - PXEBC_DHCP4_TAG_NIS_SERVER = 41, // Network Information Servers - PXEBC_DHCP4_TAG_NTP_SERVER = 42, // Network Time Protocol Servers - PXEBC_DHCP4_TAG_VENDOR = 43, // Vendor Specific Information - PXEBC_DHCP4_TAG_REQUEST_IP = 50, // Requested IP Address - PXEBC_DHCP4_TAG_LEASE = 51, // IP Address Lease Time - PXEBC_DHCP4_TAG_OVERLOAD = 52, // Option Overload - PXEBC_DHCP4_TAG_MSG_TYPE = 53, // DHCP Message Type - PXEBC_DHCP4_TAG_SERVER_ID = 54, // Server Identifier - PXEBC_DHCP4_TAG_PARA_LIST = 55, // Parameter Request List - PXEBC_DHCP4_TAG_MAXMSG = 57, // Maximum DHCP Message Size - PXEBC_DHCP4_TAG_T1 = 58, // Renewal (T1) Time Value - PXEBC_DHCP4_TAG_T2 = 59, // Rebinding (T2) Time Value - PXEBC_DHCP4_TAG_CLASS_ID = 60, // Vendor class identifier - PXEBC_DHCP4_TAG_CLIENT_ID = 61, // Client-identifier - PXEBC_DHCP4_TAG_TFTP = 66, // TFTP server name - PXEBC_DHCP4_TAG_BOOTFILE = 67, // Bootfile name - PXEBC_PXE_DHCP4_TAG_ARCH = 93, - PXEBC_PXE_DHCP4_TAG_UNDI = 94, - PXEBC_PXE_DHCP4_TAG_UUID = 97, - // - // Sub-Options in Dhcp Vendor Option - // - PXEBC_VENDOR_TAG_MTFTP_IP = 1, - PXEBC_VENDOR_TAG_MTFTP_CPORT = 2, - PXEBC_VENDOR_TAG_MTFTP_SPORT = 3, - PXEBC_VENDOR_TAG_MTFTP_TIMEOUT = 4, - PXEBC_VENDOR_TAG_MTFTP_DELAY = 5, - PXEBC_VENDOR_TAG_DISCOVER_CTRL = 6, - PXEBC_VENDOR_TAG_DISCOVER_MCAST = 7, - PXEBC_VENDOR_TAG_BOOT_SERVERS = 8, - PXEBC_VENDOR_TAG_BOOT_MENU = 9, - PXEBC_VENDOR_TAG_MENU_PROMPT = 10, - PXEBC_VENDOR_TAG_MCAST_ALLOC = 11, - PXEBC_VENDOR_TAG_CREDENTIAL_TYPES = 12, - PXEBC_VENDOR_TAG_BOOT_ITEM = 71, - - PXEBC_DHCP4_DISCOVER_INIT_TIMEOUT = 4, - PXEBC_DHCP4_DISCOVER_RETRIES = 4, - - PXEBC_MAX_MENU_NUM = 24, - PXEBC_MAX_OFFER_NUM = 16, - - PXEBC_BOOT_REQUEST_TIMEOUT = 1, - PXEBC_BOOT_REQUEST_RETRIES = 4, - - PXEBC_DHCP4_OVERLOAD_FILE = 1, - PXEBC_DHCP4_OVERLOAD_SERVER_NAME = 2 -} PXEBC_ENUM_TYPES; +#define PXEBC_DHCP4_MAX_OPTION_NUM 16 +#define PXEBC_DHCP4_MAX_OPTION_SIZE 312 +#define PXEBC_DHCP4_MAX_PACKET_SIZE 1472 + +#define PXEBC_DHCP4_S_PORT 67 +#define PXEBC_DHCP4_C_PORT 68 +#define PXEBC_BS_DOWNLOAD_PORT 69 +#define PXEBC_BS_DISCOVER_PORT 4011 + +#define PXEBC_DHCP4_OPCODE_REQUEST 1 +#define PXEBC_DHCP4_OPCODE_REPLY 2 +#define PXEBC_DHCP4_MSG_TYPE_REQUEST 3 +#define PXEBC_DHCP4_MAGIC 0x63538263 // network byte order +// +// Dhcp Options +// +#define PXEBC_DHCP4_TAG_PAD 0 // Pad Option +#define PXEBC_DHCP4_TAG_EOP 255 // End Option +#define PXEBC_DHCP4_TAG_NETMASK 1 // Subnet Mask +#define PXEBC_DHCP4_TAG_TIME_OFFSET 2 // Time Offset from UTC +#define PXEBC_DHCP4_TAG_ROUTER 3 // Router option, +#define PXEBC_DHCP4_TAG_TIME_SERVER 4 // Time Server +#define PXEBC_DHCP4_TAG_NAME_SERVER 5 // Name Server +#define PXEBC_DHCP4_TAG_DNS_SERVER 6 // Domain Name Server +#define PXEBC_DHCP4_TAG_HOSTNAME 12 // Host Name +#define PXEBC_DHCP4_TAG_BOOTFILE_LEN 13 // Boot File Size +#define PXEBC_DHCP4_TAG_DUMP 14 // Merit Dump File +#define PXEBC_DHCP4_TAG_DOMAINNAME 15 // Domain Name +#define PXEBC_DHCP4_TAG_ROOTPATH 17 // Root path +#define PXEBC_DHCP4_TAG_EXTEND_PATH 18 // Extensions Path +#define PXEBC_DHCP4_TAG_EMTU 22 // Maximum Datagram Reassembly Size +#define PXEBC_DHCP4_TAG_TTL 23 // Default IP Time-to-live +#define PXEBC_DHCP4_TAG_BROADCAST 28 // Broadcast Address +#define PXEBC_DHCP4_TAG_NIS_DOMAIN 40 // Network Information Service Domain +#define PXEBC_DHCP4_TAG_NIS_SERVER 41 // Network Information Servers +#define PXEBC_DHCP4_TAG_NTP_SERVER 42 // Network Time Protocol Servers +#define PXEBC_DHCP4_TAG_VENDOR 43 // Vendor Specific Information +#define PXEBC_DHCP4_TAG_REQUEST_IP 50 // Requested IP Address +#define PXEBC_DHCP4_TAG_LEASE 51 // IP Address Lease Time +#define PXEBC_DHCP4_TAG_OVERLOAD 52 // Option Overload +#define PXEBC_DHCP4_TAG_MSG_TYPE 53 // DHCP Message Type +#define PXEBC_DHCP4_TAG_SERVER_ID 54 // Server Identifier +#define PXEBC_DHCP4_TAG_PARA_LIST 55 // Parameter Request List +#define PXEBC_DHCP4_TAG_MAXMSG 57 // Maximum DHCP Message Size +#define PXEBC_DHCP4_TAG_T1 58 // Renewal (T1) Time Value +#define PXEBC_DHCP4_TAG_T2 59 // Rebinding (T2) Time Value +#define PXEBC_DHCP4_TAG_CLASS_ID 60 // Vendor class identifier +#define PXEBC_DHCP4_TAG_CLIENT_ID 61 // Client-identifier +#define PXEBC_DHCP4_TAG_TFTP 66 // TFTP server name +#define PXEBC_DHCP4_TAG_BOOTFILE 67 // Bootfile name +#define PXEBC_PXE_DHCP4_TAG_ARCH 93 +#define PXEBC_PXE_DHCP4_TAG_UNDI 94 +#define PXEBC_PXE_DHCP4_TAG_UUID 97 +// +// Sub-Options in Dhcp Vendor Option +// +#define PXEBC_VENDOR_TAG_MTFTP_IP 1 +#define PXEBC_VENDOR_TAG_MTFTP_CPORT 2 +#define PXEBC_VENDOR_TAG_MTFTP_SPORT 3 +#define PXEBC_VENDOR_TAG_MTFTP_TIMEOUT 4 +#define PXEBC_VENDOR_TAG_MTFTP_DELAY 5 +#define PXEBC_VENDOR_TAG_DISCOVER_CTRL 6 +#define PXEBC_VENDOR_TAG_DISCOVER_MCAST 7 +#define PXEBC_VENDOR_TAG_BOOT_SERVERS 8 +#define PXEBC_VENDOR_TAG_BOOT_MENU 9 +#define PXEBC_VENDOR_TAG_MENU_PROMPT 10 +#define PXEBC_VENDOR_TAG_MCAST_ALLOC 11 +#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES 12 +#define PXEBC_VENDOR_TAG_BOOT_ITEM 71 + +#define PXEBC_DHCP4_DISCOVER_INIT_TIMEOUT 4 +#define PXEBC_DHCP4_DISCOVER_RETRIES 4 + +#define PXEBC_MAX_MENU_NUM 24 +#define PXEBC_MAX_OFFER_NUM 16 + +#define PXEBC_BOOT_REQUEST_TIMEOUT 1 +#define PXEBC_BOOT_REQUEST_RETRIES 4 + +#define PXEBC_DHCP4_OVERLOAD_FILE 1 +#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME 2 // // The array index of the DHCP4 option tag interested // -typedef enum { - PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN, - PXEBC_DHCP4_TAG_INDEX_VENDOR, - PXEBC_DHCP4_TAG_INDEX_OVERLOAD, - PXEBC_DHCP4_TAG_INDEX_MSG_TYPE, - PXEBC_DHCP4_TAG_INDEX_SERVER_ID, - PXEBC_DHCP4_TAG_INDEX_CLASS_ID, - PXEBC_DHCP4_TAG_INDEX_BOOTFILE, - PXEBC_DHCP4_TAG_INDEX_MAX -} PXEBC_DHCP4_TAG_INDEX_ENUM_TYPES; +#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN 0 +#define PXEBC_DHCP4_TAG_INDEX_VENDOR 1 +#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD 2 +#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE 3 +#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID 4 +#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID 5 +#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE 6 +#define PXEBC_DHCP4_TAG_INDEX_MAX 7 // // The type of DHCP OFFER, arranged by priority, PXE10 has the highest priority. // -typedef enum { - DHCP4_PACKET_TYPE_PXE10, - DHCP4_PACKET_TYPE_WFM11A, - DHCP4_PACKET_TYPE_BINL, - DHCP4_PACKET_TYPE_DHCP_ONLY, - DHCP4_PACKET_TYPE_MAX, - DHCP4_PACKET_TYPE_BOOTP = DHCP4_PACKET_TYPE_MAX -} DHCP4_PACKET_TYPE_ENUM_TYPES; +#define DHCP4_PACKET_TYPE_PXE10 0 +#define DHCP4_PACKET_TYPE_WFM11A 1 +#define DHCP4_PACKET_TYPE_BINL 2 +#define DHCP4_PACKET_TYPE_DHCP_ONLY 3 +#define DHCP4_PACKET_TYPE_MAX 4 +#define DHCP4_PACKET_TYPE_BOOTP DHCP4_PACKET_TYPE_MAX #define BIT(x) (1 << x) #define CTRL(x) (0x1F & (x)) @@ -274,13 +268,14 @@ typedef struct { #define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_MAX_PACKET_SIZE) -typedef struct { - union { - EFI_DHCP4_PACKET Offer; - EFI_DHCP4_PACKET Ack; - UINT8 Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE]; - } Packet; +typedef union { + EFI_DHCP4_PACKET Offer; + EFI_DHCP4_PACKET Ack; + UINT8 Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE]; +} PXEBC_DHCP4_PACKET; +typedef struct { + PXEBC_DHCP4_PACKET Packet; BOOLEAN IsPxeOffer; UINT8 OfferType; EFI_DHCP4_PACKET_OPTION *Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_MAX]; @@ -438,7 +433,7 @@ PxeBcBuildDhcpOptions ( /** - Create the boot options + Create the boot options. @param OptList Pointer to the list of the options @param Type the type of option -- cgit v1.2.3