SunSolve Internal

Infodoc ID   Synopsis   Date
18262   How to troubleshoot 100Mb fastethernet 802.3 auto-negotiation problems.   5 Jan 2000

Description Top

What are some troubleshooting guidelines and tips for narrowing down 
an auto-negotiation problem on hme and qfe 100BaseT interfaces?

It's just a matter of process of elimination when working on auto-negotiation 
issues. Here are all the possibilities:

Usually the 100Mb auto-negotiation problem ends up getting resolved with:

 1. Bad Cable! (different configs and nics and cable lengths can cause
    varying results)
 2. Switch does not implement 802.3u auto-negotiation, so we match
    and force the speed and duplex. 
 3. missing Ultra Flash PROM Update. 
 4. missing hme / qfe driver patch. 
 5. Switch requires firmware/Version update. 
 6. autoneg compatibility or parallel detection problem/failure between the 
    link partners requires forcing speed and duplex mode. 
 7. 100Mb port HW problem on Link partner ( Switch - Hub - Router). 
 8. 100Mb port HW problem on Ultra motherboard or Fastethernet Card

-----------
Information and notes :

Cable must be category 5 100Mb certified and tested. 
Normally a cat-5 cable tester / pair scanner is used to check 100BaseT
installed cat5 cabling and patch panels.

To check and confirm link speed, mode settings and auto-negotiation setup.
( if using qfe - substitute "qfe" where the "hme" device is mentioned.)

 # ndd -set /dev/hme instance 0 
 # ndd -get /dev/hme link_status 
    0 = link down   1 = link up 
 # ndd -get /dev/hme link_speed 
    0 = 10 Meg   1 = 100 Meg 
 # ndd -get /dev/hme link_mode 
    0 = half duplex   1 = full duplex 

Double check that the hme driver is setup to advertise autoneg and the 
appropriate capabilities.
( should all be 1)
 # ndd -set /dev/hme instance 0 
 # ndd /dev/hme adv_100fdx_cap 
 # ndd /dev/hme adv_100hdx_cap  
 # ndd /dev/hme adv_10fdx_cap  
 # ndd /dev/hme adv_10hdx_cap  
 # ndd /dev/hme adv_autoneg_cap  

To check what the link partner(Switch or hub or MII transceiver) capabilities
are set to:

   Dump the parameters for your link partner 
   ( these registers are set from info received from the other side of the 
   link [ switch, transceiver..])

Set the instance number (the instance would correspond to the interface name) 
 # ndd -set /dev/hme instance 0 
 Now dump or get the parameter values for these: 
 # 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_10fdx_cap 
 # ndd -get /dev/hme lp_10hdx_cap 

The values for these are what your partner (the switch you are plugged into) 
is advertising.  1 = enabled/capable      0 = not enabled/not capable 

If the lp_autoneg_cap register is zero = This indicates the Link-partner/Hub
has 802.3u auto-negotiation adv_autoneg_cap disabled, not implemented, or 
somehow not detected. Concentrate on cabling, link partner HW, or requirement 
for firmware/patch upgrades.

If one side of the link fails parallel detection then forcing the speed and
mode may be necessary. 

 # ndd -set /dev/hme instance #        <--- set to the Interface in Question 
                                            ( #=0 for hme0)
 # ndd -set /dev/hme adv_100fdx_cap 1  <--- force ON 100Mb full duplex 
 # ndd -set /dev/hme adv_100hdx_cap 0  <--- force OFF 100Mb half duplex 
 # ndd -set /dev/hme adv_10fdx_cap 0   <--- force OFF 10Mb full duplex 
 # ndd -set /dev/hme adv_10hdx_cap 0   <--- force OFF 10Mb half duplex 
 # ndd -set /dev/hme adv_autoneg_cap 0 <--- force OFF autonegotiation 
                                            (FORCE mode) 
or /etc/system: 
       set hme:hme_adv_autoneg_cap=0 
       set hme:hme_adv_100fdx_cap=1 
       set hme:hme_adv_100fdx_cap=1
       
qfe driver: Quad FastEthernet:

The same procedures apply to gfe driver ( substitute /dev/qfe for /dev/hme)

  # ndd -set /dev/qfe adv_autoneg_cap 0

vge driver: Vector Gigabit:

Defaults to autonegotiation on Full-Duplex Only. auto-negotiation can be 
turned off :

  # ndd -set /dev/vge link_negotiation 0

ge driver: GEM Gigabit:

Defaults are:

   adv_1000autoneg_cap : 1 
   adv_1000fdx_cap : 1 
   adv_1000hdx_cap : 1 
   adv_pauseTX : 0 
   adv_pauseRX : 1  
 # ndd -set /dev/ge adv_1000autoneg_cap 0
 # ndd -get /dev/hme lp_autoneg_cap 

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 for 100Mb. Thus, you must force the speed and mode on both sides
to get the desired speed and duplex (100MbFDX).

For more information refer to these Sunsolve documents and the corresponding
Sun Adapter Installation and Users guide.

infodoc 16070      How to set hme parameter for more than one hme interface
infodoc 16728      How does 100baseT ethernet auto-negotiation work? and what
                   are the hme and qfe driver defaults
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
Applies To Operating Systems/Solaris/Solaris 2.x
Attachments (none)

Top

SunWeb Home SunWeb Search SunSolve Home Simple Search

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