]> git.baikalelectronics.ru Git - kernel.git/commit
bonding: Improve IGMP join processing
authorJay Vosburgh <fubar@us.ibm.com>
Thu, 1 Mar 2007 01:03:37 +0000 (17:03 -0800)
committerJeff Garzik <jeff@garzik.org>
Tue, 6 Mar 2007 11:08:11 +0000 (06:08 -0500)
commitce99d022b090f9a1744f6d3bf54058c5534dcd91
treeaa47edb0c1e23be76d0fff783b9665221f2a84ef
parent3fb1d788a349fa0163492c9bfd81eedbd2e64cf6
bonding: Improve IGMP join processing

In active-backup mode, the current bonding code duplicates IGMP
traffic to all slaves, so that switches are up to date in case of a
failover from an active to a backup interface.  If bonding then fails
back to the original active interface, it is likely that the "active
slave" switch's IGMP forwarding for the port will be out of date until
some event occurs to refresh the switch (e.g., a membership query).

This patch alters the behavior of bonding to no longer flood
IGMP to all ports, and to issue IGMP JOINs to the newly active port at
the time of a failover.  This insures that switches are kept up to date
for all cases.

"GOELLESCH Niels" <niels.goellesch@eurocontrol.int> originally
reported this problem, and included a patch.  His original patch was
modified by Jay Vosburgh to additionally remove the existing IGMP flood
behavior, use RCU, streamline code paths, fix trailing white space, and
adjust for style.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/bonding/bond_main.c
include/linux/igmp.h
net/ipv4/igmp.c