Infodoc ID |
|
Synopsis |
|
Date |
16728 |
|
How does 100baseT ethernet auto-negotiation work and what are the hme and qfe
driver defaults |
|
20 Apr 2000 |
Summary:
The 100BaseT ethernet specification describes a negotiation process
that allows a device at each end of a network link to automatically
exchange information about their capabilities and perform the
configuration necessary to operate together at their maximum common
level. For example, auto-negotiation can determine whether a 100 Mbps
hub is connected to a 10 Mbps or 100 Mbps adapter and then adjust its
mode of operation accordingly.
Technical Info:
The auto-negotiation activity is performed out-of-band using Fast Link
Pulse (FLP) Burst to identify the highest physical-layer technology
that can be used by both devices, such as 10BaseT, 100BaseTX, or
100BaseT4. The auto-negotiation definition also provides a parallel
detection function that allows half- and full-duplex 10BaseT, half-
and full-duplex 100BaseTX, and 100BaseT4 physical layers to be
recognized, even if one of the connected devices does not offer
auto-negotiation capabilities. See the IEEE 802.3u 100BaseT
FastEthernet specification and the Web References listed below for
more details:
link to: http://cesdis.gsfc.nasa.gov/linux/misc/NWay.html
link to: http://www.iol.unh.edu/training/fether/aneg/
Backward compatability:
If auto-negotiation is NOT implemented (on either side) and the FE
driver is unable to sense the speed, the FE device will default to
the lowest enabled mode ( 10Mb Half-Duplex ).
If auto-negotiation is implemented (adv_autoneg_cap=1) on one side
of the link and disabled on the other (adv_autoneg_cap=0) then the driver
will use Parallel Detection to determine 10 or 100 by examining the signal
it is receiving and should set the speed of the interface to match the link
partner and the Mode adjusted to Half-Duplex (not FDX).
Auto-Negotiation scheme:
With AutoNeg enabled on both sides of the link, the "link partners"
will use Auto-Negotiation to determine each others capabilites and use
the highest negotiated link.
Auto-Negotiation Link Partner Abilities are negotiated in the
following order if all the capabilites are advertized.
The Speed and duplex mode can be forced or changed
(see infodoc 16144 or hme FastEthernet platform notes )
* Normal Priority scheme (from highest to lowest) for Auto Link
Negotiation if advertisement of these capabilites are turned on:
1 - 100Base-TX Full Duplex
2 - 100Base-T4
3 - 100Base-TX
4 - 10Base-T Full Duplex
5 - 10Base-T
Sun Specific Information:
The be, hme and qfe 100Mb ethernet interface cards have
Auto-Negotiation capabilities.
When setting params via 'ndd' you must issue the command for changing
adv_autoneg_cap as the LAST command.
This seems to be correctly reported in the other SRDBs and INFODOCs.
Issues only exist if you set the params using the 'ndd' method.
And, if you do it at runtime, without a reboot, could reset/hang.
If you put them in /etc/system & reboot, no worries, works every time!
The ie, le, and qe 10Mb interfaces do NOT have this capability and
operate at 10Mbps HDX only.
By default (prior to the patch 104212-02 or later for 2.5.1)
advertising 100fdx and 10fdx is OFF:
adv_autoneg_cap=1 adv_100fdx_cap=0 adv_100hdx_cap=1 adv_100T4_cap=0
adv_10hdx_cap=1 adv_10fdx_cap=0
With patch 104212-XX 100fdx is ON by default:
adv_autoneg_cap=1 adv_100fdx_cap=1 adv_100hdx_cap=1 adv_100T4_cap=0
adv_10hdx_cap=1 adv_10fdx_cap=0
To determine the link partners negotiation capabilities, the ndd utility
can be used.
# ndd -set /dev/hme instance 0 ( selects hme0 device)
( 1 = ON, 0 = OFF/not advertized)
# ndd -get /dev/hme lp_autoneg_cap
# ndd -get /dev/hme lp_100fdx_cap
# ndd -get /dev/hme lp_100hdx_cap
# ndd -get /dev/hme lp_100T4_cap
# ndd -get /dev/hme lp_10fdx_cap
# ndd -get /dev/hme lp_10hdx_cap
To check what the driver is setup for:
Example for qfe devices:
# ndd -set /dev/qfe instance 0
( 1 = ON, 0 = OFF/not advertised)
# ndd -get /dev/qfe adv_autoneg_cap
# ndd -get /dev/qfe adv_100fdx_cap
# ndd -get /dev/qfe adv_100hdx_cap
# ndd -get /dev/qfe adv_100T4_cap
# ndd -get /dev/qfe adv_10hdx_cap
# ndd -get /dev/qfe transceiver_inuse
If the link partner (switch) does not support auto negotiation,
then 100 Mbps half duplex is chosen by the driver if parallel detection
is successful. Thus, you must force the speed and mode on both sides to get
the desired speed and duplex (100MbFDX)
4.x note:
SunOS 4.1.X hme driver supports 10 or 100 HDX only by default.
Boot net note:
When booting from net or suninstall over network, the fastethernet device
requires the flash prom updates mentioned below. The device will
boot by default using 100Mb Half Duplex until the hme or qfe driver is
loaded,.
If needed, the transfer speed can be overriden using OpenBoot Prom
(apply transfer-speed) for diskless client boot.
See SunFastEthernet Adapter or Ultra System Installation and Users guide.
Other sunsolve articles of interest:
infodoc 16144 How to force the HME card to work at 100mb (full-duplex).
srdb 16143 How to force the HME card to work at 10mb (full-duplex).
srdb 13206 Forcing network speed to 100 Mbps
srdb 12605 Full duplex support on Sun ethernet drivers.
infodoc 16017 Is the hme interface running at 10BaseT or 100BaseT
Most common 100Mb auto-negotiation problem resolutions:
1. Bad Cable !
2. Switch does not implement 802.3u autonegotiation, so we have to match
and force the speed and duplex.
3. Switch requires firmware/Version update.
(Contact Swith/Hub vendor)
4. missing Ultra Flash PROM Update.
patches 104169 Hardware/PROM: Ultra 2 Standalone Flash PROM Update
patches 104288 Hardware/PROM: Ultra 1E Standalone Flash PROM Update
patches 104881 Hardware/PROM: Ultra 1 (non-E) Standalone Flash PROM
Update
patches 105930 Hardware/PROM: Ultra 30 Standalone Flash PROM Update
patches 106121 Hardware/PROM: Ultra 5/10 Standalone Flash PROM Update
patches 106122 Hardware/PROM: Enterprise 450 / Ultra 450 Standalone
Flash
PROM Update
patches 103346 Hardware/PROM: Ultra Enterprise 3x00/4x00/5x00/6x00 UNIX
flashprom update
5. missing hme driver patch.
patches 102979 SunOS 5.5: hme driver patch
patches 104212 SunOS 5.5.1: /kernel/drv/hme patch
patches 105795 SunOS 5.6: /kernel/drv/hme patch
Top
Sun Proprietary/Confidential: Internal Use Only
Feedback to SunSolve Team