Frequent pauses with Linux-based router

Sean C. Farley scf at FreeBSD.org
Wed Mar 19 07:30:16 PDT 2008


On Tue, 18 Mar 2008, David DeSimone wrote:

> Sean C. Farley <scf at FreeBSD.org> wrote:
>>
>> An ICMP test showed that there were occasional pauses and packet
>> loss.  The fix:  use 100Mb instead of 10Mb.  :) For some reason I do
>> not recall, I had forced the interface connected to the DSL router to
>> 10Mb.  When I noticed XP did not have the same problem and that it
>> had a 100Mb connection to the router, I found and removed the "media
>> 10baseT/UTP mediaopt full-duplex" from /etc/rc.conf for the
>> interface.  That appears to have fixed it.
>
> The fix here is not that you moved to 100 Mb, it's that you stopped
> forcing duplex, and allow auto-negotiation to take place.
>
> With the forced duplex in effect, your NIC does not auto-negotiate
> with the other end (the router), and it falls back to half duplex,
> which leads to large numbers of collision errors.

Ah!  I tried it again at 10Mb without setting it to full-duplex, and it
worked.  Out of curiosity, is it normal that 100Mb will default to
full-duplex yet 10Mb will not, or is it dependent on the hardware?

>> The pause always seemed to be for packets from the router to the
>> computer.
>
> Yep, whenever the router would try to send, if your end happened to be
> sending a frame, the router's NIC would stop to avoid the collision,
> leading to packet loss.  This is a classic duplex-mismatch scenario.

My wife was getting tired of hearing the thump of my head on the wall.
Maybe one more to make sure I remember this next time.  :)  Thank you
for the explanation.

Sean
-- 
scf at FreeBSD.org


More information about the freebsd-net mailing list