Mon, Jan 22, 2018 at 07:07:53AM CET, ro...@cumulusnetworks.com wrote:
>From: Roopa Prabhu <ro...@cumulusnetworks.com>
>
>It takes 1sec for bond link down notification to hit user-space
>when all slaves of the bond go down. 1sec is too long for
>protocol daemons in user-space relying on bond link notification
>to failover/recover (eg: multichassis lag implementations in user-space).
>Since the link event code already marks team device port link events
> urgent, this patch does the same for bonding link events.
>
>Signed-off-by: Roopa Prabhu <ro...@cumulusnetworks.com>
>---
> net/core/link_watch.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/net/core/link_watch.c b/net/core/link_watch.c
>index 9828616..63bb2ad 100644
>--- a/net/core/link_watch.c
>+++ b/net/core/link_watch.c
>@@ -92,7 +92,7 @@ static bool linkwatch_urgent_event(struct net_device *dev)
>       if (dev->ifindex != dev_get_iflink(dev))
>               return true;
> 
>-      if (dev->priv_flags & IFF_TEAM_PORT)
>+      if (dev->priv_flags & (IFF_TEAM_PORT | IFF_BONDING))

Don't you want to do that for bonding slaves? IFF_BONDING is set for
both master and slave. netif_is_bond_slave() helper checks that. In fact
netif_is_team_port() should be used here instead of checking IFF_TEAM_PORT
directly. And then you can use netif_is_lag_port() to check them both.



>               return true;
> 
>       return netif_carrier_ok(dev) && qdisc_tx_changing(dev);
>-- 
>2.1.4
>

Reply via email to