INFODOC ID: 16728 SYNOPSIS: How does 100baseT ethernet auto-negotiation work? and what are the hme and qfe driver defaults DETAIL DESCRIPTION: 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. 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 PRODUCT AREA: Gen. Network PRODUCT: Interface Config SUNOS RELEASE: any HARDWARE: any