13eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/*++ 23eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3f57387d54bd8f2c0261834b2ad16155f1db63291hhtianCopyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4f57387d54bd8f2c0261834b2ad16155f1db63291hhtianThis program and the accompanying materials 53eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangare licensed and made available under the terms and conditions of the BSD License 63eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangwhich accompanies this distribution. The full text of the license may be found at 73eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwanghttp://opensource.org/licenses/bsd-license.php 83eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 93eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangModule Name: 133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang PxeDhcp4.h 143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangAbstract: 163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI PXE DHCPv4 protocol definition 173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang--*/ 193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#ifndef _PXEDHCP4_H_ 213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define _PXEDHCP4_H_ 223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// PXE DHCPv4 GUID definition 273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_PXE_DHCP4_PROTOCOL_GUID \ 307ccf38a33e1e227131c170a621d183b3bacef148qhuang { 0x03c4e624, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d} } 313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Interface definition 353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_FORWARD_DECLARATION (EFI_PXE_DHCP4_PROTOCOL); 383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Descriptions of the DHCP version 4 header and options can be found 423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// in RFC-2131 and RFC-2132 at www.ietf.org 433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack(1) 463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 op; 493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define BOOTP_REQUEST 1 503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define BOOTP_REPLY 2 513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 htype; 533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 hlen; 553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 hops; 573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 xid; 593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT16 secs; 613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_INITIAL_SECONDS 4 623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT16 flags; 643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_BROADCAST_FLAG 0x8000 653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 ciaddr; 673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 yiaddr; 693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 siaddr; 713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 giaddr; 733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 chaddr[16]; 753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 sname[64]; 773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 fname[128]; 793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// This is the minimum option length as specified in RFC-2131. 823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// The packet must be padded out this far with DHCP4_PAD. 833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// DHCPv4 packets are usually 576 bytes in length. This length 843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// includes the IPv4 and UDPv4 headers but not the media header. 853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Note: Not all DHCP relay agents will forward DHCPv4 packets 863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// if they are less than 384 bytes or exceed 576 bytes. Even if 873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// the underlying hardware can handle smaller and larger packets, 883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// many older relay agents will not accept them. 893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 magik; 913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MAGIK_NUMBER 0x63825363 923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 options[308]; 943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} DHCP4_HEADER; 963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack() 973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// DHCPv4 packet definition. Room for 576 bytes including IP and 1013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// UDP header. 1023eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MAX_PACKET_SIZE 576 1053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_UDP_HEADER_SIZE 8 1063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_IP_HEADER_SIZE 20 1073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack(1) 1093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef union _DHCP4_PACKET { 1103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 _force_data_alignment; 1113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 raw[1500]; 1133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang DHCP4_HEADER dhcp4; 1153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} DHCP4_PACKET; 1163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack() 1173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_SERVER_PORT 67 1193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_CLIENT_PORT 68 1203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 1223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// DHCPv4 and PXE option numbers. 1243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_PAD 0 1273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_END 255 1283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_SUBNET_MASK 1 1293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_TIME_OFFSET 2 1303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ROUTER_LIST 3 1313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_TIME_SERVERS 4 1323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NAME_SERVERS 5 1333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_DNS_SERVERS 6 1343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_LOG_SERVERS 7 1353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_COOKIE_SERVERS 8 1363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_LPR_SREVERS 9 1373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_IMPRESS_SERVERS 10 1383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_RESOURCE_LOCATION_SERVERS 11 1393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_HOST_NAME 12 1403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_BOOT_FILE_SIZE 13 1413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_DUMP_FILE 14 1423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_DOMAIN_NAME 15 1433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_SWAP_SERVER 16 1443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ROOT_PATH 17 1453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_EXTENSION_PATH 18 1463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_IP_FORWARDING 19 1473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NON_LOCAL_SOURCE_ROUTE 20 1483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_POLICY_FILTER 21 1493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MAX_DATAGRAM_SIZE 22 1503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_DEFAULT_TTL 23 1513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MTU_AGING_TIMEOUT 24 1523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MTU_SIZES 25 1533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MTU_TO_USE 26 1543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ALL_SUBNETS_LOCAL 27 1553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_BROADCAST_ADDRESS 28 1563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_PERFORM_MASK_DISCOVERY 29 1573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_RESPOND_TO_MASK_REQ 30 1583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_PERFORM_ROUTER_DISCOVERY 31 1593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ROUTER_SOLICIT_ADDRESS 32 1603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_STATIC_ROUTER_LIST 33 1613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_USE_ARP_TRAILERS 34 1623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ARP_CACHE_TIMEOUT 35 1633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ETHERNET_ENCAPSULATION 36 1643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_TCP_DEFAULT_TTL 37 1653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_TCP_KEEP_ALIVE_INT 38 1663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_KEEP_ALIVE_GARBAGE 39 1673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NIS_DOMAIN_NAME 40 1683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NIS_SERVERS 41 1693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NTP_SERVERS 42 1703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_VENDOR_SPECIFIC 43 1713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_MTFTP_IP 1 1723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_MTFTP_CPORT 2 1733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_MTFTP_SPORT 3 1743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_MTFTP_TMOUT 4 1753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_MTFTP_DELAY 5 1763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_DISCOVERY_CONTROL 6 1773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_DISABLE_BROADCAST_DISCOVERY 0x01 1783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_DISABLE_MULTICAST_DISCOVERY 0x02 1793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_ACCEPT_ONLY_PXE_BOOT_SERVERS 0x04 1803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_DO_NOT_PROMPT 0x08 1813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_DISCOVERY_MCAST_ADDR 7 1823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_BOOT_SERVERS 8 1833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_BOOT_MENU 9 1843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_BOOT_PROMPT 10 1853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_MCAST_ADDRS_ALLOC 11 1863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_CREDENTIAL_TYPES 12 1873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define PXE_BOOT_ITEM 71 1883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NBNS_SERVERS 44 1893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NBDD_SERVERS 45 1903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NETBIOS_NODE_TYPE 46 1913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NETBIOS_SCOPE 47 1923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_XWINDOW_SYSTEM_FONT_SERVERS 48 1933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_XWINDOW_SYSTEM_DISPLAY_MANAGERS 49 1943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_REQUESTED_IP_ADDRESS 50 1953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_LEASE_TIME 51 1963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_OPTION_OVERLOAD 52 1973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_OVERLOAD_FNAME 1 1983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_OVERLOAD_SNAME 2 1993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_OVERLOAD_FNAME_AND_SNAME 3 2003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MESSAGE_TYPE 53 2013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_DISCOVER 1 2023eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_OFFER 2 2033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_REQUEST 3 2043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_DECLINE 4 2053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_ACK 5 2063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_NAK 6 2073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_RELEASE 7 2083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_MESSAGE_TYPE_INFORM 8 2093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_SERVER_IDENTIFIER 54 2103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_PARAMETER_REQUEST_LIST 55 2113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_ERROR_MESSAGE 56 2123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MAX_MESSAGE_SIZE 57 2133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang# define DHCP4_DEFAULT_MAX_MESSAGE_SIZE 576 2143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_RENEWAL_TIME 58 2153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_REBINDING_TIME 59 2163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_CLASS_IDENTIFIER 60 2173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_CLIENT_IDENTIFIER 61 2183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NISPLUS_DOMAIN_NAME 64 2193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NISPLUS_SERVERS 65 2203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_TFTP_SERVER_NAME 66 2213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_BOOTFILE 67 2223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MOBILE_IP_HOME_AGENTS 68 2233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_SMPT_SERVERS 69 2243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_POP3_SERVERS 70 2253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NNTP_SERVERS 71 2263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_WWW_SERVERS 72 2273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_FINGER_SERVERS 73 2283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_IRC_SERVERS 74 2293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_STREET_TALK_SERVERS 75 2303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_STREET_TALK_DIR_ASSIST_SERVERS 76 2313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NDS_SERVERS 85 2323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NDS_TREE_NAME 86 2333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NDS_CONTEXT 87 2343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_SYSTEM_ARCHITECTURE 93 2353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_NETWORK_ARCHITECTURE 94 2363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_PLATFORM_ID 97 2373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 2393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// DHCP4 option format. 2413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack(1) 2443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 2453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 op; 2463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 len; 2473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT8 data[1]; 2483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} DHCP4_OP; 2493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack() 2503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 2523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 2543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang DHCP4_PACKET Discover; 2553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang DHCP4_PACKET Offer; 2563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang DHCP4_PACKET Request; 2573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang DHCP4_PACKET AckNak; 2583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang BOOLEAN SetupCompleted; 2593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang BOOLEAN InitCompleted; 2603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang BOOLEAN SelectCompleted; 2613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang BOOLEAN IsBootp; 2623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang BOOLEAN IsAck; 2633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_PXE_DHCP4_DATA; 2643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 2663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 2673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 2683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_RUN) ( 2693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL *This, 2703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN OPTIONAL UINTN OpLen, 2713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN OPTIONAL VOID *OpList 2723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 2733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 2753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 2763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 2773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_SETUP) ( 2783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL *This, 2793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN OPTIONAL EFI_PXE_DHCP4_DATA * NewData 2803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 2813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 2833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 2843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 2853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_INIT) ( 2863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL *This, 2873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN UINTN SecondsTimeout, 2883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang OUT UINTN *Offers, 2893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang OUT DHCP4_PACKET **OfferList 2903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 2913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MIN_SECONDS 1 2933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define DHCP4_MAX_SECONDS 60 2943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 2963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 2973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 2983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_SELECT) ( 2993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL *This, 3003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN UINTN SecondsTimeout, 3013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN DHCP4_PACKET * offer 3023eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 3033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 3053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 3063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 3073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_RENEW) ( 3083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL *This, 3093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINTN seconds_timeout 3103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 3113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 3133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 3143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 3153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_REBIND) ( 3163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL *This, 3173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINTN seconds_timeout 3183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 3193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 3213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 3223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 3233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_PXE_DHCP4_RELEASE) ( 3243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_PXE_DHCP4_PROTOCOL * This 3253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 3263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 3283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_PXE_DHCP4_PROTOCOL_REVISION 0x00010000 3303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3319c092841829b153eef01007ddb5df50e87f9110fjljustenstruct _EFI_PXE_DHCP4_PROTOCOL { 3323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT64 Revision; 3333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_RUN Run; 3343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_SETUP Setup; 3353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_INIT Init; 3363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_SELECT Select; 3373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_RENEW Renew; 3383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_REBIND Rebind; 3393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_RELEASE Release; 3403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PXE_DHCP4_DATA *Data; 3419c092841829b153eef01007ddb5df50e87f9110fjljusten}; 3423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiPxeDhcp4ProtocolGuid; 3483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#endif /* _PXEDHCP4_H_ */ 3503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/* EOF - PxeDhcp4.h */ 351