[lug] ethernet duplex options, mysteries

D. Stimits stimits at idcomm.com
Fri Aug 2 14:38:33 MDT 2002


I have 2 NIC's in my Linux machine, not yet set up for bridging (so far 
they are ordinary ethernet devices without any non-ordinary options). Of 
the two NICs, one is a Linksys LNE100TX card using only RJ45 connectors. 
The other card is an NE2000 clone, only capable of 10 Mbps. The NE2000 
has both coaxial and RJ45 connectors available, but only the RJ45 is 
being used. Both NICs are PCI. Bootup messages seem correct, and 
ifconfig shows both eth0 and eth1 correctly, currently with ip addresses 
10.0.0.4 and 10.0.0.5 for eth0 and eth1, respectively. I think eth1 
belongs to the Linksys 100 Mbps card, and the 10 Mbps NE2000 clone is 
eth0 (I'm not positive). Loaded kernel net card modules (2.4.18-4 Redhat 
kernel) are:
  tulip
  n2k-pci
  8390

(it looks like both n2k-pci and 8390 belong to the NE2000 clone, and 
tulip only to the Linksys)

I connect to a switch that has indicator lights for speed and half/full 
duplex, one each for every cable slot. To aid diagnostics, one of the 
switch lights blinks over the particular cables when that cable has 
traffic. Mystery: I can ping 10.0.0.4 or 10.0.0.5, and they actually 
ping without loss. No switch lights blink, so the traffic is not 
touching the switch (I don't have a 2nd machine on this switch to test 
with yet, the indicator lights are it...and due to not enough cables, I 
can only connect eth0 or eth1 to the switch at any given moment). The 
route command indicates there is a default route 10.0.0.0 (interface 
eth1), and route del refuses to allow me to remove it (unless I shut off 
eth1 interface...I don't want to do that, I want eth1 up, but no default 
route). I can use a route add default and have a 2nd default route to 
eth0, but I cannot remove the eth1 default route without turning eth1 
off entirely.

Regardless of which ethernet card has a default route, neither card 
actually has anything connected, other than the switch (and I have tried 
this with neither card connected to the switch, or a single card, but 
never both cards at once), so how is it possible that I can successfully 
ping both 10.0.0.4 and 10.0.0.5, even with the cables removed? I do NOT 
have any /etc/hosts entries that would supply a 10.0.0.4 or 10.0.0.5 
address alias...there is nothing that would cause 10.0.0.x to look like 
a local loopback entry, and ifconfig confirms that loopback is only 
127.0.0.1. [perhaps Linux has evolved and now understands Star Trek 
subspace communications, or else I have accidentally created the first 
Linux quantum tunneling driver :P ]

Mystery 2. The clone NE2000 card is supposed to be able to operate in 
full duplex if RJ45 is used, but it is currently half duplex. I have 
been trying to find out how to force it to try full duplex. I do not 
mind it being a 10 Mbps card, but I do want full duplex out of it 
(presumably this would offer slightly lower latency, even if the cable 
modem can't go at the card speed). Is there a way to force full duplex, 
aside from a kernel boot parameter? And if a kernel parameter is 
required, I cannot seem to find the right one for NE2K pci clones. I 
have also tried adding in the /etc/modules.conf entry for the NE2000 
module "duplex=full", this has no effect. If needed, I will dump the 
NE2k clone, and replace it, but it seems like a waste since the cable 
modem will never need more than what the NE2k can handle. Can anyone 
tell me how to force a PCI NE2000 clone to run full duplex? I don't mind 
if it crashes, at least I'll know, and I can replace the card if that is 
the case.

D. Stimits, stimits AT idcomm.com




More information about the LUG mailing list