NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h File Reference


Data Structures

struct  PXEBC_DHCP4_OPTION_PARA
struct  PXEBC_DHCP4_OPTION_MAX_MESG_SIZE
struct  PXEBC_DHCP4_OPTION_UNDI
struct  PXEBC_DHCP4_OPTION_MESG
struct  PXEBC_DHCP4_OPTION_ARCH
struct  PXEBC_DHCP4_OPTION_CLID
struct  PXEBC_DHCP4_OPTION_UUID
struct  PXEBC_OPTION_BOOT_ITEM
union  PXEBC_DHCP4_OPTION_ENTRY
struct  PXEBC_BOOT_SVR_ENTRY
struct  PXEBC_BOOT_MENU_ENTRY
struct  PXEBC_MENU_PROMPT
struct  PXEBC_VENDOR_OPTION
union  PXEBC_DHCP4_PACKET
struct  PXEBC_DHCP4_PACKET_CACHE

Defines

#define PXEBC_DHCP4_OPTION_MAX_NUM   16
#define PXEBC_DHCP4_OPTION_MAX_SIZE   312
#define PXEBC_DHCP4_PACKET_MAX_SIZE   1472
#define PXEBC_DHCP4_S_PORT   67
#define PXEBC_DHCP4_C_PORT   68
#define PXEBC_BS_DOWNLOAD_PORT   69
#define PXEBC_BS_DISCOVER_PORT   4011
#define PXEBC_DHCP4_OPCODE_REQUEST   1
#define PXEBC_DHCP4_OPCODE_REPLY   2
#define PXEBC_DHCP4_MSG_TYPE_REQUEST   3
#define PXEBC_DHCP4_MAGIC   0x63538263
#define PXEBC_DHCP4_TAG_PAD   0
#define PXEBC_DHCP4_TAG_EOP   255
#define PXEBC_DHCP4_TAG_NETMASK   1
#define PXEBC_DHCP4_TAG_TIME_OFFSET   2
#define PXEBC_DHCP4_TAG_ROUTER   3
#define PXEBC_DHCP4_TAG_TIME_SERVER   4
#define PXEBC_DHCP4_TAG_NAME_SERVER   5
#define PXEBC_DHCP4_TAG_DNS_SERVER   6
#define PXEBC_DHCP4_TAG_HOSTNAME   12
#define PXEBC_DHCP4_TAG_BOOTFILE_LEN   13
#define PXEBC_DHCP4_TAG_DUMP   14
#define PXEBC_DHCP4_TAG_DOMAINNAME   15
#define PXEBC_DHCP4_TAG_ROOTPATH   17
#define PXEBC_DHCP4_TAG_EXTEND_PATH   18
#define PXEBC_DHCP4_TAG_EMTU   22
#define PXEBC_DHCP4_TAG_TTL   23
#define PXEBC_DHCP4_TAG_BROADCAST   28
#define PXEBC_DHCP4_TAG_NIS_DOMAIN   40
#define PXEBC_DHCP4_TAG_NIS_SERVER   41
#define PXEBC_DHCP4_TAG_NTP_SERVER   42
#define PXEBC_DHCP4_TAG_VENDOR   43
#define PXEBC_DHCP4_TAG_REQUEST_IP   50
#define PXEBC_DHCP4_TAG_LEASE   51
#define PXEBC_DHCP4_TAG_OVERLOAD   52
#define PXEBC_DHCP4_TAG_MSG_TYPE   53
#define PXEBC_DHCP4_TAG_SERVER_ID   54
#define PXEBC_DHCP4_TAG_PARA_LIST   55
#define PXEBC_DHCP4_TAG_MAXMSG   57
#define PXEBC_DHCP4_TAG_T1   58
#define PXEBC_DHCP4_TAG_T2   59
#define PXEBC_DHCP4_TAG_CLASS_ID   60
#define PXEBC_DHCP4_TAG_CLIENT_ID   61
#define PXEBC_DHCP4_TAG_TFTP   66
#define PXEBC_DHCP4_TAG_BOOTFILE   67
#define PXEBC_PXE_DHCP4_TAG_ARCH   93
#define PXEBC_PXE_DHCP4_TAG_UNDI   94
#define PXEBC_PXE_DHCP4_TAG_UUID   97
#define PXEBC_VENDOR_TAG_MTFTP_IP   1
#define PXEBC_VENDOR_TAG_MTFTP_CPORT   2
#define PXEBC_VENDOR_TAG_MTFTP_SPORT   3
#define PXEBC_VENDOR_TAG_MTFTP_TIMEOUT   4
#define PXEBC_VENDOR_TAG_MTFTP_DELAY   5
#define PXEBC_VENDOR_TAG_DISCOVER_CTRL   6
#define PXEBC_VENDOR_TAG_DISCOVER_MCAST   7
#define PXEBC_VENDOR_TAG_BOOT_SERVERS   8
#define PXEBC_VENDOR_TAG_BOOT_MENU   9
#define PXEBC_VENDOR_TAG_MENU_PROMPT   10
#define PXEBC_VENDOR_TAG_MCAST_ALLOC   11
#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES   12
#define PXEBC_VENDOR_TAG_BOOT_ITEM   71
#define PXEBC_BOOT_REQUEST_TIMEOUT   1
#define PXEBC_BOOT_REQUEST_RETRIES   4
#define PXEBC_DHCP4_OVERLOAD_FILE   1
#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME   2
#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN   0
#define PXEBC_DHCP4_TAG_INDEX_VENDOR   1
#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD   2
#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE   3
#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID   4
#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID   5
#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE   6
#define PXEBC_DHCP4_TAG_INDEX_MAX   7
#define BIT(x)   (1 << x)
#define CTRL(x)   (0x1F & (x))
#define DEFAULT_CLASS_ID_DATA   "PXEClient:Arch:xxxxx:UNDI:003000"
#define DEFAULT_UNDI_TYPE   1
#define DEFAULT_UNDI_MAJOR   3
#define DEFAULT_UNDI_MINOR   0
#define MTFTP_VENDOR_OPTION_BIT_MAP
#define DISCOVER_VENDOR_OPTION_BIT_MAP
#define IS_VALID_BOOT_SERVERS(x)
#define IS_VALID_BOOT_PROMPT(x)
#define IS_VALID_BOOT_MENU(x)
#define IS_VALID_MTFTP_VENDOR_OPTION(x)
#define IS_VALID_DISCOVER_VENDOR_OPTION(x)   (((UINT32) ((x)[0]) & DISCOVER_VENDOR_OPTION_BIT_MAP) != 0)
#define IS_VALID_CREDENTIAL_VENDOR_OPTION(x)
#define IS_VALID_BOOTITEM_VENDOR_OPTION(x)
#define SET_VENDOR_OPTION_BIT_MAP(x, y)   (*(x + ((y) / 32)) = (UINT32) ((UINT32) ((x)[(y) / 32]) | BIT ((y) % 32)))
#define GET_NEXT_DHCP_OPTION(Opt)
#define GET_OPTION_BUFFER_LEN(Pkt)   ((Pkt)->Length - sizeof (EFI_DHCP4_HEADER) - 4)
#define GET_NEXT_BOOT_SVR_ENTRY(Ent)
#define IS_PROXY_DHCP_OFFER(Offer)   EFI_IP4_EQUAL (&(Offer)->Dhcp4.Header.YourAddr, &mZeroIp4Addr)
#define IS_DISABLE_BCAST_DISCOVER(x)   (((x) & BIT (0)) == BIT (0))
#define IS_DISABLE_MCAST_DISCOVER(x)   (((x) & BIT (1)) == BIT (1))
#define IS_ENABLE_USE_SERVER_LIST(x)   (((x) & BIT (2)) == BIT (2))
#define IS_DISABLE_PROMPT_MENU(x)   (((x) & BIT (3)) == BIT (3))

Enumerations

enum  PXEBC_OFFER_TYPE {
  PxeOfferTypeDhcpOnly, PxeOfferTypeDhcpPxe10, PxeOfferTypeDhcpWfm11a, PxeOfferTypeDhcpBinl,
  PxeOfferTypeProxyPxe10, PxeOfferTypeProxyWfm11a, PxeOfferTypeProxyBinl, PxeOfferTypeBootp,
  PxeOfferTypeMax
}

Functions

VOID PxeBcSeedDhcp4Packet (OUT EFI_DHCP4_PACKET *Seed, IN EFI_UDP4_PROTOCOL *Udp4)
EFI_STATUS PxeBcParseDhcp4Packet (IN PXEBC_DHCP4_PACKET_CACHE *Cache4)
EFI_STATUS PxeBcDhcp4Discover (IN PXEBC_PRIVATE_DATA *Private, IN UINT16 Type, IN UINT16 *Layer, IN BOOLEAN UseBis, IN EFI_IP_ADDRESS *DestIp, IN UINT16 IpCount, IN EFI_PXE_BASE_CODE_SRVLIST *SrvList)
EFI_STATUS PxeBcSetIp4Policy (IN PXEBC_PRIVATE_DATA *Private)
EFI_STATUS PxeBcDhcp4Dora (IN PXEBC_PRIVATE_DATA *Private, IN EFI_DHCP4_PROTOCOL *Dhcp4)

Detailed Description

Functions declaration related with DHCPv4 for UefiPxeBc Driver.

Copyright (c) 2009 - 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 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.


Define Documentation

#define BIT (  )     (1 << x)

#define CTRL (  )     (0x1F & (x))

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

#define DEFAULT_UNDI_MAJOR   3

#define DEFAULT_UNDI_MINOR   0

#define DEFAULT_UNDI_TYPE   1

#define DISCOVER_VENDOR_OPTION_BIT_MAP

#define GET_NEXT_BOOT_SVR_ENTRY ( Ent   ) 

Value:

(PXEBC_BOOT_SVR_ENTRY *) ((UINT8 *) Ent + sizeof (*(Ent)) + \
   ((Ent)->IpCnt - 1) * sizeof (EFI_IPv4_ADDRESS))

Referenced by PxeBcExtractDiscoverInfo().

#define GET_NEXT_DHCP_OPTION ( Opt   ) 

Value:

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

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

#define IS_DISABLE_BCAST_DISCOVER (  )     (((x) & BIT (0)) == BIT (0))

#define IS_DISABLE_MCAST_DISCOVER (  )     (((x) & BIT (1)) == BIT (1))

#define IS_DISABLE_PROMPT_MENU (  )     (((x) & BIT (3)) == BIT (3))

#define IS_ENABLE_USE_SERVER_LIST (  )     (((x) & BIT (2)) == BIT (2))

#define IS_PROXY_DHCP_OFFER ( Offer   )     EFI_IP4_EQUAL (&(Offer)->Dhcp4.Header.YourAddr, &mZeroIp4Addr)

#define IS_VALID_BOOT_MENU (  ) 

#define IS_VALID_BOOT_PROMPT (  ) 

#define IS_VALID_BOOT_SERVERS (  ) 

#define IS_VALID_BOOTITEM_VENDOR_OPTION (  ) 

Value:

#define IS_VALID_CREDENTIAL_VENDOR_OPTION (  ) 

#define IS_VALID_DISCOVER_VENDOR_OPTION (  )     (((UINT32) ((x)[0]) & DISCOVER_VENDOR_OPTION_BIT_MAP) != 0)

#define IS_VALID_MTFTP_VENDOR_OPTION (  ) 

Value:

Referenced by PxeBcParseDhcp4Packet().

#define MTFTP_VENDOR_OPTION_BIT_MAP

#define PXEBC_BOOT_REQUEST_RETRIES   4

Referenced by PxeBcDhcp4Discover().

#define PXEBC_BOOT_REQUEST_TIMEOUT   1

Referenced by PxeBcDhcp4Discover().

#define PXEBC_BS_DISCOVER_PORT   4011

#define PXEBC_BS_DOWNLOAD_PORT   69

#define PXEBC_DHCP4_C_PORT   68

#define PXEBC_DHCP4_MAGIC   0x63538263

Referenced by PxeBcSeedDhcp4Packet().

#define PXEBC_DHCP4_MSG_TYPE_REQUEST   3

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_OPCODE_REPLY   2

#define PXEBC_DHCP4_OPCODE_REQUEST   1

Referenced by PxeBcSeedDhcp4Packet().

#define PXEBC_DHCP4_OPTION_MAX_NUM   16

#define PXEBC_DHCP4_OPTION_MAX_SIZE   312

#define PXEBC_DHCP4_OVERLOAD_FILE   1

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME   2

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_PACKET_MAX_SIZE   1472

#define PXEBC_DHCP4_S_PORT   67

Referenced by PxeBcDhcp4Discover().

#define PXEBC_DHCP4_TAG_BOOTFILE   67

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_BOOTFILE_LEN   13

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_BROADCAST   28

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_CLASS_ID   60

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_CLIENT_ID   61

#define PXEBC_DHCP4_TAG_DNS_SERVER   6

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_DOMAINNAME   15

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_DUMP   14

#define PXEBC_DHCP4_TAG_EMTU   22

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_EOP   255

#define PXEBC_DHCP4_TAG_EXTEND_PATH   18

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_HOSTNAME   12

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE   6

#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN   0

Referenced by PxeBcDhcp4BootInfo().

#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID   5

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_TAG_INDEX_MAX   7

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE   3

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD   2

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID   4

#define PXEBC_DHCP4_TAG_INDEX_VENDOR   1

Referenced by PxeBcParseDhcp4Packet().

#define PXEBC_DHCP4_TAG_LEASE   51

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_MAXMSG   57

#define PXEBC_DHCP4_TAG_MSG_TYPE   53

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_NAME_SERVER   5

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_NETMASK   1

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_NIS_DOMAIN   40

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_NIS_SERVER   41

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_NTP_SERVER   42

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_OVERLOAD   52

#define PXEBC_DHCP4_TAG_PAD   0

#define PXEBC_DHCP4_TAG_PARA_LIST   55

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_REQUEST_IP   50

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_ROOTPATH   17

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_ROUTER   3

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_SERVER_ID   54

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_T1   58

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_T2   59

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_TFTP   66

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_TIME_OFFSET   2

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_TIME_SERVER   4

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_TTL   23

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_DHCP4_TAG_VENDOR   43

#define PXEBC_PXE_DHCP4_TAG_ARCH   93

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_PXE_DHCP4_TAG_UNDI   94

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_PXE_DHCP4_TAG_UUID   97

Referenced by PxeBcBuildDhcp4Options().

#define PXEBC_VENDOR_TAG_BOOT_ITEM   71

#define PXEBC_VENDOR_TAG_BOOT_MENU   9

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_BOOT_SERVERS   8

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES   12

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_DISCOVER_CTRL   6

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_DISCOVER_MCAST   7

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MCAST_ALLOC   11

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MENU_PROMPT   10

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MTFTP_CPORT   2

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MTFTP_DELAY   5

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MTFTP_IP   1

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MTFTP_SPORT   3

Referenced by PxeBcParseVendorOptions().

#define PXEBC_VENDOR_TAG_MTFTP_TIMEOUT   4

Referenced by PxeBcParseVendorOptions().

#define SET_VENDOR_OPTION_BIT_MAP ( x,
 )     (*(x + ((y) / 32)) = (UINT32) ((UINT32) ((x)[(y) / 32]) | BIT ((y) % 32)))

Referenced by PxeBcParseVendorOptions().


Enumeration Type Documentation

Enumerator:
PxeOfferTypeDhcpOnly 
PxeOfferTypeDhcpPxe10 
PxeOfferTypeDhcpWfm11a 
PxeOfferTypeDhcpBinl 
PxeOfferTypeProxyPxe10 
PxeOfferTypeProxyWfm11a 
PxeOfferTypeProxyBinl 
PxeOfferTypeBootp 
PxeOfferTypeMax 


Function Documentation

EFI_STATUS PxeBcDhcp4Discover ( IN PXEBC_PRIVATE_DATA Private,
IN UINT16  Type,
IN UINT16 *  Layer,
IN BOOLEAN  UseBis,
IN EFI_IP_ADDRESS *  DestIp,
IN UINT16  IpCount,
IN EFI_PXE_BASE_CODE_SRVLIST *  SrvList 
)

Build and send out the request packet for the bootfile, and parse the reply.

Parameters:
[in] Private Pointer to PxeBc private data.
[in] Type PxeBc option boot item type.
[in] Layer Pointer to option boot item layer.
[in] UseBis Use BIS or not.
[in] DestIp Pointer to the server address.
[in] IpCount The total count of the server address.
[in] SrvList Pointer to EFI_PXE_BASE_CODE_SRVLIST.
Return values:
EFI_SUCCESS Successfully discovered boot file.
EFI_OUT_OF_RESOURCES Failed to allocate resource.
EFI_NOT_FOUND Can't get the PXE reply packet.
Others Failed to discover boot file.

References PXEBC_OPTION_BOOT_ITEM::Layer, PXEBC_BOOT_REQUEST_RETRIES, PXEBC_BOOT_REQUEST_TIMEOUT, PXEBC_BS_DISCOVER_PORT, PXEBC_DHCP4_OPTION_MAX_NUM, PXEBC_DHCP4_OPTION_MAX_SIZE, PXEBC_DHCP4_S_PORT, PXEBC_DHCP4_TAG_EOP, PXEBC_DHCP4_TAG_VENDOR, PXEBC_VENDOR_TAG_BOOT_ITEM, PxeBcBuildDhcp4Options(), PxeBcCacheDhcp4Packet(), and PXEBC_OPTION_BOOT_ITEM::Type.

Referenced by PxeBcDiscoverBootServer(), and PxeBcRetryBinlOffer().

EFI_STATUS PxeBcDhcp4Dora ( IN PXEBC_PRIVATE_DATA Private,
IN EFI_DHCP4_PROTOCOL *  Dhcp4 
)

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

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

References mPxeDhcpTimeout, PXEBC_DHCP4_OPTION_MAX_NUM, PXEBC_DHCP4_OPTION_MAX_SIZE, PXEBC_DHCP_RETRIES, PxeBcBuildDhcp4Options(), PxeBcDhcp4CallBack(), PxeBcFlushStationIp(), PxeBcHandleDhcp4Offer(), and PxeBcShowIp4Addr().

Referenced by EfiPxeBcDhcp().

EFI_STATUS PxeBcParseDhcp4Packet ( IN PXEBC_DHCP4_PACKET_CACHE Cache4  ) 

Parse the cached DHCPv4 packet, including all the options.

Parameters:
[in] Cache4 Pointer to cached DHCPv4 packet.
Return values:
EFI_SUCCESS Parsed the DHCPv4 packet successfully.
EFI_DEVICE_ERROR Failed to parse and invalid packet.
Parse the cached DHCPv4 packet, including all the options.

Parameters:
[in] Cache4 Pointer to cached DHCPv4 packet.
Return values:
EFI_SUCCESS Parsed the DHCPv4 packet successfully.
EFI_DEVICE_ERROR Failed to parse and invalid packet.

References DEFAULT_CLASS_ID_DATA, GET_OPTION_BUFFER_LEN, IS_VALID_DISCOVER_VENDOR_OPTION, IS_VALID_MTFTP_VENDOR_OPTION, mInterestedDhcp4Tags, PXEBC_DHCP4_OVERLOAD_FILE, PXEBC_DHCP4_OVERLOAD_SERVER_NAME, PXEBC_DHCP4_TAG_INDEX_BOOTFILE, PXEBC_DHCP4_TAG_INDEX_CLASS_ID, PXEBC_DHCP4_TAG_INDEX_MAX, PXEBC_DHCP4_TAG_INDEX_MSG_TYPE, PXEBC_DHCP4_TAG_INDEX_OVERLOAD, PXEBC_DHCP4_TAG_INDEX_VENDOR, PxeBcParseDhcp4Options(), PxeBcParseVendorOptions(), PxeOfferTypeBootp, PxeOfferTypeDhcpBinl, PxeOfferTypeDhcpOnly, PxeOfferTypeDhcpPxe10, PxeOfferTypeProxyBinl, and PxeOfferTypeProxyPxe10.

Referenced by EfiPxeBcDiscover(), PxeBcCacheDhcp4Offer(), PxeBcCopyDhcp4Ack(), PxeBcCopyProxyOffer(), and PxeBcRetryBinlOffer().

VOID PxeBcSeedDhcp4Packet ( OUT EFI_DHCP4_PACKET *  Seed,
IN EFI_UDP4_PROTOCOL *  Udp4 
)

Create a template DHCPv4 packet as a seed.

Parameters:
[out] Seed Pointer to the seed packet.
[in] Udp4 Pointer to EFI_UDP4_PROTOCOL.

References PXEBC_DHCP4_MAGIC, PXEBC_DHCP4_OPCODE_REQUEST, and PXEBC_DHCP4_TAG_EOP.

Referenced by EfiPxeBcStart().

EFI_STATUS PxeBcSetIp4Policy ( IN PXEBC_PRIVATE_DATA Private  ) 

Switch the Ip4 policy to static.

Parameters:
[in] Private The pointer to PXEBC_PRIVATE_DATA.
Return values:
EFI_SUCCESS The policy is already configured to static.
Others Other error as indicated..

References Policy.

Referenced by EfiPxeBcStart().


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