Commit a9fda7a0 authored by Petr Machata's avatar Petr Machata Committed by Jakub Kicinski

selftests: forwarding: hw_stats_l3: Detect failure to install counters

Running this test makes little sense if the enabled l3_stats are not
actually reported as "used". This can signify a failure of a driver to
install the necessary counters, or simply lack of support for enabling
in-HW counters on a given netdevice. It is generally impossible to tell
from the outside which it is. But more likely than not, if somebody is
running this on veth pairs, they do not intend to actually test that a
certain piece of HW can install in-HW counters for the veth. It is more
likely they are e.g. running the test by mistake.

Therefore detect that the counter has not been actually installed. In that
case, if the netdevice is one end of a veth pair, SKIP. Otherwise FAIL.
Suggested-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
Reviewed-by: default avatarDanielle Ratson <danieller@nvidia.com>
Tested-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Link: https://lore.kernel.org/r/a86817961903cca5cb0aebf2b2a06294b8aa7dea.1680704172.git.petrm@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f8b648bf
......@@ -319,6 +319,19 @@ trap cleanup EXIT
setup_prepare
setup_wait
tests_run
used=$(ip -j stats show dev $rp1.200 group offload subgroup hw_stats_info |
jq '.[].info.l3_stats.used')
kind=$(ip -j -d link show dev $rp1 |
jq -r '.[].linkinfo.info_kind')
if [[ $used != true ]]; then
if [[ $kind == veth ]]; then
log_test_skip "l3_stats not offloaded on veth interface"
EXIT_STATUS=$ksft_skip
else
RET=1 log_test "l3_stats not offloaded"
fi
else
tests_run
fi
exit $EXIT_STATUS
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