Query about Adaptive Load Balancing (bonding) on 2.4.23

From: Mike Insch
Date: Mon Dec 15 2003 - 11:54:14 EST


I'm trying to use the Bonding driver in kernel version 2.4.23 to
aggregate two NIC's together. The network switches don't support
Round-Robin, XOR or 802.3ad mode, so I am trying to use Adaptive Load
Balancing (ALB) mode. Unfortunately, I'm running into a few snags!

I'm trying to use two 3Com 3c905C NIC's. Both NIC's work fine
themselves. To get things working, I am doing:

# modprobe bonding mode=6
# ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
# ifenslave bond0 eth0 eth1

The first two work OK, and the bonding interface comes up. When I try
and enslave the two NIC's, ifenslave responds with:

SIOCBONDENSLAVE: Operation not supported.

And the following entries are recorded in /var/log/messages:

bonding: Error: alb_set_slave_mac_addr: dev->set_mac_address of
dev eth0 failed! ALB mode requires that the base driver support
setting the hw address also when the network devices interface is
open

(and the same for eth1).

I've looked in the code for the Bonding driver, and I can see exactly
where it is failing (line 971 in bond_alb.c), but I don't know nearly
enough about the kernel network dirvers and modules to trace back the
problem to it's root (which appears to be in the 3c59x driver).

I've looked for a list of devices which are compatable with ALB in the
Bonding driver, and have come up empty (google was not my friend!)

I have a few quick questions:
* Does anyone have any good pointers to a compatability list between
network drivers and the bonding driver?
* Can someone give me any pointers about which bits of the code in each
driver to look at so that I can make such a list for myself?
* Does anyone know of any patches for the 3c59x driver which will allow
the bonding driver to change the MAC address while the interface is
open? (Is this even possible in the hardware, or is it purely a driver
issue?)

Any pointers to more information, or advice on which bits of the code to
look at would be greatly appreciated. I'm happy to apply patches, or
even to have a stab at writing one myself if I can work out where to
start!!!

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/