1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4lib_dir=$(dirname $0)/../../../../net/forwarding
5
6NUM_NETIFS=6
7source $lib_dir/lib.sh
8source $lib_dir/tc_common.sh
9source devlink_lib_spectrum.sh
10
11current_test=""
12
13cleanup()
14{
15	pre_cleanup
16	if [ ! -z $current_test ]; then
17		${current_test}_cleanup
18	fi
19	devlink_sp_size_kvd_to_default
20}
21
22devlink_sp_read_kvd_defaults
23trap cleanup EXIT
24
25ALL_TESTS="router tc_flower mirror_gre tc_police port rif_mac_profile"
26for current_test in ${TESTS:-$ALL_TESTS}; do
27	RET_FIN=0
28	source ${current_test}_scale.sh
29
30	num_netifs_var=${current_test^^}_NUM_NETIFS
31	num_netifs=${!num_netifs_var:-$NUM_NETIFS}
32
33	for profile in $KVD_PROFILES; do
34		RET=0
35		devlink_sp_resource_kvd_profile_set $profile
36		if [[ $RET -gt 0 ]]; then
37			log_test "'$current_test' [$profile] setting"
38			continue
39		fi
40
41		for should_fail in 0 1; do
42			RET=0
43			target=$(${current_test}_get_target "$should_fail")
44			${current_test}_setup_prepare
45			setup_wait $num_netifs
46			${current_test}_test "$target" "$should_fail"
47			${current_test}_cleanup
48			if [[ "$should_fail" -eq 0 ]]; then
49				log_test "'$current_test' [$profile] $target"
50			else
51				log_test "'$current_test' [$profile] overflow $target"
52			fi
53			RET_FIN=$(( RET_FIN || RET ))
54		done
55	done
56done
57current_test=""
58
59exit "$RET_FIN"
60