#!/bin/sh # $Id: sol-eth-stat,v 1.1 2001/08/30 02:12:48 friedman Exp $ # Display the status of ethernet devices. # Known to work in Solaris 2.5, 2.6, 7, 8 # for `hme' and `qfe' ethernet drivers. PATH=/usr/sbin:$PATH export PATH case "`/bin/id 2>&1`" in 'uid=0('* ) : ;; * ) echo "Must be root" 1>&2 exit 1 ;; esac for drv in hme qfe ; do dev=/dev/$drv # Save original instance orig_instance=`ndd $dev instance 2> /dev/null` case "$orig_instance" in '' ) continue ;; # Punt if device doesn't exist esac i=0; while :; do case "`ndd -set $dev instance $i 2>&1`" in '' ) : ;; * ) break ;; esac case "`ndd $dev link_status`" in 0 ) link="Link Down" ;; 1 ) link="Link Up" ;; * ) link="(unknown link state)" ;; esac case "`ndd $dev link_speed`" in 0 ) speed="10 Mbps" ;; 1 ) speed="100 Mbps" ;; * ) speed="(unknown speed)" ;; esac case "`ndd $dev link_mode`" in 0 ) duplex="half-duplex" ;; 1 ) duplex="full-duplex" ;; * ) duplex="(unknown duplex)" ;; esac case "`ndd $dev adv_autoneg_cap`" in 0 ) autoneg="(forced)" ;; 1 ) autoneg="(autonegotiated)" ;; * ) autoneg="(unknown negotiation state)" ;; esac echo $drv$i: $speed $duplex $link $autoneg i=`expr $i + 1` done # Restore original instance ndd -set $dev instance $orig_instance 2>&1 done # eof