xref: /linux/tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
11b6130dfSYuval Mintz#!/bin/bash
21b6130dfSYuval Mintz# SPDX-License-Identifier: GPL-2.0
31b6130dfSYuval Mintz
42cca8751SPetr Machatalib_dir=$(dirname $0)/../../../../net/forwarding
52cca8751SPetr Machata
61b6130dfSYuval MintzNUM_NETIFS=6
72cca8751SPetr Machatasource $lib_dir/lib.sh
82cca8751SPetr Machatasource $lib_dir/tc_common.sh
91b6130dfSYuval Mintzsource devlink_lib_spectrum.sh
101b6130dfSYuval Mintz
111b6130dfSYuval Mintzcurrent_test=""
121b6130dfSYuval Mintz
131b6130dfSYuval Mintzcleanup()
141b6130dfSYuval Mintz{
151b6130dfSYuval Mintz	pre_cleanup
161b6130dfSYuval Mintz	if [ ! -z $current_test ]; then
171b6130dfSYuval Mintz		${current_test}_cleanup
181b6130dfSYuval Mintz	fi
191b6130dfSYuval Mintz	devlink_sp_size_kvd_to_default
201b6130dfSYuval Mintz}
211b6130dfSYuval Mintz
221b6130dfSYuval Mintzdevlink_sp_read_kvd_defaults
231b6130dfSYuval Mintztrap cleanup EXIT
241b6130dfSYuval Mintz
25be00853bSPetr MachataALL_TESTS="
26be00853bSPetr Machata	router
27be00853bSPetr Machata	tc_flower
28be00853bSPetr Machata	mirror_gre
29be00853bSPetr Machata	tc_police
30be00853bSPetr Machata	port
31be00853bSPetr Machata	rif_mac_profile
32be00853bSPetr Machata	rif_counter
33*45c5a384SIdo Schimmel	port_range
34be00853bSPetr Machata"
35be00853bSPetr Machata
361b6130dfSYuval Mintzfor current_test in ${TESTS:-$ALL_TESTS}; do
37059b18e2SDanielle Ratson	RET_FIN=0
381b6130dfSYuval Mintz	source ${current_test}_scale.sh
391b6130dfSYuval Mintz
401b6130dfSYuval Mintz	num_netifs_var=${current_test^^}_NUM_NETIFS
411b6130dfSYuval Mintz	num_netifs=${!num_netifs_var:-$NUM_NETIFS}
421b6130dfSYuval Mintz
431b6130dfSYuval Mintz	for profile in $KVD_PROFILES; do
441b6130dfSYuval Mintz		RET=0
451b6130dfSYuval Mintz		devlink_sp_resource_kvd_profile_set $profile
461b6130dfSYuval Mintz		if [[ $RET -gt 0 ]]; then
471b6130dfSYuval Mintz			log_test "'$current_test' [$profile] setting"
481b6130dfSYuval Mintz			continue
491b6130dfSYuval Mintz		fi
501b6130dfSYuval Mintz
511b6130dfSYuval Mintz		for should_fail in 0 1; do
521b6130dfSYuval Mintz			RET=0
531b6130dfSYuval Mintz			target=$(${current_test}_get_target "$should_fail")
548cad339dSPetr Machata			if ((target == 0)); then
558cad339dSPetr Machata				continue
568cad339dSPetr Machata			fi
571b6130dfSYuval Mintz			${current_test}_setup_prepare
581b6130dfSYuval Mintz			setup_wait $num_netifs
59d3ffeb2dSIdo Schimmel			# Update target in case occupancy of a certain resource
60d3ffeb2dSIdo Schimmel			# changed following the test setup.
61d3ffeb2dSIdo Schimmel			target=$(${current_test}_get_target "$should_fail")
621b6130dfSYuval Mintz			${current_test}_test "$target" "$should_fail"
631b6130dfSYuval Mintz			if [[ "$should_fail" -eq 0 ]]; then
641b6130dfSYuval Mintz				log_test "'$current_test' [$profile] $target"
653128b9f5SPetr Machata
663128b9f5SPetr Machata				if ((!RET)); then
673128b9f5SPetr Machata					tt=${current_test}_traffic_test
683128b9f5SPetr Machata					if [[ $(type -t $tt) == "function" ]]
693128b9f5SPetr Machata					then
703128b9f5SPetr Machata						$tt "$target"
713128b9f5SPetr Machata						log_test "'$current_test' [$profile] $target traffic test"
723128b9f5SPetr Machata					fi
733128b9f5SPetr Machata				fi
741b6130dfSYuval Mintz			else
751b6130dfSYuval Mintz				log_test "'$current_test' [$profile] overflow $target"
761b6130dfSYuval Mintz			fi
7735d5829eSPetr Machata			${current_test}_cleanup $target
78059b18e2SDanielle Ratson			RET_FIN=$(( RET_FIN || RET ))
791b6130dfSYuval Mintz		done
801b6130dfSYuval Mintz	done
81196f9bc0SAmit Cohendone
821b6130dfSYuval Mintzcurrent_test=""
831b6130dfSYuval Mintz
84059b18e2SDanielle Ratsonexit "$RET_FIN"
85