Subject: Re: bge sending garbage frames
To: None <current-users@NetBSD.org>
From: Chris Tribo <email@example.com>
Date: 11/09/2005 19:15:20
I agree, but it should not be necessary according to the NWAY spec.
"If Auto-Negotiation exists at only one end of a twisted-pair link, it
determines that the Link Partner does not support the Auto-Negotiation
mechanism. Instead of exchanging configuration information, it examines
the signal it is receiving. If Auto-Negotiation discovers that the signal
matches a technology that the device supports, it will automatically
connect that technology. This function, known as Parallel Detection, gives
Auto-Negotiation the ability to be compatible with any device that does
not support Auto-Negotiation, yet supports: 10BASE-T, 100BASE-TX, or
100BASE-T4. Connection to any technology via Parallel Detection other than
those listed above is not supported by Auto-Negotiation."
What appears to be the problem with bge is that we do not drop the link
when switching from forced 10baseT to forced 100baseT. Because of this,
even a switch with autonegotiation on, will not notice the changed link
state as autonegotiation only happens when the link comes up or when
requested. This is the reason why they say you should have matching
capabilities on each end, but it is not always possible.
For whatever reason, going from 100baseTX to 10baseT drops the link and
the switch picks up on the negotiation, but going from 10baseT back to
100baseTX doesn not drop the link. ifconfig bge0 down doesn't bring
the link down either.
Then, when we flip the situation around and the NIC is set to auto and is
connected to a 10baseT hub that doesn't do NWAY, I don't get anything at
all. The NIC has detected that we are running at 10BaseT, but no data will
go in or out of the wire. So far I have seen this with both bge and wm, I
haven't tested others as these are the onboard nics on thousands of
machines that I need this to run on. Thankfully almost all of them are
hooked to switches that support NWAY.
On Wed, 9 Nov 2005, M Graff wrote:
> Chris Tribo wrote:
> > Well I agree that it isn't "best practice" but it works sufficiently to
> > netboot the PC and in Windows set to autonegotiate on the PC side. It
> > just doesn't seem to be "correct" that the PHY knows we're at 10
> > megabit but won't let any data in or out in NetBSD. I don't need it to
> > be maximum efficiency, or error-free, I just need to transfer about 20k
> > of data and reboot the machine.
> Actually, if you lock down one side to (say) 10 Mbps you should also
> lock it at half duplex. I don't think _any_ negotiation occurs if you
> don't do that.
> Autoneg switches should fall back, but IMHO some fail...
The nice thing about Windows is - It does not just crash, it displays a
dialog box and lets you press 'OK' first.
-- Arno Schaefer