net/bonding: Enable bonding to enslave non ARPHRD_ETHER
authorMoni Shoua <monis@voltaire.com>
Wed, 10 Oct 2007 02:43:38 +0000 (19:43 -0700)
committerJeff Garzik <jeff@garzik.org>
Mon, 15 Oct 2007 18:20:45 +0000 (14:20 -0400)
commit872254dd6b1f80cb95ee9e2e22980888533fc293
tree85851d40ed6717aa7df30f7ad8247e13ecded7bf
parent200d1713b47200aa478f27e454e3d957264d49be
net/bonding: Enable bonding to enslave non ARPHRD_ETHER

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: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/bonding/bond_main.c