Commit 32fb67a3 authored by Petr Machata's avatar Petr Machata Committed by David S. Miller

selftests: lib: Add a generic helper for obtaining HW stats

The function get_l3_stats() from the test hw_stats_l3.sh will be useful for
any test that wishes to work with L3 stats. Furthermore, it is easy to
generalize to other HW stats suites (for when such are added). Therefore,
move the code to lib.sh, rewrite it to have the same interface as the other
stats-collecting functions, and generalize to take the name of the HW stats
suite to collect as an argument.
Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c353fb0d
...@@ -162,14 +162,6 @@ ping_ipv6() ...@@ -162,14 +162,6 @@ ping_ipv6()
ping_test $h1.200 2001:db8:2::1 " IPv6" ping_test $h1.200 2001:db8:2::1 " IPv6"
} }
get_l3_stat()
{
local selector=$1; shift
ip -j stats show dev $rp1.200 group offload subgroup l3_stats |
jq '.[0].stats64.'$selector
}
send_packets_rx_ipv4() send_packets_rx_ipv4()
{ {
# Send 21 packets instead of 20, because the first one might trap and go # Send 21 packets instead of 20, because the first one might trap and go
...@@ -208,11 +200,11 @@ ___test_stats() ...@@ -208,11 +200,11 @@ ___test_stats()
local a local a
local b local b
a=$(get_l3_stat ${dir}.packets) a=$(hw_stats_get l3_stats $rp1.200 ${dir} packets)
send_packets_${dir}_${prot} send_packets_${dir}_${prot}
"$@" "$@"
b=$(busywait "$TC_HIT_TIMEOUT" until_counter_is ">= $a + 20" \ b=$(busywait "$TC_HIT_TIMEOUT" until_counter_is ">= $a + 20" \
get_l3_stat ${dir}.packets) hw_stats_get l3_stats $rp1.200 ${dir} packets)
check_err $? "Traffic not reflected in the counter: $a -> $b" check_err $? "Traffic not reflected in the counter: $a -> $b"
} }
...@@ -281,11 +273,11 @@ __test_stats_report() ...@@ -281,11 +273,11 @@ __test_stats_report()
RET=0 RET=0
a=$(get_l3_stat ${dir}.packets) a=$(hw_stats_get l3_stats $rp1.200 ${dir} packets)
send_packets_${dir}_${prot} send_packets_${dir}_${prot}
ip address flush dev $rp1.200 ip address flush dev $rp1.200
b=$(busywait "$TC_HIT_TIMEOUT" until_counter_is ">= $a + 20" \ b=$(busywait "$TC_HIT_TIMEOUT" until_counter_is ">= $a + 20" \
get_l3_stat ${dir}.packets) hw_stats_get l3_stats $rp1.200 ${dir} packets)
check_err $? "Traffic not reflected in the counter: $a -> $b" check_err $? "Traffic not reflected in the counter: $a -> $b"
log_test "Test ${dir} packets: stats pushed on loss of L3" log_test "Test ${dir} packets: stats pushed on loss of L3"
......
...@@ -828,6 +828,17 @@ ipv6_stats_get() ...@@ -828,6 +828,17 @@ ipv6_stats_get()
cat /proc/net/dev_snmp6/$dev | grep "^$stat" | cut -f2 cat /proc/net/dev_snmp6/$dev | grep "^$stat" | cut -f2
} }
hw_stats_get()
{
local suite=$1; shift
local if_name=$1; shift
local dir=$1; shift
local stat=$1; shift
ip -j stats show dev $if_name group offload subgroup $suite |
jq ".[0].stats64.$dir.$stat"
}
humanize() humanize()
{ {
local speed=$1; shift local speed=$1; shift
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment