NetworkPkg/HttpBootDxe/HttpBootDhcp4.h File Reference


Data Structures

struct  HTTP_BOOT_DHCP4_OPTION_PARA
struct  HTTP_BOOT_DHCP4_OPTION_MAX_MESG_SIZE
struct  HTTP_BOOT_DHCP4_OPTION_UNDI
struct  HTTP_BOOT_DHCP4_OPTION_MESG
struct  HTTP_BOOT_DHCP4_OPTION_ARCH
struct  HTTP_BOOT_DHCP4_OPTION_CLID
struct  HTTP_BOOT_DHCP4_OPTION_UUID
struct  HTTP_BOOT_OPTION_BOOT_ITEM
union  HTTP_BOOT_DHCP4_OPTION_ENTRY
struct  HTTP_BOOT_VENDOR_OPTION
union  HTTP_BOOT_DHCP4_PACKET
struct  HTTP_BOOT_URI_CONTENT
struct  HTTP_BOOT_DHCP4_PACKET_CACHE

Defines

#define HTTP_BOOT_DHCP4_OPTION_MAX_NUM   16
#define HTTP_BOOT_DHCP4_OPTION_MAX_SIZE   312
#define HTTP_BOOT_DHCP4_PACKET_MAX_SIZE   1472
#define HTTP_BOOT_DHCP4_OPCODE_REQUEST   1
#define HTTP_BOOT_DHCP4_OPCODE_REPLY   2
#define HTTP_BOOT_DHCP4_MSG_TYPE_REQUEST   3
#define HTTP_BOOT_DHCP4_MAGIC   0x63538263
#define HTTP_BOOT_DHCP4_TAG_PAD   0
#define HTTP_BOOT_DHCP4_TAG_EOP   255
#define HTTP_BOOT_DHCP4_TAG_NETMASK   1
#define HTTP_BOOT_DHCP4_TAG_TIME_OFFSET   2
#define HTTP_BOOT_DHCP4_TAG_ROUTER   3
#define HTTP_BOOT_DHCP4_TAG_TIME_SERVER   4
#define HTTP_BOOT_DHCP4_TAG_NAME_SERVER   5
#define HTTP_BOOT_DHCP4_TAG_DNS_SERVER   6
#define HTTP_BOOT_DHCP4_TAG_HOSTNAME   12
#define HTTP_BOOT_DHCP4_TAG_BOOTFILE_LEN   13
#define HTTP_BOOT_DHCP4_TAG_DUMP   14
#define HTTP_BOOT_DHCP4_TAG_DOMAINNAME   15
#define HTTP_BOOT_DHCP4_TAG_ROOTPATH   17
#define HTTP_BOOT_DHCP4_TAG_EXTEND_PATH   18
#define HTTP_BOOT_DHCP4_TAG_EMTU   22
#define HTTP_BOOT_DHCP4_TAG_TTL   23
#define HTTP_BOOT_DHCP4_TAG_BROADCAST   28
#define HTTP_BOOT_DHCP4_TAG_NIS_DOMAIN   40
#define HTTP_BOOT_DHCP4_TAG_NIS_SERVER   41
#define HTTP_BOOT_DHCP4_TAG_NTP_SERVER   42
#define HTTP_BOOT_DHCP4_TAG_VENDOR   43
#define HTTP_BOOT_DHCP4_TAG_REQUEST_IP   50
#define HTTP_BOOT_DHCP4_TAG_LEASE   51
#define HTTP_BOOT_DHCP4_TAG_OVERLOAD   52
#define HTTP_BOOT_DHCP4_TAG_MSG_TYPE   53
#define HTTP_BOOT_DHCP4_TAG_SERVER_ID   54
#define HTTP_BOOT_DHCP4_TAG_PARA_LIST   55
#define HTTP_BOOT_DHCP4_TAG_MAXMSG   57
#define HTTP_BOOT_DHCP4_TAG_T1   58
#define HTTP_BOOT_DHCP4_TAG_T2   59
#define HTTP_BOOT_DHCP4_TAG_CLASS_ID   60
#define HTTP_BOOT_DHCP4_TAG_CLIENT_ID   61
#define HTTP_BOOT_DHCP4_TAG_TFTP   66
#define HTTP_BOOT_DHCP4_TAG_BOOTFILE   67
#define HTTP_BOOT_DHCP4_TAG_ARCH   93
#define HTTP_BOOT_DHCP4_TAG_UNDI   94
#define HTTP_BOOT_DHCP4_TAG_UUID   97
#define HTTP_BOOT_DHCP4_OVERLOAD_FILE   1
#define HTTP_BOOT_DHCP4_OVERLOAD_SERVER_NAME   2
#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE   0x000F
#define HTTP_BOOT_DHCP_RETRIES   4
#define HTTP_BOOT_OFFER_MAX_NUM   16
#define HTTP_BOOT_DHCP4_TAG_INDEX_BOOTFILE_LEN   0
#define HTTP_BOOT_DHCP4_TAG_INDEX_OVERLOAD   1
#define HTTP_BOOT_DHCP4_TAG_INDEX_MSG_TYPE   2
#define HTTP_BOOT_DHCP4_TAG_INDEX_SERVER_ID   3
#define HTTP_BOOT_DHCP4_TAG_INDEX_CLASS_ID   4
#define HTTP_BOOT_DHCP4_TAG_INDEX_BOOTFILE   5
#define HTTP_BOOT_DHCP4_TAG_INDEX_DNS_SERVER   6
#define HTTP_BOOT_DHCP4_TAG_INDEX_MAX   7
#define GET_NEXT_DHCP_OPTION(Opt)
#define GET_OPTION_BUFFER_LEN(Pkt)   ((Pkt)->Length - sizeof (EFI_DHCP4_HEADER) - 4)
#define DEFAULT_CLASS_ID_DATA   "HTTPClient:Arch:xxxxx:UNDI:003000"
#define DEFAULT_UNDI_TYPE   1
#define DEFAULT_UNDI_MAJOR   3
#define DEFAULT_UNDI_MINOR   0

Enumerations

enum  HTTP_BOOT_OFFER_TYPE {
  HttpOfferTypeDhcpIpUri, HttpOfferTypeDhcpNameUriDns, HttpOfferTypeDhcpDns, HttpOfferTypeDhcpOnly,
  HttpOfferTypeProxyNameUri, HttpOfferTypeProxyIpUri, HttpOfferTypeDhcpNameUri, HttpOfferTypeMax
}

Functions

EFI_STATUS HttpBootDhcp4Dora (IN HTTP_BOOT_PRIVATE_DATA *Private)
EFI_STATUS HttpBootRegisterIp4Dns (IN HTTP_BOOT_PRIVATE_DATA *Private, IN UINTN DataLength, IN VOID *DnsServerData)

Detailed Description

Functions declaration related with DHCPv4 for HTTP boot driver.

Copyright (c) 2015, 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 that 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.


Define Documentation

#define DEFAULT_CLASS_ID_DATA   "HTTPClient:Arch:xxxxx:UNDI:003000"

#define DEFAULT_UNDI_MAJOR   3

#define DEFAULT_UNDI_MINOR   0

#define DEFAULT_UNDI_TYPE   1

#define EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE   0x000F

HTTP Tag definition that identifies the processor and programming environment of the client system. These identifiers are defined by IETF: http://www.ietf.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml

Referenced by HttpBootBuildDhcp4Options().

#define GET_NEXT_DHCP_OPTION ( Opt   ) 

Value:

(EFI_DHCP4_PACKET_OPTION *) ((UINT8 *) (Opt) + \
   sizeof (EFI_DHCP4_PACKET_OPTION) + (Opt)->Length - 1)

Referenced by HttpBootBuildDhcp4Options(), and PxeBcBuildDhcp4Options().

#define GET_OPTION_BUFFER_LEN ( Pkt   )     ((Pkt)->Length - sizeof (EFI_DHCP4_HEADER) - 4)

#define HTTP_BOOT_DHCP4_MAGIC   0x63538263

#define HTTP_BOOT_DHCP4_MSG_TYPE_REQUEST   3

#define HTTP_BOOT_DHCP4_OPCODE_REPLY   2

#define HTTP_BOOT_DHCP4_OPCODE_REQUEST   1

#define HTTP_BOOT_DHCP4_OPTION_MAX_NUM   16

Referenced by HttpBootDhcp4Dora().

#define HTTP_BOOT_DHCP4_OPTION_MAX_SIZE   312

Referenced by HttpBootDhcp4Dora().

#define HTTP_BOOT_DHCP4_OVERLOAD_FILE   1

#define HTTP_BOOT_DHCP4_OVERLOAD_SERVER_NAME   2

#define HTTP_BOOT_DHCP4_PACKET_MAX_SIZE   1472

#define HTTP_BOOT_DHCP4_TAG_ARCH   93

#define HTTP_BOOT_DHCP4_TAG_BOOTFILE   67

#define HTTP_BOOT_DHCP4_TAG_BOOTFILE_LEN   13

#define HTTP_BOOT_DHCP4_TAG_BROADCAST   28

#define HTTP_BOOT_DHCP4_TAG_CLASS_ID   60

#define HTTP_BOOT_DHCP4_TAG_CLIENT_ID   61

#define HTTP_BOOT_DHCP4_TAG_DNS_SERVER   6

#define HTTP_BOOT_DHCP4_TAG_DOMAINNAME   15

#define HTTP_BOOT_DHCP4_TAG_DUMP   14

#define HTTP_BOOT_DHCP4_TAG_EMTU   22

#define HTTP_BOOT_DHCP4_TAG_EOP   255

#define HTTP_BOOT_DHCP4_TAG_EXTEND_PATH   18

#define HTTP_BOOT_DHCP4_TAG_HOSTNAME   12

#define HTTP_BOOT_DHCP4_TAG_INDEX_BOOTFILE   5

#define HTTP_BOOT_DHCP4_TAG_INDEX_BOOTFILE_LEN   0

#define HTTP_BOOT_DHCP4_TAG_INDEX_CLASS_ID   4

#define HTTP_BOOT_DHCP4_TAG_INDEX_DNS_SERVER   6

#define HTTP_BOOT_DHCP4_TAG_INDEX_MAX   7

#define HTTP_BOOT_DHCP4_TAG_INDEX_MSG_TYPE   2

#define HTTP_BOOT_DHCP4_TAG_INDEX_OVERLOAD   1

#define HTTP_BOOT_DHCP4_TAG_INDEX_SERVER_ID   3

#define HTTP_BOOT_DHCP4_TAG_LEASE   51

#define HTTP_BOOT_DHCP4_TAG_MAXMSG   57

Referenced by HttpBootDhcp4CallBack().

#define HTTP_BOOT_DHCP4_TAG_MSG_TYPE   53

#define HTTP_BOOT_DHCP4_TAG_NAME_SERVER   5

#define HTTP_BOOT_DHCP4_TAG_NETMASK   1

#define HTTP_BOOT_DHCP4_TAG_NIS_DOMAIN   40

#define HTTP_BOOT_DHCP4_TAG_NIS_SERVER   41

#define HTTP_BOOT_DHCP4_TAG_NTP_SERVER   42

#define HTTP_BOOT_DHCP4_TAG_OVERLOAD   52

#define HTTP_BOOT_DHCP4_TAG_PAD   0

#define HTTP_BOOT_DHCP4_TAG_PARA_LIST   55

#define HTTP_BOOT_DHCP4_TAG_REQUEST_IP   50

#define HTTP_BOOT_DHCP4_TAG_ROOTPATH   17

#define HTTP_BOOT_DHCP4_TAG_ROUTER   3

#define HTTP_BOOT_DHCP4_TAG_SERVER_ID   54

#define HTTP_BOOT_DHCP4_TAG_T1   58

#define HTTP_BOOT_DHCP4_TAG_T2   59

#define HTTP_BOOT_DHCP4_TAG_TFTP   66

#define HTTP_BOOT_DHCP4_TAG_TIME_OFFSET   2

#define HTTP_BOOT_DHCP4_TAG_TIME_SERVER   4

#define HTTP_BOOT_DHCP4_TAG_TTL   23

#define HTTP_BOOT_DHCP4_TAG_UNDI   94

#define HTTP_BOOT_DHCP4_TAG_UUID   97

#define HTTP_BOOT_DHCP4_TAG_VENDOR   43

#define HTTP_BOOT_DHCP_RETRIES   4

Referenced by HttpBootDhcp4Dora().

#define HTTP_BOOT_OFFER_MAX_NUM   16


Enumeration Type Documentation

DHCP offer types among HTTP boot. Dhcp4 and Dhcp6 share this definition, and corresponding relatioinship is as follows: Dhcp4Discover <> Dhcp6Solicit Dhcp4Offer <> Dhcp6Advertise Dhcp4Request <> Dhcp6Request Dhcp4Ack <> DHcp6Reply

Enumerator:
HttpOfferTypeDhcpIpUri 
HttpOfferTypeDhcpNameUriDns 
HttpOfferTypeDhcpDns 
HttpOfferTypeDhcpOnly 
HttpOfferTypeProxyNameUri 
HttpOfferTypeProxyIpUri 
HttpOfferTypeDhcpNameUri 
HttpOfferTypeMax 


Function Documentation

EFI_STATUS HttpBootDhcp4Dora ( IN HTTP_BOOT_PRIVATE_DATA Private  ) 

Start the D.O.R.A DHCPv4 process to acquire the IPv4 address and other Http boot information.

Parameters:
[in] Private Pointer to HTTP_BOOT private data.
Return values:
EFI_SUCCESS The D.O.R.A process successfully finished.
Others Failed to finish the D.O.R.A process.
Start the D.O.R.A DHCPv4 process to acquire the IPv4 address and other Http boot information.

Parameters:
[in] Private Pointer to HTTP boot driver private data.
Return values:
EFI_SUCCESS The D.O.R.A process successfully finished.
Others Failed to finish the D.O.R.A process.

References HTTP_BOOT_DHCP4_OPTION_MAX_NUM, HTTP_BOOT_DHCP4_OPTION_MAX_SIZE, HTTP_BOOT_DHCP_RETRIES, HttpBootBuildDhcp4Options(), HttpBootDhcp4CallBack(), HttpBootRegisterIp4Gateway(), HttpBootSetIpPolicy(), HttpBootShowIp4Addr(), and mHttpDhcpTimeout.

Referenced by HttpBootDhcp().

EFI_STATUS HttpBootRegisterIp4Dns ( IN HTTP_BOOT_PRIVATE_DATA Private,
IN UINTN  DataLength,
IN VOID *  DnsServerData 
)

This function will register the default DNS addresses to the network device.

Parameters:
[in] Private The pointer to HTTP_BOOT_PRIVATE_DATA.
[in] DataLength Size of the buffer pointed to by DnsServerData in bytes.
[in] DnsServerData Point a list of DNS server address in an array of EFI_IPv4_ADDRESS instances.
Return values:
EFI_SUCCESS The DNS configuration has been configured successfully.
Others Failed to configure the address.

Referenced by HttpBootExtractUriInfo().


Generated on Mon Sep 28 08:49:05 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1