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