1#!/bin/sh
2
3if [ -f /etc/sysconfig/network ]; then
4. /etc/sysconfig/network
5fi
6
7ib_sysfs="/sys/class/infiniband"
8newname="$HOSTNAME"
9
10
11function usage
12{
13	echo "Usage: `basename $0` [-hv] [<name>]"
14	echo "   set the node_desc field of all hca's found in \"$ib_sysfs\""
15	echo "   -h this help"
16	echo "   -v view all node descriptors"
17	echo "   [<name>] set name to name specified."
18	echo "      Default is to use the hostname: \"$HOSTNAME\""
19	exit 2
20}
21
22function viewall
23{
24   for hca in `ls $ib_sysfs`; do
25      if [ -f $ib_sysfs/$hca/node_desc ]; then
26         echo -n "$hca: "
27         cat $ib_sysfs/$hca/node_desc
28      else
29         logger -s "Failed to set node_desc for : $hca"
30      fi
31   done
32   exit 0
33}
34
35while getopts "hv" flag
36do
37   case $flag in
38      "h") usage;;
39      "v") viewall;;
40   esac
41done
42
43shift $(($OPTIND - 1))
44
45if [ "$1" != "" ]; then
46	newname="$1"
47fi
48
49for hca in `ls $ib_sysfs`; do
50   if [ -f $ib_sysfs/$hca/node_desc ]; then
51      echo -n "$newname" >> $ib_sysfs/$hca/node_desc
52   else
53      logger -s "Failed to set node_desc for : $hca"
54   fi
55done
56
57exit 0
58