mirror of
https://github.com/torvalds/linux.git
synced 2026-04-19 15:24:02 -04:00
Query the maximum number of supported port range registers using devlink-resource and test that this number can be reached by configuring tc filters with different port ranges. Test that an error is returned in case the maximum number is exceeded. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Link: https://lore.kernel.org/r/48eee181270d9f291e09d1858c7b26a3f7fcc164.1689092769.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
86 lines
1.8 KiB
Bash
Executable File
86 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
lib_dir=$(dirname $0)/../../../../net/forwarding
|
|
|
|
NUM_NETIFS=6
|
|
source $lib_dir/lib.sh
|
|
source $lib_dir/tc_common.sh
|
|
source devlink_lib_spectrum.sh
|
|
|
|
current_test=""
|
|
|
|
cleanup()
|
|
{
|
|
pre_cleanup
|
|
if [ ! -z $current_test ]; then
|
|
${current_test}_cleanup
|
|
fi
|
|
devlink_sp_size_kvd_to_default
|
|
}
|
|
|
|
devlink_sp_read_kvd_defaults
|
|
trap cleanup EXIT
|
|
|
|
ALL_TESTS="
|
|
router
|
|
tc_flower
|
|
mirror_gre
|
|
tc_police
|
|
port
|
|
rif_mac_profile
|
|
rif_counter
|
|
port_range
|
|
"
|
|
|
|
for current_test in ${TESTS:-$ALL_TESTS}; do
|
|
RET_FIN=0
|
|
source ${current_test}_scale.sh
|
|
|
|
num_netifs_var=${current_test^^}_NUM_NETIFS
|
|
num_netifs=${!num_netifs_var:-$NUM_NETIFS}
|
|
|
|
for profile in $KVD_PROFILES; do
|
|
RET=0
|
|
devlink_sp_resource_kvd_profile_set $profile
|
|
if [[ $RET -gt 0 ]]; then
|
|
log_test "'$current_test' [$profile] setting"
|
|
continue
|
|
fi
|
|
|
|
for should_fail in 0 1; do
|
|
RET=0
|
|
target=$(${current_test}_get_target "$should_fail")
|
|
if ((target == 0)); then
|
|
log_test_skip "'$current_test' [$profile] should_fail=$should_fail test"
|
|
continue
|
|
fi
|
|
${current_test}_setup_prepare
|
|
setup_wait $num_netifs
|
|
# Update target in case occupancy of a certain resource
|
|
# changed following the test setup.
|
|
target=$(${current_test}_get_target "$should_fail")
|
|
${current_test}_test "$target" "$should_fail"
|
|
if [[ "$should_fail" -eq 0 ]]; then
|
|
log_test "'$current_test' [$profile] $target"
|
|
|
|
if ((!RET)); then
|
|
tt=${current_test}_traffic_test
|
|
if [[ $(type -t $tt) == "function" ]]
|
|
then
|
|
$tt "$target"
|
|
log_test "'$current_test' [$profile] $target traffic test"
|
|
fi
|
|
fi
|
|
else
|
|
log_test "'$current_test' [$profile] overflow $target"
|
|
fi
|
|
${current_test}_cleanup $target
|
|
RET_FIN=$(( RET_FIN || RET ))
|
|
done
|
|
done
|
|
done
|
|
current_test=""
|
|
|
|
exit "$RET_FIN"
|