1. 29 1月, 2008 1 次提交
  2. 19 1月, 2008 7 次提交
  3. 08 12月, 2007 8 次提交
  4. 14 11月, 2007 1 次提交
  5. 10 11月, 2007 2 次提交
    • J
      bonding: don't validate address at device open · 3a1521b7
      Jay Vosburgh 提交于
      The standard validate_addr handler refuses to accept the all zeroes address
      as valid.  However, it's common historical practice for the bonding
      master to be configured up prior to having any slaves, at which time the
      master will have a MAC address of all zeroes.
      
      Resolved by setting the dev->validate_addr to NULL.  The master still can't
      end up with an invalid address, as the set_mac_address function tests
      for validity.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      3a1521b7
    • 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
  6. 25 10月, 2007 2 次提交
  7. 24 10月, 2007 6 次提交
  8. 20 10月, 2007 2 次提交
  9. 17 10月, 2007 1 次提交
  10. 16 10月, 2007 7 次提交
    • 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: Delay sending of gratuitous ARP to avoid failure · 1053f62c
      Moni Shoua 提交于
      Delay sending a gratuitous_arp when LINK_STATE_LINKWATCH_PENDING bit
      in dev->state field is on. This improves the chances for the arp packet to
      be transmitted.
      
      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>
      1053f62c
    • 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
    • M
      net/bonding: Enable bonding to enslave netdevices not supporting set_mac_address() · 2ab82852
      Moni Shoua 提交于
      This patch allows for enslaving netdevices which do not support
      the set_mac_address() function. In that case the bond mac address is the one
      of the active slave, where remote peers are notified on the mac address
      (neighbour) change by Gratuitous ARP sent by bonding when fail-over occurs
      (this is already done by the bonding code).
      
      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>
      2ab82852
    • M
      net/bonding: Enable bonding to enslave non ARPHRD_ETHER · 872254dd
      Moni Shoua 提交于
      This patch changes some of the bond netdevice attributes and functions
      to be that of the active slave for the case of the enslaved device not being
      of ARPHRD_ETHER type. Basically it overrides those setting done by ether_setup(),
      which are netdevice **type** dependent and hence might be not appropriate for
      devices of other types. It also enforces mutual exclusion on bonding slaves
      from dissimilar ether types, as was concluded over the v1 discussion.
      
      IPoIB (see Documentation/infiniband/ipoib.txt) MAC address is made of a 3 bytes
      IB QP (Queue Pair) number and 16 bytes IB port GID (Global ID) of the port this
      IPoIB device is bounded to. The QP is a resource created by the IB HW and the
      GID is an identifier burned into the HCA (i have omitted here some details which
      are not important for the bonding RFC).
      
      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>
      872254dd
  11. 11 10月, 2007 3 次提交