]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
selftests: fib_rule_tests: Add flow label selector match tests
authorIdo Schimmel <idosch@nvidia.com>
Mon, 16 Dec 2024 17:12:01 +0000 (19:12 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 19 Dec 2024 15:02:22 +0000 (16:02 +0100)
Add tests for the new FIB rule flow label selector. Test both good and bad
flows and with both input and output routes.

 # ./fib_rule_tests.sh
 IPv6 FIB rule tests
 [...]
    TEST: rule6 check: flowlabel redirect to table                      [ OK ]
    TEST: rule6 check: flowlabel no redirect to table                   [ OK ]
    TEST: rule6 del by pref: flowlabel redirect to table                [ OK ]
    TEST: rule6 check: iif flowlabel redirect to table                  [ OK ]
    TEST: rule6 check: iif flowlabel no redirect to table               [ OK ]
    TEST: rule6 del by pref: iif flowlabel redirect to table            [ OK ]
    TEST: rule6 check: flowlabel masked redirect to table               [ OK ]
    TEST: rule6 check: flowlabel masked no redirect to table            [ OK ]
    TEST: rule6 del by pref: flowlabel masked redirect to table         [ OK ]
    TEST: rule6 check: iif flowlabel masked redirect to table           [ OK ]
    TEST: rule6 check: iif flowlabel masked no redirect to table        [ OK ]
    TEST: rule6 del by pref: iif flowlabel masked redirect to table     [ OK ]
 [...]

 Tests passed: 268
 Tests failed:   0

Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/fib_rule_tests.sh

index 1d58b3b87465ef2b48ad05ffca35bdc5930614af..847936363a12bc15b6261b59995e6b48a8b1fcad 100755 (executable)
@@ -291,6 +291,37 @@ fib_rule6_test()
                        "$getnomatch" "iif dscp redirect to table" \
                        "iif dscp no redirect to table"
        fi
+
+       fib_check_iproute_support "flowlabel" "flowlabel"
+       if [ $? -eq 0 ]; then
+               match="flowlabel 0xfffff"
+               getmatch="flowlabel 0xfffff"
+               getnomatch="flowlabel 0xf"
+               fib_rule6_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "flowlabel redirect to table" \
+                       "flowlabel no redirect to table"
+
+               match="flowlabel 0xfffff"
+               getmatch="from $SRC_IP6 iif $DEV flowlabel 0xfffff"
+               getnomatch="from $SRC_IP6 iif $DEV flowlabel 0xf"
+               fib_rule6_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "iif flowlabel redirect to table" \
+                       "iif flowlabel no redirect to table"
+
+               match="flowlabel 0x08000/0x08000"
+               getmatch="flowlabel 0xfffff"
+               getnomatch="flowlabel 0xf7fff"
+               fib_rule6_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "flowlabel masked redirect to table" \
+                       "flowlabel masked no redirect to table"
+
+               match="flowlabel 0x08000/0x08000"
+               getmatch="from $SRC_IP6 iif $DEV flowlabel 0xfffff"
+               getnomatch="from $SRC_IP6 iif $DEV flowlabel 0xf7fff"
+               fib_rule6_test_match_n_redirect "$match" "$getmatch" \
+                       "$getnomatch" "iif flowlabel masked redirect to table" \
+                       "iif flowlabel masked no redirect to table"
+       fi
 }
 
 fib_rule6_vrf_test()