#!/bin/sh IBPATH=${IBPATH:-/usr/local/sbin} usage() { echo Usage: `basename $0` "[-h] [" \ "| -C ca_name -P ca_port -t(imeout) timeout_ms]" exit -1 } user_abort() { echo "Aborted" exit 1 } trap user_abort SIGINT gflags="" verbose="" v=0 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 ' function clear_counters(lid) { if (system("'$IBPATH'/perfquery'"$ca_info"' '$gflags' -R -a " lid)) nodeerr++ } function clear_port_counters(lid, port) { if (system("'$IBPATH'/perfquery'"$ca_info"' '$gflags' -R " lid " " port)) nodeerr++ } /^Ca/ || /^Switch/ || /^Rt/ { nnodes++ ntype=$1; nodeguid=substr($3, 4, 16); ports=$2 if (ntype != "Switch") next lid = substr($0, index($0, "port 0 lid ") + 11) lid = substr(lid, 1, index(lid, " ") - 1) clear_counters(lid) } /^\[/ { port = $1 sub("\\(.*\\)", "", port) gsub("[\\[\\]]", "", port) if (ntype != "Switch") { lid = substr($0, index($0, " lid ") + 5) lid = substr(lid, 1, index(lid, " ") - 1) clear_port_counters(lid, port) } } /^ib/ {print $0; next} /ibpanic:/ {print $0} /ibwarn:/ {print $0} /iberror:/ {print $0} END { printf "\n*** WARNING ***: this command is deprecated; Please use \"ibqueryerrors -K\"\n" printf "\n## Summary: %d nodes cleared %d errors\n", nnodes, nodeerr } ' exit $rv