[dhcp] Add preliminary support for PXE Boot Servers

Some PXE configurations require us to perform a third DHCP transaction
(in addition to the real DHCP transaction and the ProxyDHCP
transaction) in order to retrieve information from a "Boot Server".

This is an experimental implementation, since the actual behaviour is
not well specified in the PXE spec.
This commit is contained in:
Michael Brown
2009-01-21 03:43:26 +00:00
parent d230b53df2
commit 6941793416
3 changed files with 109 additions and 1 deletions

View File

@@ -81,6 +81,9 @@ struct dhcp_packet;
/** Vendor encapsulated options */
#define DHCP_VENDOR_ENCAP 43
/** PXE boot server multicast address */
#define DHCP_PXE_BOOT_SERVER_MCAST DHCP_ENCAP_OPT ( DHCP_VENDOR_ENCAP, 7 )
/** Requested IP address */
#define DHCP_REQUESTED_ADDRESS 50
@@ -480,6 +483,9 @@ struct dhcphdr {
/** Settings block name used for ProxyDHCP responses */
#define PROXYDHCP_SETTINGS_NAME "proxydhcp"
/** Setting block name used for BootServerDHCP responses */
#define BSDHCP_SETTINGS_NAME "bs"
extern int dhcp_create_packet ( struct dhcp_packet *dhcppkt,
struct net_device *netdev, uint8_t msgtype,
struct dhcp_options *options,