/** @file\r
Functions declaration related with DHCPv4 for HTTP boot driver.\r
\r
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials are licensed and made available under \r
the terms and conditions of the BSD License that accompanies this distribution. \r
The full text of the license may be found at\r
#define HTTP_BOOT_DHCP4_MSG_TYPE_REQUEST 3\r
#define HTTP_BOOT_DHCP4_MAGIC 0x63538263 // network byte order\r
\r
-//\r
-// Dhcp Options\r
-//\r
-#define HTTP_BOOT_DHCP4_TAG_PAD 0 // Pad Option\r
-#define HTTP_BOOT_DHCP4_TAG_EOP 255 // End Option\r
-#define HTTP_BOOT_DHCP4_TAG_NETMASK 1 // Subnet Mask\r
-#define HTTP_BOOT_DHCP4_TAG_TIME_OFFSET 2 // Time Offset from UTC\r
-#define HTTP_BOOT_DHCP4_TAG_ROUTER 3 // Router option,\r
-#define HTTP_BOOT_DHCP4_TAG_TIME_SERVER 4 // Time Server\r
-#define HTTP_BOOT_DHCP4_TAG_NAME_SERVER 5 // Name Server\r
-#define HTTP_BOOT_DHCP4_TAG_DNS_SERVER 6 // Domain Name Server\r
-#define HTTP_BOOT_DHCP4_TAG_HOSTNAME 12 // Host Name\r
-#define HTTP_BOOT_DHCP4_TAG_BOOTFILE_LEN 13 // Boot File Size\r
-#define HTTP_BOOT_DHCP4_TAG_DUMP 14 // Merit Dump File\r
-#define HTTP_BOOT_DHCP4_TAG_DOMAINNAME 15 // Domain Name\r
-#define HTTP_BOOT_DHCP4_TAG_ROOTPATH 17 // Root path\r
-#define HTTP_BOOT_DHCP4_TAG_EXTEND_PATH 18 // Extensions Path\r
-#define HTTP_BOOT_DHCP4_TAG_EMTU 22 // Maximum Datagram Reassembly Size\r
-#define HTTP_BOOT_DHCP4_TAG_TTL 23 // Default IP Time-to-live\r
-#define HTTP_BOOT_DHCP4_TAG_BROADCAST 28 // Broadcast Address\r
-#define HTTP_BOOT_DHCP4_TAG_NIS_DOMAIN 40 // Network Information Service Domain\r
-#define HTTP_BOOT_DHCP4_TAG_NIS_SERVER 41 // Network Information Servers\r
-#define HTTP_BOOT_DHCP4_TAG_NTP_SERVER 42 // Network Time Protocol Servers\r
-#define HTTP_BOOT_DHCP4_TAG_VENDOR 43 // Vendor Specific Information\r
-#define HTTP_BOOT_DHCP4_TAG_REQUEST_IP 50 // Requested IP Address\r
-#define HTTP_BOOT_DHCP4_TAG_LEASE 51 // IP Address Lease Time\r
-#define HTTP_BOOT_DHCP4_TAG_OVERLOAD 52 // Option Overload\r
-#define HTTP_BOOT_DHCP4_TAG_MSG_TYPE 53 // DHCP Message Type\r
-#define HTTP_BOOT_DHCP4_TAG_SERVER_ID 54 // Server Identifier\r
-#define HTTP_BOOT_DHCP4_TAG_PARA_LIST 55 // Parameter Request List\r
-#define HTTP_BOOT_DHCP4_TAG_MAXMSG 57 // Maximum DHCP Message Size\r
-#define HTTP_BOOT_DHCP4_TAG_T1 58 // Renewal (T1) Time Value\r
-#define HTTP_BOOT_DHCP4_TAG_T2 59 // Rebinding (T2) Time Value\r
-#define HTTP_BOOT_DHCP4_TAG_CLASS_ID 60 // Vendor class identifier\r
-#define HTTP_BOOT_DHCP4_TAG_CLIENT_ID 61 // Client-identifier\r
-#define HTTP_BOOT_DHCP4_TAG_TFTP 66 // TFTP server name\r
-#define HTTP_BOOT_DHCP4_TAG_BOOTFILE 67 // Bootfile name\r
-#define HTTP_BOOT_DHCP4_TAG_ARCH 93\r
-#define HTTP_BOOT_DHCP4_TAG_UNDI 94\r
-#define HTTP_BOOT_DHCP4_TAG_UUID 97\r
-\r
#define HTTP_BOOT_DHCP4_OVERLOAD_FILE 1\r
#define HTTP_BOOT_DHCP4_OVERLOAD_SERVER_NAME 2\r
\r
/// http://www.ietf.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml\r
///\r
#if defined (MDE_CPU_IA32)\r
-#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE 0x000F\r
+#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE HTTP_CLIENT_ARCH_IA32\r
#elif defined (MDE_CPU_X64)\r
-#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE 0x0010\r
+#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE HTTP_CLIENT_ARCH_X64\r
#elif defined (MDE_CPU_ARM)\r
-#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE 0x0012\r
+#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE HTTP_CLIENT_ARCH_ARM\r
#elif defined (MDE_CPU_AARCH64)\r
-#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE 0x0013\r
+#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE HTTP_CLIENT_ARCH_AARCH64\r
#elif defined (MDE_CPU_EBC)\r
-#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE 0x0011\r
+#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE HTTP_CLIENT_ARCH_EBC\r
#endif\r
\r
/// DHCP offer types among HTTP boot.\r
///\r
typedef enum {\r
//\r
- // <IP address, IP expressed URI> or\r
- // <IP address, IP expressed URI, Name-server (will be ignored)>\r
+ // <IP address, IP expressed URI>\r
//\r
HttpOfferTypeDhcpIpUri,\r
//\r
+ // <IP address, IP expressed URI, Name-server>\r
+ //\r
+ HttpOfferTypeDhcpIpUriDns,\r
+ //\r
// <IP address, Domain-name expressed URI, Name-server>\r
//\r
HttpOfferTypeDhcpNameUriDns,\r