Commit 41ad836e authored by Jiri Pirko's avatar Jiri Pirko Committed by Paolo Abeni
Browse files

selftests: forwarding: add ability to assemble NETIFS array by driver name



Allow driver tests to work without specifying the netdevice names.
Introduce a possibility to search for available netdevices according to
set driver name. Allow test to specify the name by setting
NETIF_FIND_DRIVER variable.

Note that user overrides this either by passing netdevice names on the
command line or by declaring NETIFS array in custom forwarding.config
configuration file.

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
Reviewed-by: default avatarBenjamin Poirier <bpoirier@nvidia.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 96a8326d
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
@@ -84,6 +84,43 @@ declare -A NETIFS=(
# e.g. a low-power board.
: "${KSFT_MACHINE_SLOW:=no}"

##############################################################################
# Find netifs by test-specified driver name

driver_name_get()
{
	local dev=$1; shift
	local driver_path="/sys/class/net/$dev/device/driver"

	if [[ -L $driver_path ]]; then
		basename `realpath $driver_path`
	fi
}

netif_find_driver()
{
	local ifnames=`ip -j link show | jq -r ".[].ifname"`
	local count=0

	for ifname in $ifnames
	do
		local driver_name=`driver_name_get $ifname`
		if [[ ! -z $driver_name && $driver_name == $NETIF_FIND_DRIVER ]]; then
			count=$((count + 1))
			NETIFS[p$count]="$ifname"
		fi
	done
}

# Whether to find netdevice according to the driver speficied by the importer
: "${NETIF_FIND_DRIVER:=}"

if [[ $NETIF_FIND_DRIVER ]]; then
	unset NETIFS
	declare -A NETIFS
	netif_find_driver
fi

net_forwarding_dir=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")")

if [[ -f $net_forwarding_dir/forwarding.config ]]; then