We help IT Professionals succeed at work.

urgent: how to change the nic speed from 100 half to 1000full in Solaris10

ikhan_1971
ikhan_1971 asked
on
Hi All,

I need to change the nic speed from 100 half to 100full for interface e1000g0 on solaris 10, below is output from dladm show-dev command
pyewacket-1.net.isc.upenn.edu: dladm show-dev
e1000g0         link: up        speed: 100   Mbps       duplex: half
e1000g1         link: unknown   speed: 0     Mbps       duplex: half
e1000g2         link: unknown   speed: 0     Mbps       duplex: half
e1000g3         link: unknown   speed: 0     Mbps       duplex: half

Thanks in advance
Khan
Comment
Watch Question

Consulting SW Engineer - Lync/Skype4Business
Commented:
Solaris is often unable to correctly auto-negotiate duplex settings with a link partner (e.g. switch), especially when the switch is set to 100Mbit full-duplex. You can force the NIC into 100Mbit full-duplex by disabling auto-negotiation and 100Mbit half-duplex capability.

Example with e1000g0:

1. Make the changes to the running system.
# ndd -set /dev/e1000g0 adv_100hdx_cap 0
# ndd -set /dev/e1000g0 adv_100fdx_cap 1
# ndd -set /dev/e1000g0 adv_autoneg_cap 0

2. Make kernel parameter changes to preserve the speed and duplex settings after a reboot.
# vi /etc/system

Add:
# set hme:e1000g0_adv_autoneg_cap=0
# set hme:e1000g0_adv_100hdx_cap=0
# set hme:e1000g0_adv_100fdx_cap=1
Pieter JordaanSenior Systems Administrator - Web hosting and Network Security.
Commented:
You were probably looking for a simple solution =)

But this is how it's done.

http://spiralbound.net/2005/04/05/forcing-sun-network-interfaces-to-100full-duplex

Change /dev/eri to your interface name.

Note: It is safer to create a script that loads at boot.

Author

Commented:
After running above command it shows 100 full but I would like to set it as 1000 full, please let me know what need to be corrected here

Thanks,
Khan
Steven SheeleyConsulting SW Engineer - Lync/Skype4Business
Commented:
Example with e1000g0:

1. Make the changes to the running system.
# ndd -set /dev/e1000g0 adv_1000hdx_cap 0
# ndd -set /dev/e1000g0 adv_1000fdx_cap 1
# ndd -set /dev/e1000g0 adv_autoneg_cap 0

2. Make kernel parameter changes to preserve the speed and duplex settings after a reboot.
# vi /etc/system

Add:
# set hme:e1000g0_adv_autoneg_cap=0
# set hme:e1000g0_adv_1000hdx_cap=0
# set hme:e1000g0_adv_100fdx_cap=1
Commented:
For 1000 full, its

#ndd -set /dev/e1000g0 adv_1000hdx_cap 0
# ndd -set /dev/e1000g0 adv_1000fdx_cap 1
# ndd -set /dev/e1000g0 adv_autoneg_cap 0

Author

Commented:
Thanks for your comments here,

when I am ran above command it says this error, is this because the switch is set to 100 full and need to tell network administrator to change to 1000 full or something or is there something I am doing incorrect here.

pyewacket-1.net.isc.upenn.edu: ndd -set /dev/e1000g0 adv_1000hdx_cap 0
operation failed: Permission denied
pyewacket-1.net.isc.upenn.edu:
pyewacket-1.net.isc.upenn.edu: dladm show-dev
e1000g0         link: up        speed: 100   Mbps       duplex: full
e1000g1         link: unknown   speed: 0     Mbps       duplex: half
e1000g2         link: unknown   speed: 0     Mbps       duplex: half
e1000g3         link: unknown   speed: 0     Mbps       duplex: half
pyewacket-1.net.isc.upenn.edu:

Thanks for your replies

Khan
Steven SheeleyConsulting SW Engineer - Lync/Skype4Business
Commented:
If the switch is set to 100Full you need to have it set to 1000Full so that the NIC can run at that speed. The NIC will not run faster than the switch port settings.
Commented:
Once the switch be setup to 1000 full duplex with autonegotiate on, setup autonegotiate on at Solaris server end is all you need.
Commented:
check the switch settings with your network administrator...it should be 1000 full duplex.
Commented:
try this command
dladm set-linkprop -p duplex=full e1000g0
Brian UtterbackPrinciple Software Engineer
Commented:
For speed 1000, you must set auto-negotiation on. I have dealt with literally hundreds of cases where the interface didn't come up with what was wanted. In nearly all of them the problem was always the mis-guided attempt to force some particular set of attributes, again, nearly all of them forcing the same set as would have been negotiated if forcing wasn't used.

In the early years of auto-neg, it was often the case that there were problems, but in the last 10 years the problems are always admins trying to force the interfaces to do what they are supposed to do anyway.

The point is, remove all of the forcing changes on the Solaris side and the switch side and you will get what you want, very reliably.