mirror of https://github.com/ipxe/ipxe.git
Instead of keeping only the best IP and PXE offers, store all of them, and pick the best to use just before a request is sent. This allows priority differentiation to work even when lower-priority offers provide PXE options, and improves robustness at sites with broken PXE servers intermingled with working ones: when a ProxyDHCP request times out, instead of giving up, we try the next PXE offer we've received. It also allows us to avoid breaking up combined IP+PXE offers, which can be important with some firewall configurations. This behavior matches that of most vendor PXE ROMs. Store a reference to the DHCPOFFER packet in the offer structure, so that when registering settings after a successful ACK we can register the proxy PXE settings we originally received; this removes the need for a nonstandard duplicate REQUEST/ACK to port 67 of proxy servers like dnsmasq that provide PXE options in the OFFER. Total cost: 450 bytes uncompressed. Signed-off-by: Marty Connor <mdc@etherboot.org> |
||
---|---|---|
.. | ||
80211 | ||
infiniband | ||
tcp | ||
udp | ||
aoe.c | ||
arp.c | ||
cachedhcp.c | ||
dhcpopts.c | ||
dhcppkt.c | ||
eapol.c | ||
ethernet.c | ||
fakedhcp.c | ||
icmp.c | ||
icmpv6.c | ||
infiniband.c | ||
iobpad.c | ||
ipv4.c | ||
ipv6.c | ||
mii.c | ||
ndp.c | ||
netdev_settings.c | ||
netdevice.c | ||
nullnet.c | ||
rarp.c | ||
retry.c | ||
tcp.c | ||
tcpip.c | ||
tls.c | ||
udp.c |