Commit 47b0e096 authored by Petr Machata's avatar Petr Machata Committed by David S. Miller
Browse files

selftests: forwarding: tc_common: Convert to use busywait



A function busywait() was recently added based on the logic in
__tc_check_packets(). Convert the code in tc_common to use the new
function.

Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
Reviewed-by: default avatarAmit Cohen <amitc@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 844f0556
Loading
Loading
Loading
Loading
+4 −28
Original line number Diff line number Diff line
@@ -6,39 +6,14 @@ CHECK_TC="yes"
# Can be overridden by the configuration file. See lib.sh
TC_HIT_TIMEOUT=${TC_HIT_TIMEOUT:=1000} # ms

__tc_check_packets()
{
	local id=$1
	local handle=$2
	local count=$3
	local operator=$4

	start_time="$(date -u +%s%3N)"
	while true
	do
		cmd_jq "tc -j -s filter show $id" \
		       ".[] | select(.options.handle == $handle) | \
			    select(.options.actions[0].stats.packets $operator $count)" \
		    &> /dev/null
		ret=$?
		if [[ $ret -eq 0 ]]; then
			return $ret
		fi
		current_time="$(date -u +%s%3N)"
		diff=$(expr $current_time - $start_time)
		if [ "$diff" -gt "$TC_HIT_TIMEOUT" ]; then
			return 1
		fi
	done
}

tc_check_packets()
{
	local id=$1
	local handle=$2
	local count=$3

	__tc_check_packets "$id" "$handle" "$count" "=="
	busywait "$TC_HIT_TIMEOUT" until_counter_is "== $count" \
		 tc_rule_handle_stats_get "$id" "$handle" > /dev/null
}

tc_check_packets_hitting()
@@ -46,5 +21,6 @@ tc_check_packets_hitting()
	local id=$1
	local handle=$2

	__tc_check_packets "$id" "$handle" 0 ">"
	busywait "$TC_HIT_TIMEOUT" until_counter_is "> 0" \
		 tc_rule_handle_stats_get "$id" "$handle" > /dev/null
}