selftests: fib_rule_tests: Add flow label selector match tests

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>
This commit is contained in:
Ido Schimmel 2024-12-16 19:12:01 +02:00 committed by Paolo Abeni
parent 002bf68a3b
commit 5760711e19

View File

@ -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()