dbba840
#!/bin/bash
dbba840
#
dbba840
# Launch the necessary OpenSM daemons for systemd
dbba840
#
dbba840
# sysconfig: /etc/sysconfig/opensm
dbba840
# config: /etc/rdma/opensm.conf
dbba840
#
dbba840
39a5c52
shopt -s nullglob
39a5c52
dbba840
prog=/usr/sbin/opensm
dbba840
[ -f /etc/sysconfig/opensm ] && . /etc/sysconfig/opensm
dbba840
dbba840
[ -n "$PRIORITY" ] && prio="-p $PRIORITY"
dbba840
dbba840
if [ -z "$GUIDS" ]; then
dbba840
	CONFIGS=""
dbba840
	CONFIG_CNT=0
dbba840
	for conf in /etc/rdma/opensm.conf.[0-9]*; do
dbba840
		CONFIGS="$CONFIGS $conf"
dbba840
		let CONFIG_CNT++
dbba840
	done
dbba840
else
dbba840
	GUID_CNT=0
dbba840
	for guid in $GUIDS; do
dbba840
		let GUID_CNT++
dbba840
	done
dbba840
fi
dbba840
# Start opensm
dbba840
if [ -n "$GUIDS" ]; then
dbba840
	SUBNET_COUNT=0
dbba840
	for guid in $GUIDS; do
dbba840
		SUBNET_PREFIX=`printf "0xfe800000000000%02d" $SUBNET_COUNT`
ac2064a
		(while true; do $prog $prio -g $guid --subnet_prefix $SUBNET_PREFIX; sleep 30; done) &
dbba840
		let SUBNET_COUNT++
dbba840
	done
dbba840
elif [ -n "$CONFIGS" ]; then
dbba840
	for config in $CONFIGS; do
ac2064a
		(while true; do $prog $prio -F $config; sleep 30; done) &
dbba840
	done
dbba840
else
ac2064a
	(while true; do $prog $prio; sleep 30; done) &
dbba840
fi
dbba840
exit 0