1219820Sjeff#!/bin/sh 2219820Sjeff 3219820SjeffIBPATH=${IBPATH:-@IBSCRIPTPATH@} 4219820Sjeff 5219820Sjefffunction usage() { 6219820Sjeff echo Usage: `basename $0` "[-h] [<topology-file> | -C ca_name" \ 7219820Sjeff "-P ca_port -t(imeout) timeout_ms]" 8219820Sjeff exit -1 9219820Sjeff} 10219820Sjeff 11219820Sjefftopofile="" 12219820Sjeffca_info="" 13219820Sjeff 14219820Sjeffwhile [ "$1" ]; do 15219820Sjeff case $1 in 16219820Sjeff -h) 17219820Sjeff usage 18219820Sjeff ;; 19219820Sjeff -P | -C | -t | -timeout) 20219820Sjeff case $2 in 21219820Sjeff -*) 22219820Sjeff usage 23219820Sjeff ;; 24219820Sjeff esac 25219820Sjeff if [ x$2 = x ] ; then 26219820Sjeff usage 27219820Sjeff fi 28219820Sjeff ca_info="$ca_info $1 $2" 29219820Sjeff shift 30219820Sjeff ;; 31219820Sjeff -*) 32219820Sjeff usage 33219820Sjeff ;; 34219820Sjeff *) 35219820Sjeff if [ "$topofile" ]; then 36219820Sjeff usage 37219820Sjeff fi 38219820Sjeff topofile="$1" 39219820Sjeff ;; 40219820Sjeff esac 41219820Sjeff shift 42219820Sjeffdone 43219820Sjeff 44219820Sjeffif [ "$topofile" ]; then 45219820Sjeff netcmd="cat $topofile" 46219820Sjeffelse 47219820Sjeff netcmd="$IBPATH/ibnetdiscover $ca_info" 48219820Sjefffi 49219820Sjeff 50219820Sjefftext="`eval $netcmd`" 51219820Sjeffrv=$? 52219820Sjeffecho "$text" | awk ' 53219820Sjeff/^Switch/ { 54219820Sjeff l=$0 55219820Sjeff desc=substr(l, match(l, "#[ \t]*")+RLENGTH) 56219820Sjeff pi=match(desc, "port 0.*") 57219820Sjeff pinfo=substr(desc, pi) 58219820Sjeff desc=substr(desc, 1, pi-2) 59219820Sjeff type="base" 60219820Sjeff ti=match(desc, type) 61219820Sjeff if (ti==0) { 62219820Sjeff type="enhanced" 63219820Sjeff ti=match(desc, type) 64219820Sjeff if (ti!=0) 65219820Sjeff desc=substr(desc, 1, ti-2) 66219820Sjeff } else 67219820Sjeff desc=substr(desc, 1, ti-2) 68219820Sjeff if (ti==0) 69219820Sjeff print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\ 70219820Sjeff desc " " pinfo 71219820Sjeff else 72219820Sjeff print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\ 73219820Sjeff desc " " type " " pinfo} 74219820Sjeff/^ib/ {print $0; next} 75219820Sjeff/ibpanic:/ {print $0} 76219820Sjeff/ibwarn:/ {print $0} 77219820Sjeff/iberror:/ {print $0} 78219820Sjeff' 79219820Sjeffexit $rv 80