Commit 11604178 authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski
Browse files

selftests: forwarding: tc_tunnel_key: Make filters more specific



The test installs filters that match on various IP fragments (e.g., no
fragment, first fragment) and expects a certain amount of packets to hit
each filter. This is problematic as the filters are not specific enough
and can match IP packets (e.g., IGMP) generated by the stack, resulting
in failures [1].

Fix by making the filters more specific and match on more fields in the
IP header: Source IP, destination IP and protocol.

[1]
 # timeout set to 0
 # selftests: net/forwarding: tc_tunnel_key.sh
 # TEST: tunnel_key nofrag (skip_hw)                                   [FAIL]
 #       packet smaller than MTU was not tunneled
 # INFO: Could not test offloaded functionality
 not ok 89 selftests: net/forwarding: tc_tunnel_key.sh # exit=1

Fixes: 533a89b1 ("selftests: forwarding: add tunnel_key "nofrag" test case")
Reported-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
Closes: https://lore.kernel.org/netdev/adc5e40d-d040-a65e-eb26-edf47dac5b02@alu.unizg.hr/


Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
Tested-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
Acked-by: default avatarDavide Caratti <dcaratti@redhat.com>
Reviewed-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Acked-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
Link: https://lore.kernel.org/r/20230808141503.4060661-14-idosch@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9ee37e53
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -104,11 +104,14 @@ tunnel_key_nofrag_test()
	local i

	tc filter add dev $swp1 ingress protocol ip pref 100 handle 100 \
		flower ip_flags nofrag action drop
		flower src_ip 192.0.2.1 dst_ip 192.0.2.2 ip_proto udp \
		ip_flags nofrag action drop
	tc filter add dev $swp1 ingress protocol ip pref 101 handle 101 \
		flower ip_flags firstfrag action drop
		flower src_ip 192.0.2.1 dst_ip 192.0.2.2 ip_proto udp \
		ip_flags firstfrag action drop
	tc filter add dev $swp1 ingress protocol ip pref 102 handle 102 \
		flower ip_flags nofirstfrag action drop
		flower src_ip 192.0.2.1 dst_ip 192.0.2.2 ip_proto udp \
		ip_flags nofirstfrag action drop

	# test 'nofrag' set
	tc filter add dev h1-et egress protocol all pref 1 handle 1 matchall $tcflags \