tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: half-/full-duplex ethernet and ifconfig
On Wed, Nov 14, 2012 at 04:02:21PM -0600, David Young wrote:
>
> That still doesn't give us a duplex "don't care" setting, but I cannot
> think of a time when I *do* care what bitrate but I *don't* care what
> duplex.
I cared about the HDX/FDX but not about the speed!
The MAC hardware has to be set HDX/FDX matching what the PHY is doing.
The MAC hardware didn't need to know whether the speed was 10M or 100M
the data just got clocked through the fifos faster.
I suspect the only broken autonegotiaton comes about when connected to
devices that don't actually do it - especially after replugging from
a device that does.
Remember the history.
The original 10BaseT spec defined 'link test pulses', one was sent
at a fixed interval to indicate the presence of the system.
When 100BaseT was added, it sent a short burst of link test pulses.
A system receiving the bursts knew it could send at 100M (or 10M).
This is called 'autodetect'.
Many 10/100 autodetect hubs ran two collision domains (one at each
speed) with a bridge between them.
The FDX modes added 'autonegotiation', here the burst of link test
pulses is modified so it can encode a few bytes of data.
An autodetect hub will see this an the 100M link test sequence and
send at 100M (HDX) regardless of the advertised speeds.
Almost all hubs/switches than can to FDX are 'store and forward'
devices. Some of the very early ones were 'cut through' - and
the target port better be idle!
I don't think there was ever any mainstream that did FDX that diddn't
support autonegotiation.
The problem tends to be drivers that use the recieved autonegotiate
(ANRR?) value to detect the mode - and get a stale value when the cable
is replugged into a 10M hub or an 10/100 autonegotiate hub.
The ANAR and ANRR are fixed MII registers, the actual operating mode
of the PHY is only MD.
David
--
David Laight: david%l8s.co.uk@localhost
Home |
Main Index |
Thread Index |
Old Index