Skip to content
Snippets Groups Projects
  1. May 06, 2010
    • WANG Cong's avatar
      bonding: make bonding support netpoll · f6dc31a8
      WANG Cong authored
      
      Based on Andy's work, but I modified a lot.
      
      Similar to the patch for bridge, this patch does:
      
      1) implement the 2 methods to support netpoll for bonding;
      
      2) modify netpoll during forwarding packets via bonding;
      
      3) disable netpoll support of bonding when a netpoll-unabled device
         is added to bonding;
      
      4) enable netpoll support when all underlying devices support netpoll.
      
      Cc: Andy Gospodarek <gospo@redhat.com>
      Cc: Jeff Moyer <jmoyer@redhat.com>
      Cc: Matt Mackall <mpm@selenic.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Jay Vosburgh <fubar@us.ibm.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarWANG Cong <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f6dc31a8
  2. Apr 03, 2010
  3. Apr 01, 2010
    • Amerigo Wang's avatar
      bonding: fix potential deadlock in bond_uninit() · 9e2e61fb
      Amerigo Wang authored
      
      bond_uninit() is invoked with rtnl_lock held, when it does destroy_workqueue()
      which will potentially flush all works in this workqueue, if we hold rtnl_lock
      again in the work function, it will deadlock.
      
      So move destroy_workqueue() to destructor where rtnl_lock is not held any more,
      suggested by Eric.
      
      Signed-off-by: default avatarWANG Cong <amwang@redhat.com>
      Cc: Jay Vosburgh <fubar@us.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Cc: Jiri Pirko <jpirko@redhat.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e2e61fb
  4. Mar 31, 2010
  5. Mar 27, 2010
    • Andy Gospodarek's avatar
      bonding: fix broken multicast with round-robin mode · a2fd940f
      Andy Gospodarek authored
      
      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: default avatarAndy Gospodarek <andy@greyhouse.net>
      CC: Lon Hohberger <lhh@redhat.com>
      CC: Jay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2fd940f
  6. Mar 24, 2010
  7. Mar 21, 2010
  8. Mar 20, 2010
  9. Mar 18, 2010
  10. Mar 07, 2010
  11. Feb 27, 2010
  12. Feb 03, 2010
  13. Jan 28, 2010
  14. Jan 17, 2010
  15. Jan 03, 2010
    • Andy Gospodarek's avatar
      bonding: allow arp_ip_targets on separate vlans to use arp validation · 1f3c8804
      Andy Gospodarek authored
      
      This allows a bond device to specify an arp_ip_target as a host that is
      not on the same vlan as the base bond device and still use arp
      validation.  A configuration like this, now works:
      
      BONDING_OPTS="mode=active-backup arp_interval=1000 arp_ip_target=10.0.100.1 arp_validate=3"
      
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
          inet6 ::1/128 scope host
             valid_lft forever preferred_lft forever
      2: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 qlen 1000
          link/ether 00:13:21:be:33:e9 brd ff:ff:ff:ff:ff:ff
      3: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 qlen 1000
          link/ether 00:13:21:be:33:e9 brd ff:ff:ff:ff:ff:ff
      8: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue
          link/ether 00:13:21:be:33:e9 brd ff:ff:ff:ff:ff:ff
          inet6 fe80::213:21ff:febe:33e9/64 scope link
             valid_lft forever preferred_lft forever
      9: bond0.100@bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue
          link/ether 00:13:21:be:33:e9 brd ff:ff:ff:ff:ff:ff
          inet 10.0.100.2/24 brd 10.0.100.255 scope global bond0.100
          inet6 fe80::213:21ff:febe:33e9/64 scope link
             valid_lft forever preferred_lft forever
      
      Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
      
      Bonding Mode: fault-tolerance (active-backup)
      Primary Slave: None
      Currently Active Slave: eth1
      MII Status: up
      MII Polling Interval (ms): 0
      Up Delay (ms): 0
      Down Delay (ms): 0
      ARP Polling Interval (ms): 1000
      ARP IP target/s (n.n.n.n form): 10.0.100.1
      
      Slave Interface: eth1
      MII Status: up
      Link Failure Count: 1
      Permanent HW addr: 00:40:05:30:ff:30
      
      Slave Interface: eth0
      MII Status: up
      Link Failure Count: 0
      Permanent HW addr: 00:13:21:be:33:e9
      
      Signed-off-by: default avatarAndy Gospodarek <andy@greyhouse.net>
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f3c8804
  16. Dec 26, 2009
  17. Dec 13, 2009
  18. Dec 04, 2009
  19. Dec 03, 2009
  20. Dec 01, 2009
  21. Nov 18, 2009
  22. Nov 15, 2009
    • Jay Vosburgh's avatar
      bonding: fix 802.3ad standards compliance error · 2d6682db
      Jay Vosburgh authored
      
      The language of 802.3ad 43.4.9 requires the "recordPDU" function
      to, in part, compare the Partner parameter values in a received LACPDU
      to the stored Actor values.  If those match, then the Partner's
      synchronization state is set to true.
      
      	The current 802.3ad implementation is performing these steps out
      of order; first, the synchronization check is done, then the paramters are
      checked to see if they match (the synch check being done against a match
      check of a prior LACPDU).  This causes delays in establishing aggregators
      in some circumstances.
      
      	This patch modifies the 802.3ad code to call __choose_matched,
      the function that does the "match" comparisions, as the first step of
      __record_pdu, instead of immediately afterwards.  This new behavior is
      in compliance with the language of the standard.
      
      	Some additional commentary relating to code vs. standard is also
      added.
      
      	Reported by Martin Patterson <martin@gear6.com> who also supplied
      the logic of the fix and verified the patch.
      
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2d6682db
  23. Oct 30, 2009
  24. Oct 28, 2009
    • Jiri Bohac's avatar
      bonding: fix a race condition in calls to slave MII ioctls · d9d52832
      Jiri Bohac authored
      
      In mii monitor mode, bond_check_dev_link() calls the the ioctl
      handler of slave devices. It stores the ndo_do_ioctl function
      pointer to a static (!) ioctl variable and later uses it to call the
      handler with the IOCTL macro.
      
      If another thread executes bond_check_dev_link() at the same time
      (even with a different bond, which none of the locks prevent), a
      race condition occurs. If the two racing slaves have different
      drivers, this may result in one driver's ioctl handler being
      called with a pointer to a net_device controlled with a different
      driver, resulting in unpredictable breakage.
      
      Unless I am overlooking something, the "static" must be a
      copy'n'paste error (?).
      
      Signed-off-by: default avatarJiri Bohac <jbohac@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d9d52832
  25. Oct 27, 2009
  26. Oct 24, 2009
  27. Oct 13, 2009
  28. Oct 11, 2009
  29. Oct 07, 2009
  30. Oct 01, 2009
  31. Sep 21, 2009
Loading