1#!/bin/sh 2# 3# This simple script will collect outputs of ibroute for all switches 4# on the subnet and drop it on stdout. It can be used for LFTs dump 5# generation. 6# 7 8usage () 9{ 10 echo Usage: `basename $0` "[-h] [-D] [-C ca_name]" \ 11 "[-P ca_port] [-t(imeout) timeout_ms]" 12 exit 2 13} 14 15dump_by_lid () 16{ 17for sw_lid in `ibswitches $ca_info \ 18 | sed -ne 's/^.* lid \([0-9a-f]*\) .*$/\1/p'` ; do 19 ibroute $ca_info $sw_lid 20done 21} 22 23dump_by_dr_path () 24{ 25for sw_dr in `ibnetdiscover $ca_info -v \ 26 | sed -ne '/^DR path .* switch /s/^DR path \([,|0-9]\+\) ->.*{\([0-9|a-f]\+\)}.*$/\2 \1/p' \ 27 | sort -u \ 28 | awk 'BEGIN {guid=0;} {if ($1 != guid) { guid=$1; print $2; }}'` ; do 29 ibroute $ca_info -D ${sw_dr} 30done 31} 32 33use_d="" 34ca_info="" 35 36while [ "$1" ]; do 37 case $1 in 38 -D) 39 use_d="-D" 40 ;; 41 -h) 42 usage 43 ;; 44 -P | -C | -t | -timeout) 45 case $2 in 46 -*) 47 usage 48 ;; 49 esac 50 if [ x$2 = x ] ; then 51 usage 52 fi 53 ca_info="$ca_info $1 $2" 54 shift 55 ;; 56 -*) 57 usage 58 ;; 59 *) 60 usage 61 ;; 62 esac 63 shift 64done 65 66if [ "$use_d" = "-D" ] ; then 67 dump_by_dr_path 68else 69 dump_by_lid 70fi 71 72exit 73