Full/Half duplex - diagnostics not the same as reality
"Miskell, Craig" <[email protected]>
| Newsgroups | gmane.linux.drivers.vortex.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, I have just been battling with an old linux box (Redhat 6.1, kernel 2.2.12-20) with a 3c905B in it, talking to a Cisco 3500. I have managed to fix it (with help from the archives of this list), but something still doesn't make sense. I'd appreciate it if anyone can help me find an explanation. Pardon the length - I believe in sending enough info that I won't have to waste your time and mine clarifying the basics. Initial symptoms were really slow connectivity when sending gzip output to a samba mounted share. I did some poking and noticed that we were getting ~5 collisions per second while doing the gzip. (Incidentally, gzipping to local disk then copying to the share didn't cause collisions, and neither did simply redirecting the output straight to the samba share without gzipping. Truly odd). Anyway, some more poking indicated that the card was running half duplex, where the rest of the network is running full duplex, often "forced" (due to apparently some old problems with HalfDuplex...) So, doesn't take long to decide that it's time to make it do full duplex. More poking ensues, and I discover that the 3com is trying to autonegotiate, and the Cisco is telling it to just use 100BaseT half duplex. <me>scratches head</me>. I poked in the cisco config, but not being anything more than a novice, got confused. For some reason this box seems to be plugged into the GigabitEthernet0/1, along with a bunch of other boxes. I'm not sure quite how that works (all plugged into the same port, or is it just the Cisco being "smart" and coalescing multiple physical ports into one logical one?) I'm going to ask somebody else here about how that all works, but if anyone knows from this list, I'd welcome enlightenment. That interface (GigabitEthernet0/1) is apparently set to "Auto-duplex (Full), link type is autonegotiation" Which according to http://www.cisco.com/warp/public/473/46.html should be fine (both ends autonegotiating). But in practice, according to the above url, what *seems* to be happening is that the cisco is somehow configured to force 100BT-FD, and because the 3com is auto negotiating, we're getting 100BT-HD, a duplex mismatch, and hence collisions. Against all other advice (well, bascially cause I'm not game on fiddling with the Cisco yet), I force the 3com card to full duplex: # ifdown eth0 # rmmod 3c59x # insmod 3c59x full_duplex=1 (or insmod 3c59x options=12 also seems to work the same, as per vortex.txt in the kernel docs) # ifup eth0 After this mii-diag -v gives the following You have link beat, and everything is working OK. This transceiver is capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Able to perform Auto-negotiation, negotiation complete. Your link partner is generating 100baseTx link beat (no autonegotiation). End of basic transceiver information <SNIP>: I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT Advertising no additional info pages. IEEE 802.3 CSMA/CD protocol. Link partner capability is 0080: 100baseTx. Negotiation did not complete. #mii-tool eth0: no autonegotiation, 100baseTx-HD, link ok This is all the same as before setting the options on the module. HOWEVER, if I run the test command, I get my hoped for throughput and no collisions. This indicates to me that it is actually working full duplex. If I then tried # mii-diag -F 100BaseT-FD Then the output of mii-tool says eth0: 100 Mbit, full duplex, link ok Mii-diag -v output mutters about fixed speed, no negotiation etc... Output is too verbose for now.. I think most (who care) will know what it says. Behaviour is still correct (no collisions, as fast as is expected etc). So I'm confused - it seems to be working, but the diagnostics indicate otherwise unless I force the setting using mii-diag. Does anyone know what might be going on? Is it as simple as an old kernel that doesn't support something quite right? Is it possible that it's not really running full-duplex but that something else in that stops the collisions? I'm happy to run most tests, as long as it's not making changes to the Cisco Thanks Craig Miskell, Technical Support, AgResearch Invermay ======================================================================= Attention: The information contained in this message and/or attachments from AgResearch Limited is intended only for the persons or entities to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipients is prohibited by AgResearch Limited. If you have received this message in error, please notify the sender immediately. ======================================================================= _______________________________________________ vortex mailing list [email protected] http://www.scyld.com/mailman/listinfo/vortex