[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