testing: selftests: tc_common: Add tc_check_at_least_x_packets()
authorAmit Cohen <amcohen@nvidia.com>
Fri, 8 Oct 2021 13:12:35 +0000 (16:12 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Oct 2021 15:40:58 +0000 (16:40 +0100)
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>
tools/testing/selftests/net/forwarding/tc_common.sh

index 0e18e8be6e2a90f06a73cfe04883ebefab386645..bce8bb8d2b6f3c8c2971944eec01b617403d43cf 100644 (file)
@@ -16,6 +16,16 @@ tc_check_packets()
                 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