#!/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 " 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"