svn commit: r306577 - head/sys/netinet
Kubilay Kocak
koobs at FreeBSD.org
Sun Oct 30 09:45:33 UTC 2016
On 2/10/2016 12:42 PM, Eric van Gyzen wrote:
> Author: vangyzen Date: Sun Oct 2 01:42:45 2016 New Revision: 306577
> URL: https://svnweb.freebsd.org/changeset/base/306577
>
> Log: Add GARP retransmit capability
>
> A single gratuitous ARP (GARP) is always transmitted when an IPv4
> address is added to an interface, and that is usually sufficient.
> However, in some circumstances, such as when a shared address is
> passed between cluster nodes, this single GARP may occasionally be
> dropped or lost. This can lead to neighbors on the network link
> working with a stale ARP cache and sending packets destined for that
> address to the node that previously owned the address, which may not
> respond.
>
> To avoid this situation, GARP retransmissions can be enabled by
> setting the net.link.ether.inet.garp_rexmit_count sysctl to a value
> greater than zero. The setting represents the maximum number of
> retransmissions. The interval between retransmissions is calculated
> using an exponential backoff algorithm, doubling each time, so the
> retransmission intervals are: {1, 2, 4, 8, 16, ...} (seconds).
>
> Due to the exponential backoff algorithm used for the interval
> between GARP retransmissions, the maximum number of retransmissions
> is limited to 16 for sanity. This limit corresponds to a maximum
> interval between retransmissions of 2^16 seconds ~= 18 hours.
> Increasing this limit is possible, but sending out GARPs spaced days
> apart would be of little use.
>
Thanks for this David & Eric
I presume this is (or would be) quite complementary to D4111 [1]
(Gratuitous ARP's for lagg(4) failover) when it lands? I'm thinking
particularly given the various states upstream switch ports can have
during topology changes.
[1] https://reviews.freebsd.org/D4111
./koobs
More information about the svn-src-all
mailing list