]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpBootDxe/HttpBootDhcp4.h
BaseTools/Capsule: Do not support -o with --dump-info
[mirror_edk2.git] / NetworkPkg / HttpBootDxe / HttpBootDhcp4.h
index 2bc46deafd41b2d3189e41ddb420d8f4aa9c720a..4eb3f94af773d0047ecaf57db0d80ebb7733ff72 100644 (file)
@@ -1,13 +1,13 @@
 /** @file\r
   Functions declaration related with DHCPv4 for HTTP boot driver.\r
 \r
-Copyright (c) 2015, 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
+Copyright (c) 2015 - 2018, 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
-http://opensource.org/licenses/bsd-license.php.                                          \r
-    \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+http://opensource.org/licenses/bsd-license.php.\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
@@ -24,66 +24,25 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
 ///\r
-/// HTTP Tag definition that identifies the processor \r
+/// HTTP Tag definition that identifies the processor\r
 /// and programming environment of the client system.\r
 /// These identifiers are defined by IETF:\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
@@ -96,11 +55,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 ///\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
@@ -216,10 +178,12 @@ typedef struct {
   UINT32         Reserved;\r
 } HTTP_BOOT_VENDOR_OPTION;\r
 \r
+#define HTTP_CACHED_DHCP4_PACKET_MAX_SIZE  (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + HTTP_BOOT_DHCP4_PACKET_MAX_SIZE)\r
+\r
 typedef union {\r
   EFI_DHCP4_PACKET        Offer;\r
   EFI_DHCP4_PACKET        Ack;\r
-  UINT8                   Buffer[HTTP_BOOT_DHCP4_PACKET_MAX_SIZE];\r
+  UINT8                   Buffer[HTTP_CACHED_DHCP4_PACKET_MAX_SIZE];\r
 } HTTP_BOOT_DHCP4_PACKET;\r
 \r
 typedef struct {\r
@@ -272,7 +236,7 @@ HttpBootDhcp4Dora (
 \r
 /**\r
   This function will register the default DNS addresses to the network device.\r
-  \r
+\r
   @param[in]  Private             The pointer to HTTP_BOOT_PRIVATE_DATA.\r
   @param[in]  DataLength          Size of the buffer pointed to by DnsServerData in bytes.\r
   @param[in]  DnsServerData       Point a list of DNS server address in an array\r