selftests: mlxsw: Test matchall failure with protocol match
authorIdo Schimmel <idosch@nvidia.com>
Mon, 29 Mar 2021 10:09:46 +0000 (13:09 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Mar 2021 20:37:25 +0000 (13:37 -0700)
The driver can only offload matchall rules that do not match on a
protocol. Test that matchall rules that match on a protocol are vetoed.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/drivers/net/mlxsw/tc_restrictions.sh

index b4dbda706c4d7b38dcca77084207ea196518d8b9..5ec3beb637c82e96e981f5cdb860ed375c0d3df7 100755 (executable)
@@ -11,6 +11,7 @@ ALL_TESTS="
        matchall_mirror_behind_flower_ingress_test
        matchall_sample_behind_flower_ingress_test
        matchall_mirror_behind_flower_egress_test
+       matchall_proto_match_test
        police_limits_test
        multi_police_test
 "
@@ -291,6 +292,22 @@ matchall_mirror_behind_flower_egress_test()
        matchall_behind_flower_egress_test "mirror" "mirred egress mirror dev $swp2"
 }
 
+matchall_proto_match_test()
+{
+       RET=0
+
+       tc qdisc add dev $swp1 clsact
+
+       tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
+               matchall skip_sw \
+               action sample group 1 rate 100
+       check_fail $? "Incorrect success to add matchall rule with protocol match"
+
+       tc qdisc del dev $swp1 clsact
+
+       log_test "matchall protocol match"
+}
+
 police_limits_test()
 {
        RET=0