]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitaddbf86b0abc511bb210398acc174d9cbf64bfdf
treea0d065e07acd61a1c4ab52f5e67af60d5b31a31d
parent974963873d8c8ab2d8b03be1bcba2c34e65b61d2
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