How do I set my hme interface to e.g. 100Mb full duplex?

How do I set my hme interface to e.g. 100Mb full duplex?

This applies only to Solaris 2.5 or later; hme interfaces are not supported
under SunOS 4.x or earlier versions of Solaris.

Sun's 10/100 network interface on the Ultra systems and on the SunSWIFT
network cards are capable of negotiating with a network switch; if this
is working, and if the other end is capable of 100Mb full duplex (FD)
operation, the hme card will automatically set itself properly. However,
this may not necessarily work with some networking gear.

If the two ends have different ideas about what mode the link is, you
may see "late collision" messages, dropped packets, or complete failure.

To force a particular mode, e.g. 100Mb FD, you can use ndd as follows:

# turn off autonegotiation
ndd -set /dev/hme adv_autoneg_cap 0
# turn on 100Mb full-duplex capability
ndd -set /dev/hme adv_100fdx_cap 1
# turn off 100Mb half-duplex capability
ndd -set /dev/hme adv_100hdx_cap 0
# turn off 10Mb full-duplex capability
ndd -set /dev/hme adv_10fdx_cap 0
# turn off 10Mb half-duplex capability
ndd -set /dev/hme adv_10hdx_cap 0

You may have to force the other end (e.g. switch) to use the same mode.
Consult the manual for your switch. NB: Fast ethernet hubs are always
100Mb half-duplex, and ethernet hubs are always 10Mb half-duplex.

If you have more than one hme card in your system, before issuing the
above ndd commands, you need to first select the specific hme card you
want to set. For example, to select hme2, type:
ndd -set /dev/hme instance 2
Subsequent ndd commands to /dev/hme will only apply to hme2.

If you want to force all the hme cards on your system to a specific
mode at machine boot, you can set hme driver variables in /etc/system.
For example, to force all hme cards on the system to use 100Mbit FD,
put the following in /etc/system:

set hme:hme_adv_autoneg_cap=0
set hme:hme_adv_100fdx_cap=1
set hme:hme_adv_100hdx_cap=0
set hme:hme_adv_10hdx_cap=0
set hme:hme_adv_10fdx_cap=0



Home
FAQ