Subject: kern/35376: re(4) doesn't auto-negotiate properly on GigE
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <smb@cs.columbia.edu>
List: netbsd-bugs
Date: 01/08/2007 04:15:00
>Number: 35376
>Category: kern
>Synopsis: re(4) doesn't auto-negotiate properly on GigE
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jan 08 04:15:00 +0000 2007
>Originator: Steven M. Bellovin
>Release: NetBSD 4.0_BETA2
>Organization:
>Environment:
System: NetBSD EMU.machshav.com 4.0_BETA2 NetBSD 4.0_BETA2 (EMU-DOM0) #2: Sat Dec 30 14:54:56 UTC 2006 root@EMU.machshav.com:/usr/BUILD/obj/sys/arch/i386/compile/EMU-DOM0 i386
Architecture: i386
Machine: i386
>Description:
When plugged in to a (Netgear) GigE switch, the re driver does
not properly negotiate the speed. ifconfig shows 'media autoselect',
but the switch lights show lower-speed, and ttcp suggests that
it thinks it's a 10baseT interface... If, however, I then type
'ifconfig re0 media auto', it understands that it's on a GigE
switch, both according to ifconfig's output and ttcp tests. (Mind
you, transmit speed is still too slow for my tastes -- about 200M bps
-- compared to the 535M bps I can get on a wm interface, but
that's not the subject of this PR...)
Often, though not quite always, when I type that ifconfig, it
takes a *very* long time to negotiate speeds -- on the order of
a minute or more. In fact, auto-negotiate is slow enough that
my ifconfig.re0 file has
!sleep 15
in it.
The same problem occurs on -current. It does not occur on
3.1_STABLE. I tested this on two different computers, with
separate cables.
>How-To-Repeat:
See above
>Fix:
'ifconfig re0 media auto', then wait a while
>Unformatted: