Re: 3c59x Driver Query..

Donald Becker <[email protected]> Tue, 16 Dec 2003 16:11:16 -0500 (EST)
Newsgroups gmane.linux.drivers.vortex.devel
Message-ID <Pine.LNX.4.44.0312161555000.8196-100000@beohost>
On 16 Dec 2003, Mike Insch wrote:

> Basically, I am trying to use two 3c905C (Tornado) NIC's with the 2.4.23
> bonding driver.  This driver needs the base NIC driver to support
> changing the card MAC address whilst the card is open.

This is deeply flawed: there are inherent race and packet drop
problems.
Most NICs do not allow changing the driver MAC address when the receiver
is active because of the problems.

> It appears that the 3c59x Driver does not support this operation.
> I have looked at the 3c59x code, and the Bonding driver code, as well as
> the code for drivers which do support this operation (such as the Intel
> EtherExpress e100) to see if I can glean any useful information. 

The e100 is a good example of why this is silly.  The chip changes the
MAC address using the same command queue as transmitting a packet, which
means that the operation might be delayed for a significant period of
time.  To know when the command is executed, the driver must stop the
transmit queue, wait until the queued packets are sent, send the
'CmdIASetup' update command, and then resume normal operation.  And
while the command is running, the receiver is disabled, so the NIC is
silently dropping packets.  Doh!  It's exactly as bad as down-change-up,
except that the driver is now more complex.


-- 
Donald Becker				[email protected]
Scyld Computing Corporation		http://www.scyld.com
914 Bay Ridge Road, Suite 220		Scyld Beowulf cluster systems
Annapolis MD 21403			410-990-9993

_______________________________________________
vortex mailing list
[email protected]
http://www.scyld.com/mailman/listinfo/vortex