/** @file\r
Functions declaration related with DHCPv4 for UefiPxeBc Driver.\r
\r
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 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
#define PXEBC_DHCP4_OPTION_MAX_NUM 16\r
#define PXEBC_DHCP4_OPTION_MAX_SIZE 312\r
-#define PXEBC_DHCP4_PACKET_MAX_SIZE 1472\r
+#define PXEBC_DHCP4_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))\r
#define PXEBC_DHCP4_S_PORT 67\r
#define PXEBC_DHCP4_C_PORT 68\r
#define PXEBC_BS_DOWNLOAD_PORT 69\r
#define PXEBC_DHCP4_MSG_TYPE_REQUEST 3\r
#define PXEBC_DHCP4_MAGIC 0x63538263 // network byte order\r
\r
-//\r
-// Dhcp Options\r
-//\r
-#define PXEBC_DHCP4_TAG_PAD 0 // Pad Option\r
-#define PXEBC_DHCP4_TAG_EOP 255 // End Option\r
-#define PXEBC_DHCP4_TAG_NETMASK 1 // Subnet Mask\r
-#define PXEBC_DHCP4_TAG_TIME_OFFSET 2 // Time Offset from UTC\r
-#define PXEBC_DHCP4_TAG_ROUTER 3 // Router option,\r
-#define PXEBC_DHCP4_TAG_TIME_SERVER 4 // Time Server\r
-#define PXEBC_DHCP4_TAG_NAME_SERVER 5 // Name Server\r
-#define PXEBC_DHCP4_TAG_DNS_SERVER 6 // Domain Name Server\r
-#define PXEBC_DHCP4_TAG_HOSTNAME 12 // Host Name\r
-#define PXEBC_DHCP4_TAG_BOOTFILE_LEN 13 // Boot File Size\r
-#define PXEBC_DHCP4_TAG_DUMP 14 // Merit Dump File\r
-#define PXEBC_DHCP4_TAG_DOMAINNAME 15 // Domain Name\r
-#define PXEBC_DHCP4_TAG_ROOTPATH 17 // Root path\r
-#define PXEBC_DHCP4_TAG_EXTEND_PATH 18 // Extensions Path\r
-#define PXEBC_DHCP4_TAG_EMTU 22 // Maximum Datagram Reassembly Size\r
-#define PXEBC_DHCP4_TAG_TTL 23 // Default IP Time-to-live\r
-#define PXEBC_DHCP4_TAG_BROADCAST 28 // Broadcast Address\r
-#define PXEBC_DHCP4_TAG_NIS_DOMAIN 40 // Network Information Service Domain\r
-#define PXEBC_DHCP4_TAG_NIS_SERVER 41 // Network Information Servers\r
-#define PXEBC_DHCP4_TAG_NTP_SERVER 42 // Network Time Protocol Servers\r
-#define PXEBC_DHCP4_TAG_VENDOR 43 // Vendor Specific Information\r
-#define PXEBC_DHCP4_TAG_REQUEST_IP 50 // Requested IP Address\r
-#define PXEBC_DHCP4_TAG_LEASE 51 // IP Address Lease Time\r
-#define PXEBC_DHCP4_TAG_OVERLOAD 52 // Option Overload\r
-#define PXEBC_DHCP4_TAG_MSG_TYPE 53 // DHCP Message Type\r
-#define PXEBC_DHCP4_TAG_SERVER_ID 54 // Server Identifier\r
-#define PXEBC_DHCP4_TAG_PARA_LIST 55 // Parameter Request List\r
-#define PXEBC_DHCP4_TAG_MAXMSG 57 // Maximum DHCP Message Size\r
-#define PXEBC_DHCP4_TAG_T1 58 // Renewal (T1) Time Value\r
-#define PXEBC_DHCP4_TAG_T2 59 // Rebinding (T2) Time Value\r
-#define PXEBC_DHCP4_TAG_CLASS_ID 60 // Vendor class identifier\r
-#define PXEBC_DHCP4_TAG_CLIENT_ID 61 // Client-identifier\r
-#define PXEBC_DHCP4_TAG_TFTP 66 // TFTP server name\r
-#define PXEBC_DHCP4_TAG_BOOTFILE 67 // Bootfile name\r
-#define PXEBC_PXE_DHCP4_TAG_ARCH 93\r
-#define PXEBC_PXE_DHCP4_TAG_UNDI 94\r
-#define PXEBC_PXE_DHCP4_TAG_UUID 97\r
//\r
// Sub-Options in Dhcp Vendor Option\r
//\r
\r
#define BIT(x) (1 << x)\r
#define CTRL(x) (0x1F & (x))\r
-#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:?????:????:??????"\r
+#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000"\r
#define DEFAULT_UNDI_TYPE 1\r
#define DEFAULT_UNDI_MAJOR 3\r
#define DEFAULT_UNDI_MINOR 0\r
#define IS_ENABLE_USE_SERVER_LIST(x) \\r
(((x) & BIT (2)) == BIT (2))\r
\r
-#define IS_ENABLE_BOOT_FILE_NAME(x) \\r
+#define IS_DISABLE_PROMPT_MENU(x) \\r
(((x) & BIT (3)) == BIT (3))\r
\r
\r
UINT8 CredTypeLen;\r
} PXEBC_VENDOR_OPTION;\r
\r
+#define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_PACKET_MAX_SIZE)\r
+\r
typedef union {\r
EFI_DHCP4_PACKET Offer;\r
EFI_DHCP4_PACKET Ack;\r
- UINT8 Buffer[PXEBC_DHCP4_PACKET_MAX_SIZE];\r
+ UINT8 Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];\r
} PXEBC_DHCP4_PACKET;\r
\r
typedef struct {\r
IN EFI_PXE_BASE_CODE_SRVLIST *SrvList\r
);\r
\r
+/**\r
+ Switch the Ip4 policy to static.\r
+\r
+ @param[in] Private The pointer to PXEBC_PRIVATE_DATA.\r
+\r
+ @retval EFI_SUCCESS The policy is already configured to static.\r
+ @retval Others Other error as indicated..\r
+\r
+**/\r
+EFI_STATUS\r
+PxeBcSetIp4Policy ( \r
+ IN PXEBC_PRIVATE_DATA *Private\r
+ );\r
+\r
\r
/**\r
Start the D.O.R.A DHCPv4 process to acquire the IPv4 address and other PXE boot information.\r