Merge branch 'mlxsw-Test-coverage-for-DSCP-leftover-fix'

Petr Machata says:

====================
mlxsw: Test coverage for DSCP leftover fix

This patch set fixes some global scope pollution issues in the DSCP tests
(in patch #1), and then proceeds (in patch #2) to add a new test for
checking whether, after DSCP prioritization rules are removed from a port,
DSCP rewrites consistently to zero, instead of the last removed rule still
staying in effect.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2019-07-31 08:47:14 -07:00
commit 164f0de315
2 changed files with 26 additions and 4 deletions

View File

@ -36,8 +36,6 @@ source $lib_dir/lib.sh
h1_create()
{
local dscp;
simple_if_init $h1 192.0.2.1/28
tc qdisc add dev $h1 clsact
dscp_capture_install $h1 10
@ -67,6 +65,7 @@ h2_destroy()
dscp_map()
{
local base=$1; shift
local prio
for prio in {0..7}; do
echo app=$prio,5,$((base + prio))
@ -138,6 +137,7 @@ dscp_ping_test()
local prio=$1; shift
local dev_10=$1; shift
local dev_20=$1; shift
local key
local dscp_10=$(((prio + 10) << 2))
local dscp_20=$(((prio + 20) << 2))
@ -175,6 +175,8 @@ dscp_ping_test()
test_dscp()
{
local prio
for prio in {0..7}; do
dscp_ping_test v$h1 192.0.2.1 192.0.2.2 $prio $h1 $h2
done

View File

@ -31,6 +31,7 @@ ALL_TESTS="
ping_ipv4
test_update
test_no_update
test_dscp_leftover
"
lib_dir=$(dirname $0)/../../../net/forwarding
@ -50,10 +51,13 @@ reprioritize()
echo ${reprio[$in]}
}
zero()
{
echo 0
}
h1_create()
{
local dscp;
simple_if_init $h1 192.0.2.1/28
tc qdisc add dev $h1 clsact
dscp_capture_install $h1 0
@ -87,6 +91,7 @@ h2_destroy()
dscp_map()
{
local base=$1; shift
local prio
for prio in {0..7}; do
echo app=$prio,5,$((base + prio))
@ -156,6 +161,7 @@ dscp_ping_test()
local reprio=$1; shift
local dev1=$1; shift
local dev2=$1; shift
local i
local prio2=$($reprio $prio) # ICMP Request egress prio
local prio3=$($reprio $prio2) # ICMP Response egress prio
@ -205,6 +211,7 @@ __test_update()
{
local update=$1; shift
local reprio=$1; shift
local prio
sysctl_restore net.ipv4.ip_forward_update_priority
sysctl_set net.ipv4.ip_forward_update_priority $update
@ -224,6 +231,19 @@ test_no_update()
__test_update 0 echo
}
# Test that when the last APP rule is removed, the prio->DSCP map is properly
# set to zeroes, and that the last APP rule does not stay active in the ASIC.
test_dscp_leftover()
{
lldptool -T -i $swp2 -V APP -d $(dscp_map 0) >/dev/null
lldpad_app_wait_del
__test_update 0 zero
lldptool -T -i $swp2 -V APP $(dscp_map 0) >/dev/null
lldpad_app_wait_set $swp2
}
trap cleanup EXIT
setup_prepare