selftests: ncdevmem: Properly reset flow steering

ntuple off/on might be not enough to do it on all NICs.
Add a bunch of shell crap to explicitly remove the rules.

Reviewed-by: Mina Almasry <almasrymina@google.com>
Reviewed-by: Joe Damato <jdamato@fastly.com>
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20241107181211.3934153-8-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Stanislav Fomichev 2024-11-07 10:12:06 -08:00 committed by Jakub Kicinski
parent 933056357a
commit e3c09623a5

View File

@ -217,13 +217,18 @@ void validate_buffer(void *line, size_t size)
static int reset_flow_steering(void) static int reset_flow_steering(void)
{ {
int ret = 0; /* Depending on the NIC, toggling ntuple off and on might not
* be allowed. Additionally, attempting to delete existing filters
* will fail if no filters are present. Therefore, do not enforce
* the exit status.
*/
ret = run_command("sudo ethtool -K %s ntuple off >&2", ifname); run_command("sudo ethtool -K %s ntuple off >&2", ifname);
if (ret) run_command("sudo ethtool -K %s ntuple on >&2", ifname);
return ret; run_command(
"sudo ethtool -n %s | grep 'Filter:' | awk '{print $2}' | xargs -n1 ethtool -N %s delete >&2",
return run_command("sudo ethtool -K %s ntuple on >&2", ifname); ifname, ifname);
return 0;
} }
static int configure_headersplit(bool on) static int configure_headersplit(bool on)