Commit bafe517a authored by Guillaume Nault's avatar Guillaume Nault Committed by Jakub Kicinski
Browse files

selftests: fib offload: use sensible tos values



Although both iproute2 and the kernel accept 1 and 2 as tos values for
new routes, those are invalid. These values only set ECN bits, which
are ignored during IPv4 fib lookups. Therefore, no packet can actually
match such routes. This selftest therefore only succeeds because it
doesn't verify that the new routes do actually work in practice (it
just checks if the routes are offloaded or not).

It makes more sense to use tos values that don't conflict with ECN.
This way, the selftest won't be affected if we later decide to warn or
even reject invalid tos configurations for new routes.

Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/5e43b343720360a1c0e4f5947d9e917b26f30fbf.1643826556.git.gnault@redhat.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 25ee1660
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -99,15 +99,15 @@ fib_ipv4_tos_test()
	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 0 metric 1024" false
	check_err $? "Route not in hardware when should"

	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 2 metric 1024
	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 2 metric 1024" false
	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 8 metric 1024
	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 8 metric 1024" false
	check_err $? "Highest TOS route not in hardware when should"

	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 0 metric 1024" true
	check_err $? "Lowest TOS route still in hardware when should not"

	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 1 metric 1024
	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 1 metric 1024" true
	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 4 metric 1024
	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 4 metric 1024" true
	check_err $? "Middle TOS route in hardware when should not"

	log_test "IPv4 routes with TOS"
@@ -277,11 +277,11 @@ fib_ipv4_replay_tos_test()
	ip -n $ns link set dev dummy1 up

	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 0
	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 1
	ip -n $ns route add 192.0.2.0/24 dev dummy1 tos 4

	devlink -N $ns dev reload $devlink_dev

	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 1" false
	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 4" false
	check_err $? "Highest TOS route not in hardware when should"

	fib4_trap_check $ns "192.0.2.0/24 dev dummy1 tos 0" true