mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
selftests: mlxsw: tc_restrictions: Test tc-police restrictions
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>
This commit is contained in:
parent
afe231d32e
commit
cb12d17632
|
|
@ -11,6 +11,8 @@ ALL_TESTS="
|
||||||
matchall_mirror_behind_flower_ingress_test
|
matchall_mirror_behind_flower_ingress_test
|
||||||
matchall_sample_behind_flower_ingress_test
|
matchall_sample_behind_flower_ingress_test
|
||||||
matchall_mirror_behind_flower_egress_test
|
matchall_mirror_behind_flower_egress_test
|
||||||
|
police_limits_test
|
||||||
|
multi_police_test
|
||||||
"
|
"
|
||||||
NUM_NETIFS=2
|
NUM_NETIFS=2
|
||||||
|
|
||||||
|
|
@ -287,6 +289,80 @@ matchall_mirror_behind_flower_egress_test()
|
||||||
matchall_behind_flower_egress_test "mirror" "mirred egress mirror dev $swp2"
|
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()
|
setup_prepare()
|
||||||
{
|
{
|
||||||
swp1=${NETIFS[p1]}
|
swp1=${NETIFS[p1]}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user