bonding: fix broken multicast with round-robin mode
authorAndy Gospodarek <andy@greyhouse.net>
Thu, 25 Mar 2010 14:49:05 +0000 (14:49 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 27 Mar 2010 23:39:15 +0000 (16:39 -0700)
commita2fd940f4cff74b932728bd6ca12848da21a0234
treea0d065e07acd61a1c4ab52f5e67af60d5b31a31d
parent44ebb95290afcc687511ad3f7fd6434e867c270a
bonding: fix broken multicast with round-robin mode

Round-robin (mode 0) does nothing to ensure that any multicast traffic
originally destined for the host will continue to arrive at the host when
the link that sent the IGMP join or membership report goes down.  One of
the benefits of absolute round-robin transmit.

Keeping track of subscribed multicast groups for each slave did not seem
like a good use of resources, so I decided to simply send on the
curr_active slave of the bond (typically the first enslaved device that
is up).  This makes failover management simple as IGMP membership
reports only need to be sent when the curr_active_slave changes.  I
tested this patch and it appears to work as expected.

Originally reported by Lon Hohberger <lhh@redhat.com>.

Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
CC: Lon Hohberger <lhh@redhat.com>
CC: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c