bonding: Gratuitous ARP gets dropped when first slave added
Subsystems (3)
PATCH 1/1 bonding: Gratuitous ARP gets dropped when first slave added
When the first slave is added (such as during bootup) the first gratuitous ARP gets dropped. We don't see this drop during a failover. The packet gets dropped in qdisc (noop_enqueue).
The fix is to delay the sending of gratuitous ARPs till the bond dev's carrier is present.
It can also be worked around by setting num_grat_arp to more than 1.
--- drivers/net/bonding/bond_main.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/bonding/bond_main.c +1 -0
@@ -786,6 +786,7 @@ static bool bond_should_notify_peers(struct bonding *bond) slave ? slave->dev->name : "NULL");if (!slave || !bond->send_peer_notif || + !netif_carrier_ok (bond->dev) ||test_bit (__LINK_STATE_LINKWATCH_PENDING, &slave->dev->state))return false;
Signature · 1 line
1.8.2.1
From: Venkat Venkatsubra <[email protected]>
Date: Tue, 11 Aug 2015 07:57:23 -0700
Quoted 10 lines
When the first slave is added (such as during bootup) the first gratuitous ARP gets dropped. We don't see this drop during a failover. The packet gets dropped in qdisc (
noop_enqueue).The fix is to delay the sending of gratuitous ARPs till the bond dev's carrier is present.
It can also be worked around by setting
num_grat_arpto more than 1.Signed-off-by Venkat Venkatsubra <[email protected]>
Applied, thanks.