Date: Sun, 28 Mar 1999 13:31:01 -0500 (EST) From: Bill Paul <wpaul@skynet.ctr.columbia.edu> To: current@freebsd.org Subject: Re: 3com Nic Problems Message-ID: <199903281831.NAA04739@skynet.ctr.columbia.edu> In-Reply-To: <000101be7941$1b2e3200$2300000a@a35.my.intranet> from "RT" at Mar 28, 99 12:33:33 pm
next in thread | previous in thread | raw e-mail | index | archive | help
Of all the gin joints in all the towns in all the world, RT had to walk into mine and say: > Heres are the nic combinations I've tried in one machine: > > 3com 905 (at 100mbit) & 3com 905b (at 10mbit) > 3com 905b (at 100mbit) & 3com 905 (at 10mbit) > 3com 905 (at 100mbit) & realtek 8039 (at 10mbit) > 3com 905b (at 100mbit) & realtek (at 10mbit) > 3com 905b (at 100mbit) & ne2000 (at 10mbit) > > In each case the 3com operating at 100mbit failed to do so smoothly. In > some cases I receive device time-outs, on bootup "xl0 command not > completed", Ignore the command failed to complete message. It's not fatal. It's amazing how many people get all flustered when they see this. > and in some cases no warning at all.. It's timing dependent. > 100mbit will peak at 4MB/s, then all of a sudden stop, then go racing off, > then stop... This is a classic "I didn't configure my card correctly" symptom. For the Nth time, both sides of the link must use the same modes. You can't mix and match speed and duplex settings like they're tuneable parameters that you can tweak to get more performance. Both sides must match. If they can't figure out how to match on their own using autonegotiation, make them match. (You're the one with the brain and the reasoning skills after all. Well, that's the theory anyway.) If you want two 100Mbps NICs connected back to back (via crossover cable), then do the following on _both_ sides: # ifconfig xl0 media 100baseTX mediaopt full-duplex The symptoms you're describing indicate a condition where one side of the link is set for full duplex and the other is set for half. This doesn't work: when the NIC is in full duplex mode, it turns off the collision detection logic (since in theory you're not supposed to have collisions on a full duplex link). If one side is doing collision detection and the other isn't, you tend to see 'stuttery' performance. If you're connecting a NIC to a 10Mbps hub (that's hub as in repeater, not a switch), then you must set the NIC for 10Mbps half-duplex: # ifconfig xl0 media 10baseT/UTP mediaopt half-duplex If you're connecting a NIC to a 100Mbps hub (again, that's a hub as in repeater, not a switch), then you must set the NIC for 100Mbps half-duplex: # ifconfig xl0 media 100baseTX mediaopt half-duplex If you're connecting a NIC to a 100Mbps switch port, then in theory the switch port and the NIC will perform NWAY autoselection and get the modes right on their own. Sometimes this fails though, in which case you should manually configure the switch for the mode you want and configure the NIC to match. When you connect two NICs back to back and one of them supports NWAY and the other doesn't, the NIC with NWAY autonegotiation support can sometimes get the mode wrong. In this case, you should manually configure the NIC with NWAY so that agrees with the other NIC's modes using ifconfig as shown above. The NE2000 and 8039 boards don't support full duplex. So if you connect a one of these to the 3c90x NICs via crossover cable, then you must force the 3Com nic to 10Mbps half-duplex: # ifconfig xl0 media 10baseT/UTP mediaopt half-duplex This is because the NE2K and 8039 (ne2k compatible) don't support full duplex mode. -Bill -- ============================================================================= -Bill Paul (212) 854-6020 | System Manager, Master of Unix-Fu Work: wpaul@ctr.columbia.edu | Center for Telecommunications Research Home: wpaul@skynet.ctr.columbia.edu | Columbia University, New York City ============================================================================= "It is not I who am crazy; it is I who am mad!" - Ren Hoek, "Space Madness" ============================================================================= To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903281831.NAA04739>