Subject: Re: bge0 doesn't like to autodetect gigabit
To: None <tech-net@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-net
Date: 09/03/2003 15:55:06
On Wed, Sep 03, 2003 at 12:37:27PM -0700, Bryan Vyhmeister wrote:
> 
> I followed your instructions and commented out what you said to. I then
> built a new kernel and restarted. My dmesg output did show that the
> patch was being used but it did not solve the problem. When I plugged in
> a network cable it reported 1000base-T but when I ran dhclient it went
> back to 100base-T and then got an IP address. When I first ran dhclient,
> it sent out several requests and then by the fourth or fifth it
> apparently switched to 100base-T and got its IP address.

It's my experience that the way dhclient treats the interface (repeatedly
configuring it down and up, which causes a reset on many interfaces) plays
*very* poorly with a large number of gigabit devices.  I've seen it hang
old Tigon cards so hard that a power-cycle was required in order to get
them back into a working state, and I would not be surprised to see it
do something similar with the bge.  I've also seen it get Intel cards stuck
in a state in which they always mis-negotiate the duplex.

Adding appropriate media options to your dhclient configuration, for
example 'medium "media 1000baseT-FDX ip4csum udp4csum tcp4csum"' *and*
increasing the dhclient retry interval, which will keep it from resetting
the interface hardware so often, may help.

I've long noticed that the first packet dhclient sends on my NetBSD
systems, regardless of interface hardware type, always seems to be lost,
so it always retries at least once, resetting the interface in the
process.  This isn't a good thing, either, but I've never figured out
why it happens.

Thor