selftests: mlxsw: Make sampling test more robust
authorIdo Schimmel <idosch@OSS.NVIDIA.COM>
Mon, 17 May 2021 17:03:52 +0000 (20:03 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 May 2021 22:15:46 +0000 (15:15 -0700)
The test sometimes fails with an error message such as:

TEST: tc sample (w/ flower) rate (egress)                           [FAIL]
Expected 100 packets, got 70 packets, which is -30% off. Required accuracy is +-25%

Make the test more robust by generating more packets, therefore
increasing the number of expected samples. Decrease the transmission
delay in order not to needlessly prolong the test.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/drivers/net/mlxsw/tc_sample.sh

index 093bed0..373d5f2 100755 (executable)
@@ -234,15 +234,15 @@ __tc_sample_rate_test()
 
        psample_capture_start
 
-       ip vrf exec v$h1 $MZ $h1 -c 3200 -d 1msec -p 64 -A 192.0.2.1 \
+       ip vrf exec v$h1 $MZ $h1 -c 320000 -d 100usec -p 64 -A 192.0.2.1 \
                -B $dip -t udp dp=52768,sp=42768 -q
 
        psample_capture_stop
 
        pkts=$(grep -e "group 1 " $CAPTURE_FILE | wc -l)
-       pct=$((100 * (pkts - 100) / 100))
+       pct=$((100 * (pkts - 10000) / 10000))
        (( -25 <= pct && pct <= 25))
-       check_err $? "Expected 100 packets, got $pkts packets, which is $pct% off. Required accuracy is +-25%"
+       check_err $? "Expected 10000 packets, got $pkts packets, which is $pct% off. Required accuracy is +-25%"
 
        log_test "tc sample rate ($desc)"
 
@@ -587,15 +587,15 @@ __tc_sample_acl_rate_test()
 
        psample_capture_start
 
-       ip vrf exec v$h1 $MZ $h1 -c 3200 -d 1msec -p 64 -A 192.0.2.1 \
+       ip vrf exec v$h1 $MZ $h1 -c 320000 -d 100usec -p 64 -A 192.0.2.1 \
                -B 198.51.100.1 -t udp dp=52768,sp=42768 -q
 
        psample_capture_stop
 
        pkts=$(grep -e "group 1 " $CAPTURE_FILE | wc -l)
-       pct=$((100 * (pkts - 100) / 100))
+       pct=$((100 * (pkts - 10000) / 10000))
        (( -25 <= pct && pct <= 25))
-       check_err $? "Expected 100 packets, got $pkts packets, which is $pct% off. Required accuracy is +-25%"
+       check_err $? "Expected 10000 packets, got $pkts packets, which is $pct% off. Required accuracy is +-25%"
 
        # Setup a filter that should not match any packet and make sure packets
        # are not sampled.