Solaris 9 / 8: Network Link & Mode Status

ndd command applied to Solaris 8 and Solaris 9, for Solaris 10 there's much more easier method which is using dladm commad.

Network configuration and checking using solaris.

Displays all command options for ndd
#ndd /dev/bge \?     
Choose the interface instance:
#ndd -set /dev/bge instance 0

Verify link status
# ndd /dev/bge0 link_status

link status 0 = Link Down
link status 1 = Link Up

Verify link speed
# ndd /dev/bge0 link_speed

link speed 0 = 10 Mbps
link speed 1 = 100 Mbps
link speed 1000 = 1 Gbit

Verify link mode
# ndd /dev/bge0 link_mode

link mode 0 = Half-Duplex mode (FDX)
link mode 1 = Full-Duplex mode (HDX)

Verify NIC configuration
# ndd -get /dev/bge0 \?
adv_1000fdx_cap (read and write)
adv_1000hdx_cap (read and write)
adv_100fdx_cap (read and write)
adv_100hdx_cap (read and write)
adv_10fdx_cap (read and write)
adv_10hdx_cap (read and write)
adv_autoneg_cap (read and write)
adv_pause_cap (read and write)
adv_asym_pause_cap (read and write)
link_status (read only)
link_speed (read only)
link_duplex (read only)
loop_mode (read only)

To query a different NIC, such as hme1, set the "instance" to 1, and then perform the link_mode and link_speed queries above.
# ndd -set /dev/hme instance 1

Note: the ndd commands above must be run as root. Otherwise, you will receive errors such as "couldn't push module 'hme0', No such device or address."