[DHCP] Add support for ProxyDHCP requests
authorMichael Brown <mcb30@etherboot.org>
Thu, 27 Mar 2008 16:31:31 +0000 (16:31 +0000)
committerMichael Brown <mcb30@etherboot.org>
Thu, 27 Mar 2008 16:45:15 +0000 (16:45 +0000)
commitaa74a7d53cb972775efb0f3412f9cbc3b929ee43
tree00df302e454b27eb8efcddf5e90fa02864c568e4
parentaf466aedf128ba6f1d81cfb9e32b1177063a16ef
[DHCP] Add support for ProxyDHCP requests

The PXE spec is (as usual) unclear on precisely when ProxyDHCPREQUESTs
should be issued.  We adapt the following, slightly paranoid approach:

  If an offer contains an IP address, then it is a normal DHCPOFFER.

  If an offer contains an option #60 "PXEClient", then it is a
  ProxyDHCPOFFER.  Note that the same packet can be both a normal
  DHCPOFFER and a ProxyDHCPOFFER.

  After receiving the normal DHCPACK, if we have received a
  ProxyDHCPOFFER, we unicast a ProxyDHCPREQUEST back to the ProxyDHCP
  server on port 4011.  If we time out waiting for a ProxyDHCPACK, we
  treat this as a non-fatal error.
src/include/gpxe/dhcp.h
src/net/fakedhcp.c
src/net/udp/dhcp.c