1. 13 11月, 2008 1 次提交
    • W
      netdevice: safe convert to netdev_priv() #part-1 · 454d7c9b
      Wang Chen 提交于
      We have some reasons to kill netdev->priv:
      1. netdev->priv is equal to netdev_priv().
      2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously
         netdev_priv() is more flexible than netdev->priv.
      But we cann't kill netdev->priv, because so many drivers reference to it
      directly.
      
      This patch is a safe convert for netdev->priv to netdev_priv(netdev).
      Since all of the netdev->priv is only for read.
      But it is too big to be sent in one mail.
      I split it to 4 parts and make every part smaller than 100,000 bytes,
      which is max size allowed by vger.
      Signed-off-by: NWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      454d7c9b
  2. 06 11月, 2008 2 次提交
    • J
      bonding: alternate agg selection policies for 802.3ad · fd989c83
      Jay Vosburgh 提交于
      	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: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      fd989c83
    • B
      bonding: send IPv6 neighbor advertisement on failover · 305d552a
      Brian Haley 提交于
      This patch adds better IPv6 failover support for bonding devices,
      especially when in active-backup mode and there are only IPv6 addresses
      configured, as reported by Alex Sidorenko.
      
      - Creates a new file, net/drivers/bonding/bond_ipv6.c, for the
         IPv6-specific routines.  Both regular bonds and VLANs over bonds
         are supported.
      
      - Adds a new tunable, num_unsol_na, to limit the number of unsolicited
         IPv6 Neighbor Advertisements that are sent on a failover event.
         Default is 1.
      
      - Creates two new IPv6 neighbor discovery functions:
      
         ndisc_build_skb()
         ndisc_send_skb()
      
         These were required to support VLANs since we have to be able to
         add the VLAN id to the skb since ndisc_send_na() and friends
         shouldn't be asked to do this.  These two routines are basically
         __ndisc_send() split into two pieces, in a slightly different order.
      
      - Updates Documentation/networking/bonding.txt and bumps the rev of bond
         support to 3.4.0.
      
      On failover, this new code will generate one packet:
      
      - An unsolicited IPv6 Neighbor Advertisement, which helps the switch
         learn that the address has moved to the new slave.
      
      Testing has shown that sending just the NA results in pretty good
      behavior when in active-back mode, I saw no lost ping packets for example.
      Signed-off-by: NBrian Haley <brian.haley@hp.com>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      305d552a
  3. 25 9月, 2008 2 次提交
  4. 18 6月, 2008 1 次提交
    • J
      bonding: Rework / fix multiple gratuitous ARP support · b59f9f74
      Jay Vosburgh 提交于
      	Support for sending multiple gratuitous ARPs during failovers
      was added by commit:
      
      commit 7893b249
      Author: Moni Shoua <monis@voltaire.com>
      Date:   Sat May 17 21:10:12 2008 -0700
      
          bonding: Send more than one gratuitous ARP when slave takes over
      
      	This change modifies that support to remove duplicated code,
      add support for ARP monitor (the original only supported miimon), clear
      the grat ARP counter in bond_close (lest a later "ifconfig up" immediately
      start spewing ARPs), and add documentation for the module parameter.
      
      	Also updated driver version to 3.3.0.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      b59f9f74
  5. 22 5月, 2008 4 次提交
    • J
      bonding: Add "follow" option to fail_over_mac · 3915c1e8
      Jay Vosburgh 提交于
      	Add a "follow" selection for fail_over_mac.  This option
      causes the MAC address to move from slave to slave as the active
      slave changes.  This is in addition to the existing fail_over_mac option
      that causes the bond's MAC address to change during failover.
      
      	This new option is useful for devices that cannot tolerate
      multiple ports using the same MAC address simultaneously, either
      because it confuses them or incurs a performance penalty (as is the
      case with some LPAR-aware multiport devices).  Because the MAC of the
      bond itself does not change, the "follow" option is slightly more
      reliable during failover and doesn't change the MAC of the bond during
      operation.
      
      	This patch requires a previous ARP monitor change to properly
      handle RTNL during failovers.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      3915c1e8
    • J
      bonding: refactor ARP active-backup monitor · b2220cad
      Jay Vosburgh 提交于
      	Refactor ARP monitor for active-backup mode.  The motivation for
      this is to take care of locking issues in a clear manner (particularly to
      correctly handle RTNL vs. the bonding locks).  Currently, the a-b ARP
      monitor does not hold RTNL at all, but future changes will require RTNL
      during ARP monitor failovers.
      
      	Rather than using conditional locking, this patch instead breaks
      up the ARP monitor into three discrete steps: inspection, commit changes,
      and probe.  The inspection phase marks slaves that require link state
      changes.  The commit phase is only called if inspection detects that
      changes are needed, and is called with RTNL.  Lastly, the probe phase
      issues the ARP probes that the inspection phase uses to determine link
      state.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      b2220cad
    • M
      bonding: Send more than one gratuitous ARP when slave takes over · 7893b249
      Moni Shoua 提交于
      With IPoIB, reception of gratuitous ARP by neighboring hosts
      is essential for a successful change of slaves in case of failure.
      Otherwise, they won't learn about the HW address change and need
      to wait a long time until the neighboring system gives up and sends
      an ARP request to learn the new HW address.  This patch decreases
      the chance for a lost of a gratuitous ARP packet by sending it more
      than once. The number retries is configurable and can be set with a
      module param.
      Signed-off-by: NMoni Shoua <monis@voltaire.com>
      Acked-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      7893b249
    • P
      bonding: Remove redundant argument from bond_create. · 0dd646fe
      Pavel Emelyanov 提交于
      While we're fixing the bond_create, I hope it's OK to polish it
      a bit after the fixes.
      
      The third argument is NULL at the first caller and is ignored by
      the second one, so remove it.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Acked-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      0dd646fe
  6. 26 3月, 2008 1 次提交
  7. 03 2月, 2008 1 次提交
  8. 19 1月, 2008 1 次提交
    • J
      bonding: Fix up parameter parsing · ece95f7f
      Jay Vosburgh 提交于
      	A recent change to add an additional hash policy modified
      bond_parse_parm, but it now does not correctly match parameters passed in
      via sysfs.
      
      	Rewrote bond_parse_parm to handle (a) parameter matches that
      are substrings of one another and (b) user input with whitespace (e.g.,
      sysfs input often has a trailing newline).
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      ece95f7f
  9. 08 12月, 2007 2 次提交
    • J
      bonding: Fix race at module unload · fdaea7a9
      Jay Vosburgh 提交于
      	Fixes a race condition in module unload.  Without this change,
      workqueue events may fire while bonding data structures are partially
      freed but before bond_close() is invoked by unregister_netdevice().
      
      	Update version to 3.2.3.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      fdaea7a9
    • J
      bonding: Add new layer2+3 hash for xor/802.3ad modes · 6f6652be
      Jay Vosburgh 提交于
       	Add new hash for balance-xor and 802.3ad modes.  Originally
       submitted by "Glenn Griffin" <ggriffin.kernel@gmail.com>; modified by
       Jay Vosburgh to move setting of hash policy out of line, tweak the
       documentation update and add version update to 3.2.2.
      
      	Glenn's original comment follows:
      
      Included is a patch for a new xmit_hash_policy for the bonding driver
      that selects slaves based on MAC and IP information.  This is a middle
      ground between what currently exists in the layer2 only policy and the
      layer3+4 policy.  This policy strives to be fully 802.3ad compliant by
      transmitting every packet of any particular flow over the same link.
      As documented the layer3+4 policy is not fully compliant for extreme
      cases such as ip fragmentation, so this policy is a nice compromise
      for environments that require full compliance but desire more than the
      layer2 only policy.
      Signed-off-by: N"Glenn Griffin" <ggriffin.kernel@gmail.com>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      6f6652be
  10. 25 10月, 2007 1 次提交
  11. 24 10月, 2007 2 次提交
  12. 17 10月, 2007 1 次提交
  13. 16 10月, 2007 5 次提交
  14. 11 10月, 2007 1 次提交
  15. 11 7月, 2007 1 次提交
  16. 21 6月, 2007 1 次提交
    • J
      bonding: Fix 802.3ad no carrier on "no partner found" instance · 031ae4de
      Jay Vosburgh 提交于
      	Modify carrier state determination for 802.3ad mode to comply
      with section 43.3.9 of IEEE 802.3, which requires that "Links that are
      not successful candidates for aggregation (e.g., links that are attached
      to other devices that cannot perform aggregation or links that have been
      manually configured to be non-aggregatable) are enabled to operate as
      individual IEEE 802.3 links."
      
      	Bug reported by Laurent Chavey <chavey@google.com>.  This patch
      is an updated version of his patch that changes the wording of
      commentary and adds an update to the driver version.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NLaurent Chavey <chavey@google.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      031ae4de
  17. 06 2月, 2007 2 次提交
  18. 30 1月, 2007 1 次提交
  19. 28 9月, 2006 1 次提交
  20. 26 9月, 2006 2 次提交
  21. 30 3月, 2006 1 次提交
  22. 04 3月, 2006 1 次提交
    • J
      [PATCH] bonding: suppress duplicate packets · 8f903c70
      Jay Vosburgh 提交于
      	Originally submitted by Kenzo Iwami; his original description is:
      
      The current bonding driver receives duplicate packets when broadcast/
      multicast packets are sent by other devices or packets are flooded by the
      switch. In this patch, new flags are added in priv_flags of net_device
      structure to let the bonding driver discard duplicate packets in
      dev.c:skb_bond().
      
      	Modified by Jay Vosburgh to change a define name, update some
      comments, rearrange the new skb_bond() for clarity, clear all bonding
      priv_flags on slave release, and update the driver version.
      Signed-off-by: NKenzo Iwami <k-iwami@cj.jp.nec.com>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      8f903c70
  23. 13 1月, 2006 1 次提交
    • J
      [PATCH] bonding: UPDATED hash-table corruption in bond_alb.c · 5af47b2f
      Jay Vosburgh 提交于
      	I believe I see the race Michael refers to (tlb_choose_channel
      may set head, which tlb_init_slave clears), although I was not able to
      reproduce it.  I have updated his patch for the current netdev-2.6.git
      tree and added a version update.  His original comment follows:
      
      Our systems have been crashing during testing of PCI HotPlug
      support in the various networking components.  We've faulted in
      the bonding driver due to a bug in bond_alb.c:tlb_clear_slave()
      
      In that routine, the last modification to the TLB hash table is
      made without protection of the lock, allowing a race that can lead
      tlb_choose_channel() to select an invalid table element.
      
      	-J
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      5af47b2f
  24. 09 1月, 2006 1 次提交
  25. 29 11月, 2005 1 次提交
  26. 14 11月, 2005 2 次提交