Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Rhinorhino on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

ndd settings do not hold after reboot - solaris 8

Status
Not open for further replies.

wallst32

MIS
Joined
Apr 14, 2003
Messages
545
Location
US
I'm trying to change the default setting of auto-negotiate to 100mbit full duplex on a network interface. Using ndd -set, I am able to disable auto-negotiate and all the other settings I don't want to use, and just keep 100fd on. Running ndd -get shows this has been done.

But once the system is rebooted, the settings are lost, and the network interface reverts back to auto-negotiate.

How can I make the changes in ndd stick?

TIA
 
You can modify the startup script /etc/init.d/inetinit and add those ndd settings to it.
 
This is an example with other ndd parameters, but may seve as a template

The default buffer size for a network session in Solaris is just 24k, but with FDDI, fast ethernet, and gigabit ethernet, you may well want more buffer space so your CPU can be distracted yet still have buffers to capure network packets. (I think 64k is the max size)
The commands to enlarge these buffers change this session, so need to be run at every startup.  we put them in /etc/rc3.d as S95ndd
#       Set the TCP hiwater marks to 64K to improve SunSwift SBus
#       Adapter performace.   JJP 22-Aug-2000
case "$1" in
'start')
  echo "Setting local kernel parameters...\c"
  ndd -set /dev/tcp tcp_xmit_hiwat 65535
  ndd -set /dev/tcp tcp_recv_hiwat 65535
  ndd -set /dev/tcp tcp_cwnd_max 65534
  echo ""
;;
'stop')
  echo "No kernel parameters changed."
;;
*)
  echo "Usage:$0 {start|stop}"
;;
esac
exit 0

I tried to remain child-like, all I acheived was childish.
 
If you have a Sparc system you can hard code it with a script or use /etc/system. If you use x86 looking the /kernel/drv diretory I think and the config file should have a choice.

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

#eri
set eri:adv_autoneg_cap = 0
set eri:adv_100T4_cap = 0
set eri:adv_100fdx_cap = 1
set eri:adv_100hdx_cap = 0
set eri:adv_10fdx_cap = 0
set eri:adv_10hdx_cap = 0

#bge0
I did not mess with the /etc/system that much but you can use a script also but you need to set all of them or it will not work.

ndd -set /dev/bge0 adv_autoneg_cap 0
ndd -set /dev/bge0 adv_1000fdx_cap 0
ndd -set /dev/bge0 adv_1000hdx_cap 0
ndd -set /dev/bge0 adv_100fdx_cap 1
ndd -set /dev/bge0 adv_100hdx_cap 0
ndd -set /dev/bge0 adv_10fdx_cap 0
ndd -set /dev/bge0 adv_10hdx_cap 0
 
does bge have 10fdx and 10hdx cap? Never saw this...

Best Regards, Franz
--
Solaris System Manager from Munich, Germany
I used to work for Sun Microsystems Support (EMEA) for 5 years
 
Yes it does the thing it does not have the others do is the 100T4 setting.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top