Commit fc7d5d4e authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

scripts/rxe_cfg: Try to get status from all infiniband devices



Also, add some minor tweaks for the add|rm routines.

Signed-off-by: default avatarMichal Berger <michalx.berger@intel.com>
Change-Id: I39cdbec2c0aca12e7077d8db161e65fdce7ca19f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6241


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 940cd3ae
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ declare -r rdma_rxe_add=$rdma_rxe/parameters/add
declare -r rdma_rxe_rm=$rdma_rxe/parameters/remove

declare -r infiniband=/sys/class/infiniband
declare -r infiniband_verbs=/sys/class/infiniband_verbs
declare -r net=/sys/class/net

declare -A net_devices
@@ -45,11 +46,16 @@ get_ipv4() {
get_rxe_mtu() {
	local rxe=$1
	local mtu
	local uverb

	[[ -c /dev/infiniband/uverbs${rxe/rxe/} ]] || return 0

	for uverb in "$infiniband_verbs/uverbs"*; do
		if [[ $(< "$uverb/ibdev") == "$rxe" ]] \
			&& [[ -c /dev/infiniband/${uverb##*/} ]]; then
			[[ $(ibv_devinfo -d "$rxe") =~ active_mtu:(.*\ \(.*\)) ]]
			echo "${BASH_REMATCH[1]:-(?)}"
			return 0
		fi
	done
}

start() {
@@ -196,7 +202,7 @@ print_status() {
add_rxe() {
	local dev net_devs

	[[ -e $rdma_rxe/parameters ]] || return 1
	[[ -e $rdma_rxe_add ]] || return 0

	if [[ -z $1 || $1 == all ]]; then
		net_devs=("${!net_devices[@]}")
@@ -222,6 +228,8 @@ add_rxe() {
remove_rxe() {
	local rxes rxe

	[[ -e $rdma_rxe_rm ]] || return 0

	rxes=("${!rxe_to_net[@]}")
	if [[ -z $1 || $1 == all ]]; then
		rxes=("${!rxe_to_net[@]}")
@@ -234,7 +242,7 @@ remove_rxe() {

	for rxe in "${rxes[@]}"; do
		echo "$rxe" > "$rdma_rxe_rm"
	done
	done 2> /dev/null
}

link_up() {
@@ -249,8 +257,8 @@ collect_devices() {
	for net_dev in "$net/"!(bonding_masters); do
		(($(< "$net_dev/type") != 1)) && continue
		net_devices["${net_dev##*/}"]=$net_dev
		for rxe_dev in "$infiniband/rxe"+([0-9]); do
			if [[ $(< "$rxe_dev/parent") == "${net_dev##*/}" ]]; then
		for rxe_dev in "$infiniband/"*; do
			if [[ -e $rxe_dev/device/net/${net_dev##*/} ]]; then
				net_to_rxe["${net_dev##*/}"]=${rxe_dev##*/}
				rxe_to_net["${rxe_dev##*/}"]=${net_dev##*/}
				continue 2