1219820Sjeff#!/bin/sh 2219820Sjeff# 3219820Sjeff# This simple script will collect outputs of ibroute for all switches 4219820Sjeff# on the subnet and drop it on stdout. It can be used for MFTs dump 5219820Sjeff# generation. 6219820Sjeff# 7219820Sjeff 8219820Sjeffusage () 9219820Sjeff{ 10219820Sjeff echo Usage: `basename $0` "[-h] [-D] [-C ca_name]" \ 11219820Sjeff "[-P ca_port] [-t(imeout) timeout_ms]" 12219820Sjeff exit 2 13219820Sjeff} 14219820Sjeff 15219820Sjeffdump_by_lid () 16219820Sjeff{ 17219820Sjefffor sw_lid in `ibswitches $ca_info \ 18219820Sjeff | sed -ne 's/^.* lid \([0-9a-f]*\) .*$/\1/p'` ; do 19219820Sjeff ibroute $ca_info -M $sw_lid 20219820Sjeffdone 21219820Sjeff} 22219820Sjeff 23219820Sjeffdump_by_dr_path () 24219820Sjeff{ 25219820Sjefffor sw_dr in `ibnetdiscover $ca_info -v \ 26219820Sjeff | sed -ne '/^DR path .* switch /s/^DR path \[\(.*\)\].*$/\1/p' \ 27219820Sjeff | sed -e 's/\]\[/,/g' \ 28219820Sjeff | sort -u` ; do 29219820Sjeff ibroute $ca_info -M -D ${sw_dr} 30219820Sjeffdone 31219820Sjeff} 32219820Sjeff 33219820Sjeffuse_d="" 34219820Sjeffca_info="" 35219820Sjeff 36219820Sjeffwhile [ "$1" ]; do 37219820Sjeff case $1 in 38219820Sjeff -D) 39219820Sjeff use_d="-D" 40219820Sjeff ;; 41219820Sjeff -h) 42219820Sjeff usage 43219820Sjeff ;; 44219820Sjeff -P | -C | -t | -timeout) 45219820Sjeff case $2 in 46219820Sjeff -*) 47219820Sjeff usage 48219820Sjeff ;; 49219820Sjeff esac 50219820Sjeff if [ x$2 = x ] ; then 51219820Sjeff usage 52219820Sjeff fi 53219820Sjeff ca_info="$ca_info $1 $2" 54219820Sjeff shift 55219820Sjeff ;; 56219820Sjeff -*) 57219820Sjeff usage 58219820Sjeff ;; 59219820Sjeff *) 60219820Sjeff usage 61219820Sjeff ;; 62219820Sjeff esac 63219820Sjeff shift 64219820Sjeffdone 65219820Sjeff 66219820Sjeffif [ "$use_d" = "-D" ] ; then 67219820Sjeff dump_by_dr_path 68219820Sjeffelse 69219820Sjeff dump_by_lid 70219820Sjefffi 71219820Sjeff 72219820Sjeffexit 73