SunSolve Internal

Infodoc ID   Synopsis   Date
16728   How does 100baseT ethernet auto-negotiation work and what are the hme and qfe driver defaults   20 Apr 2000

Description Top

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
Product Area Gen. Network
Product Interface Config
OS any
Hardware any

Top

SunWeb Home SunWeb Search SunSolve Home Simple Search

Sun Proprietary/Confidential: Internal Use Only
Feedback to SunSolve Team