X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkModulePkg%2FInclude%2FProtocol%2FPxeDhcp4.h;fp=EdkModulePkg%2FInclude%2FProtocol%2FPxeDhcp4.h;h=0000000000000000000000000000000000000000;hp=cd4602c06c58d86a2add87c8ad37f32ebe138088;hb=808def96aa4589fba9c2d0ea55837754a3b7a4f7;hpb=9216450d1143056a50a5f916984a2d7faf590488 diff --git a/EdkModulePkg/Include/Protocol/PxeDhcp4.h b/EdkModulePkg/Include/Protocol/PxeDhcp4.h deleted file mode 100644 index cd4602c06c..0000000000 --- a/EdkModulePkg/Include/Protocol/PxeDhcp4.h +++ /dev/null @@ -1,350 +0,0 @@ -/*++ - -Copyright (c) 2006, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - PxeDhcp4.h - -Abstract: - EFI PXE DHCPv4 protocol definition - ---*/ - -#ifndef _PXEDHCP4_H_ -#define _PXEDHCP4_H_ - - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -// -// PXE DHCPv4 GUID definition -// - -#define EFI_PXE_DHCP4_PROTOCOL_GUID \ - { 0x03c4e624, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d } } - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -// -// Interface definition -// - -typedef struct _EFI_PXE_DHCP4_PROTOCOL EFI_PXE_DHCP4_PROTOCOL; - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -// -// Descriptions of the DHCP version 4 header and options can be found -// in RFC-2131 and RFC-2132 at www.ietf.org -// - -#pragma pack(1) -typedef struct { - - UINT8 op; -#define BOOTP_REQUEST 1 -#define BOOTP_REPLY 2 - - UINT8 htype; - - UINT8 hlen; - - UINT8 hops; - - UINT32 xid; - - UINT16 secs; -#define DHCP4_INITIAL_SECONDS 4 - - UINT16 flags; -#define DHCP4_BROADCAST_FLAG 0x8000 - - UINT32 ciaddr; - - UINT32 yiaddr; - - UINT32 siaddr; - - UINT32 giaddr; - - UINT8 chaddr[16]; - - UINT8 sname[64]; - - UINT8 fname[128]; - -// -// This is the minimum option length as specified in RFC-2131. -// The packet must be padded out this far with DHCP4_PAD. -// DHCPv4 packets are usually 576 bytes in length. This length -// includes the IPv4 and UDPv4 headers but not the media header. -// Note: Not all DHCP relay agents will forward DHCPv4 packets -// if they are less than 384 bytes or exceed 576 bytes. Even if -// the underlying hardware can handle smaller and larger packets, -// many older relay agents will not accept them. -// - UINT32 magik; -#define DHCP4_MAGIK_NUMBER 0x63825363 - - UINT8 options[308]; - -} DHCP4_HEADER; -#pragma pack() - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -// -// DHCPv4 packet definition. Room for 576 bytes including IP and -// UDP header. -// - -#define DHCP4_MAX_PACKET_SIZE 576 -#define DHCP4_UDP_HEADER_SIZE 8 -#define DHCP4_IP_HEADER_SIZE 20 - -#pragma pack(1) -typedef union _DHCP4_PACKET { - UINT32 _force_data_alignment; - - UINT8 raw[1500]; - - DHCP4_HEADER dhcp4; -} DHCP4_PACKET; -#pragma pack() - -#define DHCP4_SERVER_PORT 67 -#define DHCP4_CLIENT_PORT 68 - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -// -// DHCPv4 and PXE option numbers. -// - -#define DHCP4_PAD 0 -#define DHCP4_END 255 -#define DHCP4_SUBNET_MASK 1 -#define DHCP4_TIME_OFFSET 2 -#define DHCP4_ROUTER_LIST 3 -#define DHCP4_TIME_SERVERS 4 -#define DHCP4_NAME_SERVERS 5 -#define DHCP4_DNS_SERVERS 6 -#define DHCP4_LOG_SERVERS 7 -#define DHCP4_COOKIE_SERVERS 8 -#define DHCP4_LPR_SREVERS 9 -#define DHCP4_IMPRESS_SERVERS 10 -#define DHCP4_RESOURCE_LOCATION_SERVERS 11 -#define DHCP4_HOST_NAME 12 -#define DHCP4_BOOT_FILE_SIZE 13 -#define DHCP4_DUMP_FILE 14 -#define DHCP4_DOMAIN_NAME 15 -#define DHCP4_SWAP_SERVER 16 -#define DHCP4_ROOT_PATH 17 -#define DHCP4_EXTENSION_PATH 18 -#define DHCP4_IP_FORWARDING 19 -#define DHCP4_NON_LOCAL_SOURCE_ROUTE 20 -#define DHCP4_POLICY_FILTER 21 -#define DHCP4_MAX_DATAGRAM_SIZE 22 -#define DHCP4_DEFAULT_TTL 23 -#define DHCP4_MTU_AGING_TIMEOUT 24 -#define DHCP4_MTU_SIZES 25 -#define DHCP4_MTU_TO_USE 26 -#define DHCP4_ALL_SUBNETS_LOCAL 27 -#define DHCP4_BROADCAST_ADDRESS 28 -#define DHCP4_PERFORM_MASK_DISCOVERY 29 -#define DHCP4_RESPOND_TO_MASK_REQ 30 -#define DHCP4_PERFORM_ROUTER_DISCOVERY 31 -#define DHCP4_ROUTER_SOLICIT_ADDRESS 32 -#define DHCP4_STATIC_ROUTER_LIST 33 -#define DHCP4_USE_ARP_TRAILERS 34 -#define DHCP4_ARP_CACHE_TIMEOUT 35 -#define DHCP4_ETHERNET_ENCAPSULATION 36 -#define DHCP4_TCP_DEFAULT_TTL 37 -#define DHCP4_TCP_KEEP_ALIVE_INT 38 -#define DHCP4_KEEP_ALIVE_GARBAGE 39 -#define DHCP4_NIS_DOMAIN_NAME 40 -#define DHCP4_NIS_SERVERS 41 -#define DHCP4_NTP_SERVERS 42 -#define DHCP4_VENDOR_SPECIFIC 43 -# define PXE_MTFTP_IP 1 -# define PXE_MTFTP_CPORT 2 -# define PXE_MTFTP_SPORT 3 -# define PXE_MTFTP_TMOUT 4 -# define PXE_MTFTP_DELAY 5 -# define PXE_DISCOVERY_CONTROL 6 -# define PXE_DISABLE_BROADCAST_DISCOVERY 0x01 -# define PXE_DISABLE_MULTICAST_DISCOVERY 0x02 -# define PXE_ACCEPT_ONLY_PXE_BOOT_SERVERS 0x04 -# define PXE_DO_NOT_PROMPT 0x08 -# define PXE_DISCOVERY_MCAST_ADDR 7 -# define PXE_BOOT_SERVERS 8 -# define PXE_BOOT_MENU 9 -# define PXE_BOOT_PROMPT 10 -# define PXE_MCAST_ADDRS_ALLOC 11 -# define PXE_CREDENTIAL_TYPES 12 -# define PXE_BOOT_ITEM 71 -#define DHCP4_NBNS_SERVERS 44 -#define DHCP4_NBDD_SERVERS 45 -#define DHCP4_NETBIOS_NODE_TYPE 46 -#define DHCP4_NETBIOS_SCOPE 47 -#define DHCP4_XWINDOW_SYSTEM_FONT_SERVERS 48 -#define DHCP4_XWINDOW_SYSTEM_DISPLAY_MANAGERS 49 -#define DHCP4_REQUESTED_IP_ADDRESS 50 -#define DHCP4_LEASE_TIME 51 -#define DHCP4_OPTION_OVERLOAD 52 -# define DHCP4_OVERLOAD_FNAME 1 -# define DHCP4_OVERLOAD_SNAME 2 -# define DHCP4_OVERLOAD_FNAME_AND_SNAME 3 -#define DHCP4_MESSAGE_TYPE 53 -# define DHCP4_MESSAGE_TYPE_DISCOVER 1 -# define DHCP4_MESSAGE_TYPE_OFFER 2 -# define DHCP4_MESSAGE_TYPE_REQUEST 3 -# define DHCP4_MESSAGE_TYPE_DECLINE 4 -# define DHCP4_MESSAGE_TYPE_ACK 5 -# define DHCP4_MESSAGE_TYPE_NAK 6 -# define DHCP4_MESSAGE_TYPE_RELEASE 7 -# define DHCP4_MESSAGE_TYPE_INFORM 8 -#define DHCP4_SERVER_IDENTIFIER 54 -#define DHCP4_PARAMETER_REQUEST_LIST 55 -#define DHCP4_ERROR_MESSAGE 56 -#define DHCP4_MAX_MESSAGE_SIZE 57 -# define DHCP4_DEFAULT_MAX_MESSAGE_SIZE 576 -#define DHCP4_RENEWAL_TIME 58 -#define DHCP4_REBINDING_TIME 59 -#define DHCP4_CLASS_IDENTIFIER 60 -#define DHCP4_CLIENT_IDENTIFIER 61 -#define DHCP4_NISPLUS_DOMAIN_NAME 64 -#define DHCP4_NISPLUS_SERVERS 65 -#define DHCP4_TFTP_SERVER_NAME 66 -#define DHCP4_BOOTFILE 67 -#define DHCP4_MOBILE_IP_HOME_AGENTS 68 -#define DHCP4_SMPT_SERVERS 69 -#define DHCP4_POP3_SERVERS 70 -#define DHCP4_NNTP_SERVERS 71 -#define DHCP4_WWW_SERVERS 72 -#define DHCP4_FINGER_SERVERS 73 -#define DHCP4_IRC_SERVERS 74 -#define DHCP4_STREET_TALK_SERVERS 75 -#define DHCP4_STREET_TALK_DIR_ASSIST_SERVERS 76 -#define DHCP4_NDS_SERVERS 85 -#define DHCP4_NDS_TREE_NAME 86 -#define DHCP4_NDS_CONTEXT 87 -#define DHCP4_SYSTEM_ARCHITECTURE 93 -#define DHCP4_NETWORK_ARCHITECTURE 94 -#define DHCP4_PLATFORM_ID 97 - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -// -// DHCP4 option format. -// - -#pragma pack(1) -typedef struct { - UINT8 op; - UINT8 len; - UINT8 data[1]; -} DHCP4_OP; -#pragma pack() - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -typedef struct { - DHCP4_PACKET Discover; - DHCP4_PACKET Offer; - DHCP4_PACKET Request; - DHCP4_PACKET AckNak; - BOOLEAN SetupCompleted; - BOOLEAN InitCompleted; - BOOLEAN SelectCompleted; - BOOLEAN IsBootp; - BOOLEAN IsAck; -} EFI_PXE_DHCP4_DATA; - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_RUN) ( - IN EFI_PXE_DHCP4_PROTOCOL *This, - IN OPTIONAL UINTN OpLen, - IN OPTIONAL VOID *OpList - ); - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_SETUP) ( - IN EFI_PXE_DHCP4_PROTOCOL *This, - IN OPTIONAL EFI_PXE_DHCP4_DATA * NewData - ); - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_INIT) ( - IN EFI_PXE_DHCP4_PROTOCOL *This, - IN UINTN SecondsTimeout, - OUT UINTN *Offers, - OUT DHCP4_PACKET **OfferList - ); - -#define DHCP4_MIN_SECONDS 1 -#define DHCP4_MAX_SECONDS 60 - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_SELECT) ( - IN EFI_PXE_DHCP4_PROTOCOL *This, - IN UINTN SecondsTimeout, - IN DHCP4_PACKET * offer - ); - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_RENEW) ( - IN EFI_PXE_DHCP4_PROTOCOL *This, - UINTN seconds_timeout - ); - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_REBIND) ( - IN EFI_PXE_DHCP4_PROTOCOL *This, - UINTN seconds_timeout - ); - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -typedef -EFI_STATUS -(EFIAPI *EFI_PXE_DHCP4_RELEASE) ( - IN EFI_PXE_DHCP4_PROTOCOL * This - ); - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -#define EFI_PXE_DHCP4_PROTOCOL_REVISION 0x00010000 - -struct _EFI_PXE_DHCP4_PROTOCOL { - UINT64 Revision; - EFI_PXE_DHCP4_RUN Run; - EFI_PXE_DHCP4_SETUP Setup; - EFI_PXE_DHCP4_INIT Init; - EFI_PXE_DHCP4_SELECT Select; - EFI_PXE_DHCP4_RENEW Renew; - EFI_PXE_DHCP4_REBIND Rebind; - EFI_PXE_DHCP4_RELEASE Release; - EFI_PXE_DHCP4_DATA *Data; -}; - -// -// -// - -extern EFI_GUID gEfiPxeDhcp4ProtocolGuid; - -#endif /* _PXEDHCP4_H_ */ -/* EOF - PxeDhcp4.h */