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 retransmits 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.