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

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
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment