linux/tools/testing/selftests/net/forwarding/tc_common.sh
Amit Cohen c08d227290 testing: selftests: tc_common: Add tc_check_at_least_x_packets()
Add function that checks that at least X packets hit the tc rule.
There are cases that it is not possible to catch only the interesting
packets, so then, it is possible to send many packets and verify that at
least this amount of packets hit the rule.

This function will be used in the next patch for general tc rule that
can be used to test both software and hardware.

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-10-08 16:40:58 +01:00

37 lines
721 B
Bash

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
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
busywait "$TC_HIT_TIMEOUT" until_counter_is "== $count" \
tc_rule_handle_stats_get "$id" "$handle" > /dev/null
}
tc_check_at_least_x_packets()
{
local id=$1
local handle=$2
local count=$3
busywait "$TC_HIT_TIMEOUT" until_counter_is ">= $count" \
tc_rule_handle_stats_get "$id" "$handle" > /dev/null
}
tc_check_packets_hitting()
{
local id=$1
local handle=$2
busywait "$TC_HIT_TIMEOUT" until_counter_is "> 0" \
tc_rule_handle_stats_get "$id" "$handle" > /dev/null
}