summaryrefslogtreecommitdiffstats
path: root/src/drivers/net
diff options
context:
space:
mode:
authorMichael Brown2016-07-12 09:47:27 +0200
committerMichael Brown2016-07-12 10:01:01 +0200
commit45dd627689b73b7e80789d73c85d4a1080a7b8ea (patch)
tree4f7d2ac6224ce69f6ca19d16fefa887e51173e6a /src/drivers/net
parent[intel] Add PCI device ID for I219-V/LM (diff)
downloadipxe-45dd627689b73b7e80789d73c85d4a1080a7b8ea.tar.gz
ipxe-45dd627689b73b7e80789d73c85d4a1080a7b8ea.tar.xz
ipxe-45dd627689b73b7e80789d73c85d4a1080a7b8ea.zip
[ipv4] Send gratuitous ARPs whenever a new IPv4 address is applied
In a busy network (such as a public cloud), IPv4 addresses may be recycled rapidly. When this happens, unidirectional traffic (such as UDP syslog) will succeed, but bidirectional traffic (such as TCP connections) may fail due to stale ARP cache entries on other nodes. The remote ARP cache expiry timeout is likely to exceed iPXE's connection timeout, meaning that boot attempts can fail before the problem is automatically resolved. Fix by sending gratuitous ARPs whenever an IPv4 address is changed, to attempt to update stale remote ARP cache entries. Note that this is not a guaranteed fix, since ARP is an unreliable protocol. We avoid sending gratuitous ARPs unconditionally, since otherwise any unrelated settings change (e.g. "set dns 192.168.0.1") would cause unexpected gratuitous ARPs to be sent. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net')
0 files changed, 0 insertions, 0 deletions