opengnsys_ipxe/src/net
Joshua Oreman 5efc2fcb60 [dhcp] Keep multiple DHCP offers received, and use them intelligently
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>
2010-01-21 18:36:26 -05:00
..
80211 [802.11] Allow connecting to spectrum managed networks 2010-01-05 10:16:25 -05:00
infiniband [infiniband] Rename IB_PKEY_NONE to IB_PKEY_DEFAULT 2009-11-16 22:14:36 +00:00
tcp [ftp] User and password URI support for the FTP protocol 2010-01-20 18:18:47 -05:00
udp [dhcp] Keep multiple DHCP offers received, and use them intelligently 2010-01-21 18:36:26 -05:00
aoe.c [netdevice] Make ll_broadcast per-netdevice rather than per-ll_protocol 2009-07-17 23:02:48 +01:00
arp.c [netdevice] Make ll_broadcast per-netdevice rather than per-ll_protocol 2009-07-17 23:02:48 +01:00
cachedhcp.c [dhcp] Add generic facility for using cached network settings 2010-01-20 17:15:51 -05:00
dhcpopts.c [dhcp] Append new DHCP options versus prepend 2010-01-14 11:14:24 -05:00
dhcppkt.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
eapol.c [eapol] Add basic support for 802.1X EAP over LANs 2010-01-05 09:18:12 -05:00
ethernet.c [netdevice] Add the concept of an "Ethernet-compatible" MAC address 2009-10-23 22:14:05 +01:00
fakedhcp.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
icmp.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
icmpv6.c [tcpip] Allow for transmission to multicast IPv4 addresses 2009-01-21 03:40:39 +00:00
infiniband.c [infiniband] Rename IB_PKEY_NONE to IB_PKEY_DEFAULT 2009-11-16 22:14:36 +00:00
iobpad.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
ipv4.c [ipv4] Ignore non-open net devices when performing routing 2009-11-16 22:12:48 +00:00
ipv6.c [tcpip] Allow for transmission to multicast IPv4 addresses 2009-01-21 03:40:39 +00:00
mii.c [ethernet] Add MII link status functions from Linux 2009-05-26 11:37:46 +01:00
ndp.c Kill off some warnings-problematic debug statements in ndp.c; the code 2007-12-07 01:51:08 +00:00
netdev_settings.c [settings] Add Bus ID setting 2009-12-14 17:54:53 +00:00
netdevice.c [netdevice] Allow the hardware and link-layer addresses to differ in size 2009-08-12 00:23:38 +01:00
nullnet.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
rarp.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
retry.c [process] Make it safe to call process_add() multiple times 2009-08-10 19:27:24 +01:00
tcp.c [tcp] Avoid printf format warnings on some compilers 2009-08-02 22:44:57 +01:00
tcpip.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
tls.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
udp.c [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00