selftests: fib offload: use sensible tos values
authorGuillaume Nault <gnault@redhat.com>
Wed, 2 Feb 2022 18:30:28 +0000 (19:30 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 4 Feb 2022 03:11:21 +0000 (19:11 -0800)
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: Guillaume Nault <gnault@redhat.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/5e43b343720360a1c0e4f5947d9e917b26f30fbf.1643826556.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/forwarding/fib_offload_lib.sh

index e134a5f..1b3b462 100644 (file)
@@ -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