Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Jan 2011 23:02:10 -0800
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Martin Wilke <miwi@FreeBSD.org>
Cc:        freebsd-current@FreeBSD.org, freebsd-stable@FreeBSD.org
Subject:   Re: FreeBSD 8.1 re0 shows half duplex
Message-ID:  <20110117070210.GA76136@icarus.home.lan>
In-Reply-To: <AANLkTi=B0mtn6JswLcxxHPOu19=D=r9onew21xC9mpd-@mail.gmail.com>
References:  <AANLkTi=B0mtn6JswLcxxHPOu19=D=r9onew21xC9mpd-@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 17, 2011 at 05:08:33AM +0000, Martin Wilke wrote:
> Howdy Guys,
> 
> I have a strange problem, I'm on FreeBSD 8.1 and ifconfig re0 shows
> half-duplex (see output) and the download speed
> is damn slow, maximum 20 kbps. I'm not sure how to debug this so it would be
> nice if someone can
> help me to fix it.
> 
> When i change it manually via command line, the media line appeared to have
> 2 entries -- full-duplex and half-duplex
> 
> re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
> ether 6c:62:6d:90:6e:63
> inet XXXXXX netmask 0xffffffc0 broadcast XXXXXX
> media: Ethernet 100baseTX <full-duplex> (100baseTX <half-duplex>)
> status: active

The above indicates that you've run "ifconfig re0 media 100baseTX
mediaopt full-duplex" or have set similar media/mediaopt parameter sin
rc.conf, but 802.3u or 802.3ab auto-negotiation between your switch and
your NIC/PHY has resulted half-duplex.

Is the switch you're connected to a managed switch?  If so, have you
forced the port speed/duplex on the switch to 100/full?  If not, then
the above can happen (this is normal/per specification), and the result
will be abysmal performance.  Please do so and the problem should go
away.  If not, the exact brand and model of switch will need to be
disclosed, as well as whether or not the physical port is gigE capable.
See Wikipedia's article on this matter:

http://en.wikipedia.org/wiki/Autonegotiation#Interoperability_problems

If the switch is a non-managed switch (e.g. a generic "home user
desktop" switch, such as a product from D-Link, Netgear, Linksys, etc.),
then do not specify the speed/duplex via ifconfig.  You should always
use autoselect (the default) in this scenario.

When using autoselect, you should see something like "media: Ethernet
autoselect ({speed} <{duplex}>)", where {speed} and {duplex} are what
have been negotiated via 802.3u/802.3ab.

If using autoselect results in "100baseTX <half-duplex>" then something
is indeed incompatible between the NIC/PHY and the switch.  It could be
a driver bug, but it could also very well be a bug in the switch.  In
these scenarios I tend to buy a different brand of switch.

HTH!

-- 
| Jeremy Chadwick                                   jdc@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.               PGP 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110117070210.GA76136>