rdma.zsh: Handle machines with multiple NICs

Iterate over each network card and add RDMA to it.

Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
Anna Schumaker 2021-12-15 12:04:00 -05:00
parent 48a2b87ecd
commit f1ea1327f4
1 changed files with 26 additions and 16 deletions

View File

@ -4,25 +4,27 @@ if [ "$#" -lt 2 ]; then
echo "Usage: $0 {rxe,siw,info,start,status,stop,off} {remote host,...}"
fi
rdma_ip() {
getent hosts $1 | head -n 1 | awk '{print $1}'
rdma_ips() {
getent hosts $1 | awk '{print $1}'
}
rdma_dev() {
ssh $1 ip addr show to $(rdma_ip $1) | awk -F': ' '{print $2}'
rdma_devs() {
for ip in $(rdma_ips $1); do
ssh $1 ip addr show to $ip | awk -F': ' '{print $2}'
done
}
rdma_cur() {
ssh $1 rdma link | awk -F '[0-9 ]' '{print $2}'
ssh $1 rdma link | awk -F '[ |/]' '{print $2}'
}
rdma_start() {
cur=$(rdma_cur $1)
if [[ "$cur" != "$3" ]]; then
if [[ ! -z "$cur" ]]; then
rdma_stop $1
fi
ssh $1 "sudo rdma link add "$3"0 type $3 netdev $(rdma_dev $1)"
if [ -z "$(rdma_cur $1 | grep $3)" ]; then
rdma_stop $1
devs=($(rdma_devs $1))
for i in $(seq ${#devs}); do
ssh $1 "sudo rdma link add $3$((i-1)) type $3 netdev ${devs[$i]}"
done
fi
rdma_status $1 $2
}
@ -32,19 +34,27 @@ rdma_info() {
}
rdma_status() {
link=$(ssh $1 rdma link show)
if [ ! -z $link ]; then
echo "$2 $link($(rdma_ip $1))"
links=($(ssh $1 rdma link show))
if [ ! -z "$links" ]; then
ips=($(rdma_ips $1))
devs=($(rdma_devs $1))
for link in $links; do
dev=$(echo $link | awk '{print $NF}')
ip=${ips[${devs[(ie)$dev]}]}
echo "$2 $link ($ip)"
done
else
echo "$2 stopped"
fi
}
rdma_stop() {
ssh $1 "sudo rdma link delete siw0 2>/dev/null"
ssh $1 "sudo rdma link delete rxe0 2>/dev/null"
for dev in $(rdma_cur $1); do
ssh $1 "sudo rdma link delete $dev"
done
}
IFS=$'\n'
tags=($(python /home/anna/bin/colors/vm.py ${@:2}))
for vm in "${@:2}"; do
index=${@[(ie)$vm]}