Thu, Apr 18, 2024 at 10:11:12AM CEST, petrm@xxxxxxxxxx wrote: > >Jiri Pirko <jiri@xxxxxxxxxxx> writes: > >> From: Jiri Pirko <jiri@xxxxxxxxxx> >> >> 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: Jiri Pirko <jiri@xxxxxxxxxx> >> --- >> v1->v2: >> - removed unnecessary "-p" and "-e" options >> - removed unnecessary "! -z" from the check >> - moved NETIF_FIND_DRIVER declaration from the config options >> --- >> tools/testing/selftests/net/forwarding/lib.sh | 39 +++++++++++++++++++ >> 1 file changed, 39 insertions(+) >> >> diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh >> index 2e7695b94b6b..b3fd0f052d71 100644 >> --- a/tools/testing/selftests/net/forwarding/lib.sh >> +++ b/tools/testing/selftests/net/forwarding/lib.sh >> @@ -94,6 +94,45 @@ if [[ ! -v NUM_NETIFS ]]; then >> exit $ksft_skip >> fi >> >> +############################################################################## >> +# 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 >> + echo "" >> + else >> + basename `realpath $driver_path` >> + fi > >This is just: > > if [[ -L $driver_path ]]; then > basename `realpath $driver_path` > fi Ok. > >> +} >> + >> +find_netif() > >Maybe name it find_driver_netif? find_netif sounds super generic. netif_find_driver() to be aligned with the variable name. > >Also consider having it take an argument instead of accessing >environment NETIF_FIND_DRIVER directly. Considered, don't see any benefit. Touching outside variable NETIFS anyway. > >> +{ >> + 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 specified driver. >> +: "${NETIF_FIND_DRIVER:=}" > >This would be better placed up there in the Topology description >section. Together with NETIFS and NETIF_NO_CABLE, as it concerns >specification of which interfaces to use. You replied yourself. > >> + >> +if [[ $NETIF_FIND_DRIVER ]]; then >> + unset NETIFS >> + declare -A NETIFS >> + find_netif >> +fi >> + >> net_forwarding_dir=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")") >> >> if [[ -f $net_forwarding_dir/forwarding.config ]]; then > Thanks!