diff options
Diffstat (limited to 'contrib/ofed/management/infiniband-diags/scripts/ibhosts.in')
-rw-r--r-- | contrib/ofed/management/infiniband-diags/scripts/ibhosts.in | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/ofed/management/infiniband-diags/scripts/ibhosts.in b/contrib/ofed/management/infiniband-diags/scripts/ibhosts.in new file mode 100644 index 0000000..baba105 --- /dev/null +++ b/contrib/ofed/management/infiniband-diags/scripts/ibhosts.in @@ -0,0 +1,60 @@ +#!/bin/sh + +IBPATH=${IBPATH:-@IBSCRIPTPATH@} + +function usage() { + echo Usage: `basename $0` "[-h] [<topology-file> | -C ca_name" \ + "-P ca_port -t(imeout) timeout_ms]" + exit -1 +} + +topofile="" +ca_info="" + +while [ "$1" ]; do + case $1 in + -h) + usage + ;; + -P | -C | -t | -timeout) + case $2 in + -*) + usage + ;; + esac + if [ x$2 = x ] ; then + usage + fi + ca_info="$ca_info $1 $2" + shift + ;; + -*) + usage + ;; + *) + if [ "$topofile" ]; then + usage + fi + topofile="$1" + ;; + esac + shift +done + +if [ "$topofile" ]; then + netcmd="cat $topofile" +else + netcmd="$IBPATH/ibnetdiscover $ca_info" +fi + +text="`eval $netcmd`" +rv=$? +echo "$text" | awk ' +/^Ca/ {print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\ + substr($0, match($0, "#[ \t]*")+RLENGTH)} +/^ib/ {print $0; next} +/ibpanic:/ {print $0} +/ibwarn:/ {print $0} +/iberror:/ {print $0} +' +exit $rv |