\r
#define PXEBC_DHCP6_OPTION_MAX_NUM 16\r
#define PXEBC_DHCP6_OPTION_MAX_SIZE 312\r
-#define PXEBC_DHCP6_PACKET_MAX_SIZE 1472\r
+#define PXEBC_DHCP6_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))\r
#define PXEBC_IP6_POLICY_MAX 0xff\r
#define PXEBC_IP6_ROUTE_TABLE_TIMEOUT 10\r
\r
#define PXEBC_DHCP6_IDX_BOOT_FILE_URL 1\r
#define PXEBC_DHCP6_IDX_BOOT_FILE_PARAM 2\r
#define PXEBC_DHCP6_IDX_VENDOR_CLASS 3\r
-#define PXEBC_DHCP6_IDX_MAX 4\r
+#define PXEBC_DHCP6_IDX_DNS_SERVER 4\r
+#define PXEBC_DHCP6_IDX_MAX 5\r
\r
#define PXEBC_DHCP6_BOOT_FILE_URL_PREFIX "tftp://"\r
#define PXEBC_TFTP_URL_SEPARATOR '/'\r
UINT8 Precedence;\r
} PXEBC_DHCP6_OPTION_NODE;\r
\r
+#define PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE (OFFSET_OF (EFI_DHCP6_PACKET, Dhcp6) + PXEBC_DHCP6_PACKET_MAX_SIZE)\r
+\r
typedef union {\r
EFI_DHCP6_PACKET Offer;\r
EFI_DHCP6_PACKET Ack;\r
- UINT8 Buffer[PXEBC_DHCP6_PACKET_MAX_SIZE];\r
+ UINT8 Buffer[PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE];\r
} PXEBC_DHCP6_PACKET;\r
\r
typedef struct {\r
/**\r
Parse the Boot File URL option.\r
\r
+ @param[in] Private Pointer to PxeBc private data.\r
@param[out] FileName The pointer to the boot file name.\r
@param[in, out] SrvAddr The pointer to the boot server address.\r
@param[in] BootFile The pointer to the boot file URL option data.\r
**/\r
EFI_STATUS\r
PxeBcExtractBootFileUrl (\r
+ IN PXEBC_PRIVATE_DATA *Private,\r
OUT UINT8 **FileName,\r
IN OUT EFI_IPv6_ADDRESS *SrvAddr,\r
IN CHAR8 *BootFile,\r