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. 04 11月, 2008 1 次提交
  4. 31 10月, 2008 1 次提交
  5. 28 10月, 2008 1 次提交
  6. 07 8月, 2008 1 次提交
  7. 18 6月, 2008 1 次提交
    • J
      bonding: Allow setting max_bonds to zero · b8a9787e
      Jay Vosburgh 提交于
      	Permit bonding to function rationally if max_bonds is set to
      zero.  This will load the module, but create no master devices (which can
      be created via sysfs).
      
      	Requires some change to bond_create_sysfs; currently, the
      netdev sysfs directory is determined from the first bonding device created,
      but this is no longer possible.  Instead, an interface from net/core is
      created to create and destroy files in net_class.
      
      	Based on a patch submitted by Phil Oester <kernel@linuxaces.com>.
      Modified by Jay Vosburgh to fix the sysfs issue mentioned above and to
      update the documentation.
      Signed-off-by: NPhil Oester <kernel@linuxace.com>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      b8a9787e
  8. 22 5月, 2008 4 次提交
  9. 15 5月, 2008 1 次提交
  10. 07 5月, 2008 1 次提交
  11. 29 3月, 2008 1 次提交
  12. 19 1月, 2008 3 次提交
  13. 08 12月, 2007 5 次提交
  14. 10 11月, 2007 1 次提交
    • J
      bonding: fix rtnl locking merge error · 1466a219
      Jay Vosburgh 提交于
      	Looks like I incorrectly merged one of the rtnl lock changes,
      so that one function, bonding_show_active_slave, held rtnl but didn't
      release it, and another, bonding_store_active_slave, never held rtnl but
      did release it.
      
      	Fixed so the first function doesn't mess with rtnl, and the
      second correctly acquires and releases rtnl.
      
      	Bug reported by Moni Shoua <monis@voltaire.com>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      1466a219
  15. 24 10月, 2007 2 次提交
  16. 20 10月, 2007 1 次提交
  17. 16 10月, 2007 4 次提交
    • J
      net/bonding: Optionally allow ethernet slaves to keep own MAC · dd957c57
      Jay Vosburgh 提交于
      	Update the "don't change MAC of slaves" functionality added in
      previous changes to be a generic option, rather than something tied to
      IB devices, as it's occasionally useful for regular ethernet devices as
      well.
      
      	Adds "fail_over_mac" option (which is automatically enabled for IB
      slaves), applicable only to active-backup mode.
      
      	Includes documentation update.
      
      	Updates bonding driver version to 3.2.0.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      dd957c57
    • M
      net/bonding: Destroy bonding master when last slave is gone · d90a162a
      Moni Shoua 提交于
      When bonding enslaves non Ethernet devices it takes pointers to functions
      in the module that owns the slaves. In this case it becomes unsafe
      to keep the bonding master registered after last slave was unenslaved
      because we don't know if the pointers are still valid.  Destroying the bond when slave_cnt is zero
      ensures that these functions be used anymore.
      
      Signed-off-by: Moni Shoua <monis at voltaire.com>
      Acked-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      d90a162a
    • M
      net/bonding: Handlle wrong assumptions that slave is always an Ethernet device · 3158bf7d
      Moni Shoua 提交于
      bonding sometimes uses Ethernet constants (such as MTU and address length) which
      are not good when it enslaves non Ethernet devices (such as InfiniBand).
      
      Signed-off-by: Moni Shoua <monis at voltaire.com>
      Acked-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      3158bf7d
    • M
      net/bonding: Enable IP multicast for bonding IPoIB devices · 6b1bf096
      Moni Shoua 提交于
      Allow to enslave devices when the bonding device is not up. Over the discussion
      held at the previous post this seemed to be the most clean way to go, where it
      is not expected to cause instabilities.
      
      Normally, the bonding driver is UP before any enslavement takes place.
      Once a netdevice is UP, the network stack acts to have it join some multicast groups
      (eg the all-hosts 224.0.0.1). Now, since ether_setup() have set the bonding device
      type to be ARPHRD_ETHER and address len to be ETHER_ALEN, the net core code
      computes a wrong multicast link address. This is b/c ip_eth_mc_map() is called
      where for multicast joins taking place after the enslavement another ip_xxx_mc_map()
      is called (eg ip_ib_mc_map() when the bond type is ARPHRD_INFINIBAND)
      
      Signed-off-by: Moni Shoua <monis at voltaire.com>
      Signed-off-by: Or Gerlitz <ogerlitz at voltaire.com>
      Acked-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      6b1bf096
  18. 11 10月, 2007 4 次提交
  19. 21 6月, 2007 1 次提交
    • J
      bonding: Fix use after free in unregister path · 3201e656
      Jay Vosburgh 提交于
      	The following patch (based on a patch from Stephen Hemminger
      <shemminger@linux-foundation.org>) removes use after free conditions in
      the unregister path for the bonding master.  Without this patch, an
      operation of the form "echo -bond0 > /sys/class/net/bonding_masters"
      would trigger a NULL pointer dereference in sysfs.  I was not able to
      induce the failure with the non-sysfs code path, but for consistency I
      updated that code as well.
      
      	I also did some testing of the bonding /proc file being open
      while the bond is being deleted, and didn't see any problems there.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      3201e656
  20. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  21. 08 2月, 2007 1 次提交
  22. 06 2月, 2007 1 次提交
    • J
      bonding: modify sysfs support to permit multiple loads · 877cbd36
      Jay Vosburgh 提交于
      	The existing code would blindly attempt to create the
      bonding_masters file (in /sys/class/net) every time the module was
      loaded.  When the module is loaded multiple times (which is the
      historical method used by initscripts and sysconfig to create multiple
      bonding interfaces), this caused load failure of the second module load
      attempt, as the creation request would fail.
      
      	This changes the code to note the failure, arrange to not remove
      the bonding_masters file upon module exit, and then return success.
      
      	Bonding interfaces created by the second or subsequent loads of
      the module will not exist in bonding_masters.  This is not a significant
      change, as previously only the interfaces from the most recent load of
      the module would be listed.  Both situations are less than optimal, but
      this case permits compatibility with existing distro configuration
      scripts, and is consistent.
      
      	Note that previously, the sysfs create request would overwrite
      the exsting bonding_masters file and succeed, allowing multiple loads of
      the module.  The sysfs code has recently changed to return an error if
      the file being created already exists.
      
      	Patrick McHardy <kaber@trash.net>, who reported this problem,
      observed crashes on the old kernel (before sysfs checked for
      duplicates).  I did not experience such crashes, but this change should
      resolve them.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      877cbd36
  23. 26 9月, 2006 1 次提交
    • J
      [PATCH] bonding: Validate probe replies in ARP monitor · f5b2b966
      Jay Vosburgh 提交于
      	Add logic to check ARP request / reply packets used for ARP
      monitor link integrity checking.
      
      	The current method simply examines the slave device to see if it
      has sent and received traffic; this can be fooled by extraneous traffic.
      For example, if multiple hosts running bonding are behind a common
      switch, the probe traffic from the multiple instances of bonding will
      update the tx/rx times on each other's slave devices.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f5b2b966