mirror of https://gitee.com/openkylin/linux.git
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: Petr Machata <petrm@mellanox.com> Reviewed-by: Amit Cohen <amitc@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
844f055654
commit
47b0e096a9
|
@ -6,39 +6,14 @@ CHECK_TC="yes"
|
||||||
# Can be overridden by the configuration file. See lib.sh
|
# Can be overridden by the configuration file. See lib.sh
|
||||||
TC_HIT_TIMEOUT=${TC_HIT_TIMEOUT:=1000} # ms
|
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()
|
tc_check_packets()
|
||||||
{
|
{
|
||||||
local id=$1
|
local id=$1
|
||||||
local handle=$2
|
local handle=$2
|
||||||
local count=$3
|
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()
|
tc_check_packets_hitting()
|
||||||
|
@ -46,5 +21,6 @@ tc_check_packets_hitting()
|
||||||
local id=$1
|
local id=$1
|
||||||
local handle=$2
|
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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue