iPXE - Open Source Boot Firmware

[dhcp] Add generic facility for using cached network settings
authorJoshua Oreman <oremanj@rwcr.net>
Tue, 8 Dec 2009 08:40:50 +0000 (03:40 -0500)
committerMarty Connor <mdc@etherboot.org>
Wed, 20 Jan 2010 22:15:51 +0000 (17:15 -0500)
commitb1ba80f8fbe2377e992848c3c6e6eb55fbe6d909
tree7f999145480b9dfdfa8ab094230d395374de3303
parent337e1ed4b4aea8d73ced8077be1f78ac7b347ba6
[dhcp] Add generic facility for using cached network settings

When a DHCP session is started (using autoboot or a command-line `dhcp
net0'), check whether the new setting use-cached (DHCP option 175.178)
is TRUE; if so, skip DHCP and rely on currently registered
settings. This lets one combine a static IP with autoboot.

Before checking the use-cached setting, call a weak
get_cached_dhcpack() hook that can be implemented by particular builds
of gPXE supporting some fashion of retrieving a cached DHCPACK packet.
If one is available, it is registered as an options source, and then
either that packet's option 175.178 or the user's prior manual
use-cached setting can allow skipping duplicate DHCP.

Using cached packets is not the default because DHCP servers are often
configured to give gPXE different options than they give a vendor PXE
client; in order to break the infinite loop of PXE chaining, one would
need to load a gPXE with an embedded image that does something more
than autoboot.

Signed-off-by: Marty Connor <mdc@etherboot.org>
src/include/gpxe/dhcp.h
src/net/cachedhcp.c [new file with mode: 0644]
src/net/udp/dhcp.c
src/usr/dhcpmgmt.c