bonding: Turn on IFF_UNICAST_FLT on bond devices
authorVlad Yasevich <vyasevic@redhat.com>
Wed, 4 Jun 2014 20:23:36 +0000 (16:23 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Jun 2014 22:13:54 +0000 (15:13 -0700)
Bonding devices manage the unicast filters of the underlying
interfaces, but do not turn on IFF_UNICAST_FLT flag.  Thus
anytime a unicast address is added to the bond, the bond is
places in promiscuous mode.

Turn on IFF_UNICAST_FLT on the bond device so that the bond does
not go into promiscuous mode needlesly.  If an underlying device
does not support unicast filtering, that device will automaticall
enter promiscuous mode already.

Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c

index 59a12c61ceb4eeb758c393126b56004a57a12869..a89bf18caa798eed3c754b1e27c9fe46abcbb3ee 100644 (file)
@@ -3945,7 +3945,7 @@ void bond_setup(struct net_device *bond_dev)
        /* Initialize the device options */
        bond_dev->tx_queue_len = 0;
        bond_dev->flags |= IFF_MASTER|IFF_MULTICAST;
-       bond_dev->priv_flags |= IFF_BONDING;
+       bond_dev->priv_flags |= IFF_BONDING | IFF_UNICAST_FLT;
        bond_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);
 
        /* At first, we block adding VLANs. That's the only way to