1. 06 Mar, 2007 3 commits
    • Jay Vosburgh's avatar
      bonding: Improve IGMP join processing · a816c7c7
      Jay Vosburgh authored
      	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: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      a816c7c7
    • Jay Vosburgh's avatar
      bonding: only receive ARPs for us · e245cb71
      Jay Vosburgh authored
      	The ARP validation code only needs ARPs for the bonding device.
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      e245cb71
    • Jay Vosburgh's avatar
      bonding: fix double dev_add_pack · c4f283b1
      Jay Vosburgh authored
      	Bonding can erroneously register the same packet_type to receive
      ARPs (for use by ARP validation): once at device open time, and once via
      sysfs.  Since sysfs can change the validate setting (and thus register
      or unregister) at any time, a flag is needed to synchronize with device
      open in order to avoid double registrations, and the simplest place is
      within the packet_type structure itself.  Double unregister is not an
      issue.
      
      	Bug reported by Ulrich Oelmann <ulrich.oelmann@web.de>.
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      c4f283b1
  2. 05 Mar, 2007 37 commits