Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / drivers / net / mlxsw / spectrum / resource_scale.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3
4 lib_dir=$(dirname $0)/../../../../net/forwarding
5
6 NUM_NETIFS=6
7 source $lib_dir/lib.sh
8 source $lib_dir/tc_common.sh
9 source devlink_lib_spectrum.sh
10
11 current_test=""
12
13 cleanup()
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
22 devlink_sp_read_kvd_defaults
23 trap cleanup EXIT
24
25 ALL_TESTS="router tc_flower mirror_gre"
26 for current_test in ${TESTS:-$ALL_TESTS}; do
27         source ${current_test}_scale.sh
28
29         num_netifs_var=${current_test^^}_NUM_NETIFS
30         num_netifs=${!num_netifs_var:-$NUM_NETIFS}
31
32         for profile in $KVD_PROFILES; do
33                 RET=0
34                 devlink_sp_resource_kvd_profile_set $profile
35                 if [[ $RET -gt 0 ]]; then
36                         log_test "'$current_test' [$profile] setting"
37                         continue
38                 fi
39
40                 for should_fail in 0 1; do
41                         RET=0
42                         target=$(${current_test}_get_target "$should_fail")
43                         ${current_test}_setup_prepare
44                         setup_wait $num_netifs
45                         ${current_test}_test "$target" "$should_fail"
46                         ${current_test}_cleanup
47                         if [[ "$should_fail" -eq 0 ]]; then
48                                 log_test "'$current_test' [$profile] $target"
49                         else
50                                 log_test "'$current_test' [$profile] overflow $target"
51                         fi
52                 done
53         done
54 done
55 current_test=""
56
57 exit "$RET"