How to manually set Solaris network interface Speed and Duplex

If you want to set the nic speed and duplex of a Solaris machine you need to basically set up a script that wil be run at start up in one of the run levels preferably /etc/rc2.d/

/etc/rc2.d/S70ndd

1000 full duplex autoneg

#!/sbin/sh

PATH=/sbin:/usr/bin:/usr/sbin

echo “Configuring Network Interfaces”
interface=bge0
case “$1″ in
# Example setting Gigabit Ethernet to Auto Negotiate
‘start’)
ndd -set /dev/$interface adv_1000fdx_cap 1
ndd -set /dev/$interface adv_1000hdx_cap 0
ndd -set /dev/$interface adv_100fdx_cap 0
ndd -set /dev/$interface adv_100hdx_cap 0
ndd -set /dev/$interface adv_10fdx_cap 0
ndd -set /dev/$interface adv_10hdx_cap 0
ndd -set /dev/$interface adv_autoneg_cap 1
;;
esac
exit 0_cap 0