]> git.baikalelectronics.ru Git - kernel.git/commit
ipv4: arp: update neighbour address when a gratuitous arp is received and arp_accept...
authorSalam Noureddine <noureddine@aristanetworks.com>
Tue, 24 Dec 2013 22:17:02 +0000 (14:17 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 2 Jan 2014 05:08:38 +0000 (00:08 -0500)
commit59fc9ff96b4fd9d87331223f506bff5d56d1b092
treecf2b3afdd11d5a2a9244afcc36b22e11dfd69c3c
parentda0b98c55d90f692d748232d0b5a98c6124e9b6b
ipv4: arp: update neighbour address when a gratuitous arp is received and arp_accept is set

Gratuitous arp packets are useful in switchover scenarios to update
client arp tables as quickly as possible. Currently, the mac address
of a neighbour is only updated after a locktime period has elapsed
since the last update. In most use cases such delays are unacceptable
for network admins. Moreover, the "updated" field of the neighbour
stucture doesn't record the last time the address of a neighbour
changed but records any change that happens to the neighbour. This is
clearly a bug since locktime uses that field as meaning "addr_updated".
With this observation, I was able to perpetuate a stale address by
sending a stream of gratuitous arp packets spaced less than locktime
apart. With this change the address is updated when a gratuitous arp
is received and the arp_accept sysctl is set.

Signed-off-by: Salam Noureddine <noureddine@aristanetworks.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/arp.c