Skip to content

Commit

Permalink
selftests: mlxsw: tc_restrictions: Test tc-police restrictions
Browse files Browse the repository at this point in the history
Test that upper and lower limits on rate and burst size imposed by the
device are rejected by the kernel.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Ido Schimmel authored and Jakub Kicinski committed Jul 16, 2020
1 parent afe231d commit cb12d17
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions tools/testing/selftests/drivers/net/mlxsw/tc_restrictions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ ALL_TESTS="
matchall_mirror_behind_flower_ingress_test
matchall_sample_behind_flower_ingress_test
matchall_mirror_behind_flower_egress_test
police_limits_test
multi_police_test
"
NUM_NETIFS=2

Expand Down Expand Up @@ -287,6 +289,80 @@ matchall_mirror_behind_flower_egress_test()
matchall_behind_flower_egress_test "mirror" "mirred egress mirror dev $swp2"
}

police_limits_test()
{
RET=0

tc qdisc add dev $swp1 clsact

tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
flower skip_sw \
action police rate 0.5kbit burst 1m conform-exceed drop/ok
check_fail $? "Incorrect success to add police action with too low rate"

tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
flower skip_sw \
action police rate 2.5tbit burst 1g conform-exceed drop/ok
check_fail $? "Incorrect success to add police action with too high rate"

tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
flower skip_sw \
action police rate 1.5kbit burst 1m conform-exceed drop/ok
check_err $? "Failed to add police action with low rate"

tc filter del dev $swp1 ingress protocol ip pref 1 handle 101 flower

tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
flower skip_sw \
action police rate 1.9tbit burst 1g conform-exceed drop/ok
check_err $? "Failed to add police action with high rate"

tc filter del dev $swp1 ingress protocol ip pref 1 handle 101 flower

tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
flower skip_sw \
action police rate 1.5kbit burst 512b conform-exceed drop/ok
check_fail $? "Incorrect success to add police action with too low burst size"

tc filter add dev $swp1 ingress pref 1 proto ip handle 101 \
flower skip_sw \
action police rate 1.5kbit burst 2k conform-exceed drop/ok
check_err $? "Failed to add police action with low burst size"

tc filter del dev $swp1 ingress protocol ip pref 1 handle 101 flower

tc qdisc del dev $swp1 clsact

log_test "police rate and burst limits"
}

multi_police_test()
{
RET=0

# It is forbidden in mlxsw driver to have multiple police
# actions in a single rule.

tc qdisc add dev $swp1 clsact

tc filter add dev $swp1 ingress protocol ip pref 1 handle 101 \
flower skip_sw \
action police rate 100mbit burst 100k conform-exceed drop/ok
check_err $? "Failed to add rule with single police action"

tc filter del dev $swp1 ingress protocol ip pref 1 handle 101 flower

tc filter add dev $swp1 ingress protocol ip pref 1 handle 101 \
flower skip_sw \
action police rate 100mbit burst 100k conform-exceed drop/pipe \
action police rate 200mbit burst 200k conform-exceed drop/ok
check_fail $? "Incorrect success to add rule with two police actions"

tc qdisc del dev $swp1 clsact

log_test "multi police"
}

setup_prepare()
{
swp1=${NETIFS[p1]}
Expand Down

0 comments on commit cb12d17

Please sign in to comment.