Take the 2-minute tour ×

I am trying to optimize the network speed of my Solaris X86 server, and have discovered that the Cisco 3548 that it is connected to has issues with the NIC in my server. The NIC appears to have not been configured fully, and is coming up 100 half-duplex. The 3548 ports are all set to 100 full.

Ideally I'd like to have the server set for 100 full, and have been attempting to configure it using ndd commands. However I have had no results. The following command:

-bash-3.00# dladm show-dev
rtls0           link: unknown   speed: 100   Mbps       duplex: unknown

The NIC shows up as:

pci bus 0x0001 cardnum 0x06 function 0x00: vendor 0x10ec device 0x8139

which should be configurable.

I have modified the configuration file from auto config (5) to 100 fdx (4) to no avail.

If there is no other choice, I could alter the Cisco 3548 to be 100 half-duplex. However, this solution causes huge performance loss. Currently throughput is about 500Kbps, when it should be around 40Mbps.

share|improve this question
add comment

1 Answer

Fixing the speed to 100FD on the router disables the Ethernet negotiating information. There is timing information which allows your NIC to match the speed but not the duplex. I believe Cisco no longer recommends fixing the speed and duplex. There was a time when hardware had problems properly negotiating, but this seems to be fixed.

You will need to add the set some kernel flags. See this page on setting speed and duplex.

EDIT: Copied from link above. You will need to determine the the device name which might not be hme.

Make the changes to the running system.

ndd -set /dev/hme adv_100hdx_cap 0
ndd -set /dev/hme adv_100fdx_cap 1
ndd -set /dev/hme adv_autoneg_cap 0

Make kernel parameter changes to preserve the speed and duplex settings after a reboot. Add the following to /etc/system.

set hme:hme_adv_autoneg_cap=0
set hme:hme_adv_100hdx_cap=0
set hme:hme_adv_100fdx_cap=1
share|improve this answer
add comment

Your Answer


