+# Determine the local interface(s) used for LNet
+load_modules || error "Failed to load modules"
+NIDS=( $($LCTL list_nids | xargs echo) )
+if [[ -z ${NIDS[@]} ]]; then
+ error "No NID configured after module load"
+fi
+
+declare -a INTERFACES
+for ((i = 0; i < ${#NIDS[@]}; i++)); do
+ ip=$(sed 's/^\(.*\)@.*$/\1/'<<<${NIDS[i]})
+ INTERFACES[i]=$(ip -o a s |
+ awk '$4 ~ /^'$ip'\//{print $2}')
+ if [[ -z ${INTERFACES[i]} ]]; then
+ error "Can't determine interface name for NID ${NIDS[i]}"
+ elif [[ 1 -ne $(wc -w <<<${INTERFACES[i]}) ]]; then
+ error "Found $(wc -w <<<${INTERFACES[i]}) interfaces for NID ${NIDS[i]}. Expect 1"
+ fi
+done
+
+cleanup_lnet || error "Failed to cleanup LNet"
+