]> www.infradead.org Git - users/hch/misc.git/commitdiff
selftests: fib_rule_tests: Add VRF match tests
authorIdo Schimmel <idosch@nvidia.com>
Mon, 14 Apr 2025 17:20:22 +0000 (20:20 +0300)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Apr 2025 00:54:57 +0000 (17:54 -0700)
Add tests for FIB rules that match on iif / oif being a VRF device. Test
both good and bad flows.

With previous patch ("net: fib_rules: Fix iif / oif matching on L3
master device"):

 # ./fib_rule_tests.sh
 [...]
 Tests passed: 328
 Tests failed:   0

Without it:

 # ./fib_rule_tests.sh
 [...]
 Tests passed: 324
 Tests failed:   4

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: David Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/20250414172022.242991-3-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/fib_rule_tests.sh

index b866bab1d92a1caac8e32574e6d03e65ecc24530..c7cea556b4169407d54cd6781670bcfc060b0ddc 100755 (executable)
@@ -359,6 +359,23 @@ fib_rule6_test()
                        "$getnomatch" "iif flowlabel masked redirect to table" \
                        "iif flowlabel masked no redirect to table"
        fi
+
+       $IP link show dev $DEV | grep -q vrf0
+       if [ $? -eq 0 ]; then
+               match="oif vrf0"
+               getmatch="oif $DEV"
+               getnomatch="oif lo"
+               fib_rule6_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "VRF oif redirect to table" \
+                       "VRF oif no redirect to table"
+
+               match="from $SRC_IP6 iif vrf0"
+               getmatch="from $SRC_IP6 iif $DEV"
+               getnomatch="from $SRC_IP6 iif lo"
+               fib_rule6_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "VRF iif redirect to table" \
+                       "VRF iif no redirect to table"
+       fi
 }
 
 fib_rule6_vrf_test()
@@ -635,6 +652,23 @@ fib_rule4_test()
                        "$getnomatch" "iif dscp masked redirect to table" \
                        "iif dscp masked no redirect to table"
        fi
+
+       $IP link show dev $DEV | grep -q vrf0
+       if [ $? -eq 0 ]; then
+               match="oif vrf0"
+               getmatch="oif $DEV"
+               getnomatch="oif lo"
+               fib_rule4_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "VRF oif redirect to table" \
+                       "VRF oif no redirect to table"
+
+               match="from $SRC_IP iif vrf0"
+               getmatch="from $SRC_IP iif $DEV"
+               getnomatch="from $SRC_IP iif lo"
+               fib_rule4_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "VRF iif redirect to table" \
+                       "VRF iif no redirect to table"
+       fi
 }
 
 fib_rule4_vrf_test()