1. 09 Feb, 2016 1 commit
  2. 02 Nov, 2015 1 commit
  3. 24 Feb, 2015 1 commit
    • Mahesh Bandewar's avatar
      bonding: Implement port churn-machine (AD standard 43.4.17). · 14c9551a
      Mahesh Bandewar authored
      The Churn Detection machines detect the situation where a port is operable,
      but the Actor and Partner have not attached the link to an Aggregator and
      brought the link into operation within a bound time period. Under normal
      operation of the LACP, agreement between Actor and Partner should be reached
      very rapidly. Continued failure to reach agreement can be symptomatic of
      device failure.
      
      Actor-churn-detection state-machine
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@redhat.com>
      
      ===================================
      
      BEGIN=True + PortEnable=False
                 |
                 v
       +------------------------+   ActorPort.Sync=True  +------------------+
       |   ACTOR_CHURN_MONITOR  | ---------------------> |  NO_ACTOR_CHURN  |
       |========================|                        |==================|
       |    ActorChurn=False    |  ActorPort.Sync=False  | ActorChurn=False |
       | ActorChurn.Timer=Start | <--------------------- |                  |
       +------------------------+                        +------------------+
                 |                                                ^
                 |                                                |
        ActorChurn.Timer=Expired                                  |
                 |                                       ActorPort.Sync=True
                 |                                                |
                 |                +-----------------+             |
                 |                |   ACTOR_CHURN   |             |
                 |                |=================|             |
                 +--------------> | ActorChurn=True | ------------+
                                  |                 |
                                  +-----------------+
      
      Similar for the Partner-churn-detection.
      Signed-off-by: default avatarMahesh Bandewar <maheshb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      14c9551a
  4. 27 Jan, 2015 1 commit
  5. 10 Nov, 2014 1 commit
  6. 13 Sep, 2014 1 commit
  7. 17 Feb, 2014 1 commit
    • Jiri Bohac's avatar
      bonding: 802.3ad: make aggregator_identifier bond-private · 163c8ff3
      Jiri Bohac authored
      aggregator_identifier is used to assign unique aggregator identifiers
      to aggregators of a bond during device enslaving.
      
      aggregator_identifier is currently a global variable that is zeroed in
      bond_3ad_initialize().
      
      This sequence will lead to duplicate aggregator identifiers for eth1 and eth3:
      
      create bond0
      change bond0 mode to 802.3ad
      enslave eth0 to bond0 		//eth0 gets agg id 1
      enslave eth1 to bond0 		//eth1 gets agg id 2
      create bond1
      change bond1 mode to 802.3ad
      enslave eth2 to bond1		//aggregator_identifier is reset to 0
      				//eth2 gets agg id 1
      enslave eth3 to bond0 		//eth3 gets agg id 2
      
      Fix this by making aggregator_identifier private to the bond.
      Signed-off-by: default avatarJiri Bohac <jbohac@suse.cz>
      Acked-by: default avatarVeaceslav Falico <vfalico@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      163c8ff3
  8. 16 Feb, 2014 1 commit
  9. 01 Jan, 2014 1 commit
  10. 20 May, 2013 1 commit
  11. 12 Jun, 2012 1 commit
  12. 10 May, 2012 1 commit
    • Jiri Bohac's avatar
      bonding: don't increase rx_dropped after processing LACPDUs · 13a8e0c8
      Jiri Bohac authored
      Since commit 3aba891d, bonding processes LACP frames (802.3ad
      mode) with bond_handle_frame(). Currently a copy of the skb is
      made and the original is left to be processed by other
      rx_handlers and the rest of the network stack by returning
      RX_HANDLER_ANOTHER.  As there is no protocol handler for
      PKT_TYPE_LACPDU, the frame is dropped and dev->rx_dropped
      increased.
      
      Fix this by making bond_handle_frame() return RX_HANDLER_CONSUMED
      if bonding has processed the LACP frame.
      Signed-off-by: default avatarJiri Bohac <jbohac@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13a8e0c8
  13. 09 Jun, 2011 4 commits
  14. 13 May, 2011 1 commit
  15. 25 Apr, 2011 1 commit
    • Jiri Pirko's avatar
      bonding: move processing of recv handlers into handle_frame() · 3aba891d
      Jiri Pirko authored
      Since now when bonding uses rx_handler, all traffic going into bond
      device goes thru bond_handle_frame. So there's no need to go back into
      bonding code later via ptype handlers. This patch converts
      original ptype handlers into "bonding receive probes". These functions
      are called from bond_handle_frame and they are registered per-mode.
      
      Note that vlan packets are also handled because they are always untagged
      thanks to vlan_untag()
      
      Note that this also allows arpmon for eth-bond-bridge-vlan topology.
      Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3aba891d
  16. 07 Mar, 2011 1 commit
  17. 09 May, 2009 1 commit
  18. 01 Feb, 2009 1 commit
  19. 26 Dec, 2008 6 commits
  20. 17 Dec, 2008 1 commit
  21. 05 Nov, 2008 1 commit
    • Jay Vosburgh's avatar
      bonding: alternate agg selection policies for 802.3ad · fd989c83
      Jay Vosburgh authored
      	This patch implements alternative aggregator selection policies
      for 802.3ad.  The existing policy, now termed "stable," selects the active
      aggregator by greatest bandwidth, and only reselects a new aggregator
      if the active aggregator is entirely disabled (no more ports or all ports
      down).
      
      	This patch adds two new policies: bandwidth and count, selecting
      the active aggregator by total bandwidth (like the stable policy) or by
      the number of ports in the aggregator, respectively.  These two policies
      also differ from the stable policy in that they will reselect the active
      aggregator when availability-related changes occur in the bond (e.g.,
      link state change).
      
      	This permits "gang failover" within 802.3ad, allowing redundant
      aggregators along parallel paths to always maintain the "best" aggregator
      as the active aggregator (rather than having to wait for the active to
      entirely fail).
      
      	This patch also updates the driver version to 3.5.0.
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      fd989c83
  22. 23 Oct, 2007 1 commit
  23. 19 Oct, 2007 1 commit
    • Mathieu Desnoyers's avatar
      Change struct marker users · 1c3f0b8e
      Mathieu Desnoyers authored
      Prior to use struct marker in the linux kernel markers, we need to clean
      two drivers which use this structure name.
      
      Change bonding driver types :
      - struct marker to struct bond_marker.
      - marker_t to bond_marker_t.
      - marker_header to bond_marker_header.
      - marker_header_t to bond_marker_header_t.
      
      Change qla4xxx struct marker_entry usage :
      - Change struct marker_entry for struct qla4_marker_entry.
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Chad Tindel <ctindel@users.sourceforge.net>
      Cc: Jay Vosburgh <fubar@us.ibm.com>
      Cc: David Somayajulu <david.somayajulu@qlogic.com>
      Cc: James Bottomley <James.Bottomley@SteelEye.com>
      Cc: Ravi Anand <ravi.anand@qlogic.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1c3f0b8e
  24. 10 Oct, 2007 1 commit
  25. 29 Mar, 2006 1 commit
  26. 28 Nov, 2005 1 commit
  27. 29 Aug, 2005 1 commit
    • David S. Miller's avatar
      [NET]: Kill skb->real_dev · f2ccd8fa
      David S. Miller authored
      Bonding just wants the device before the skb_bond()
      decapsulation occurs, so simply pass that original
      device into packet_type->func() as an argument.
      
      It remains to be seen whether we can use this same
      exact thing to get rid of skb->input_dev as well.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f2ccd8fa
  28. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4