mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 01:51:34 +00:00
selftests: TBF: Use defer for test cleanup
Use the defer framework to schedule cleanups as soon as the command is executed. Signed-off-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
7f46615d59
commit
a1b3741dcf
@ -60,68 +60,65 @@ host_create()
|
|||||||
local host=$1; shift
|
local host=$1; shift
|
||||||
|
|
||||||
simple_if_init $dev
|
simple_if_init $dev
|
||||||
|
defer simple_if_fini $dev
|
||||||
|
|
||||||
mtu_set $dev 10000
|
mtu_set $dev 10000
|
||||||
|
defer mtu_restore $dev
|
||||||
|
|
||||||
vlan_create $dev 10 v$dev $(ipaddr $host 10)/28
|
vlan_create $dev 10 v$dev $(ipaddr $host 10)/28
|
||||||
|
defer vlan_destroy $dev 10
|
||||||
ip link set dev $dev.10 type vlan egress 0:0
|
ip link set dev $dev.10 type vlan egress 0:0
|
||||||
|
|
||||||
vlan_create $dev 11 v$dev $(ipaddr $host 11)/28
|
vlan_create $dev 11 v$dev $(ipaddr $host 11)/28
|
||||||
|
defer vlan_destroy $dev 11
|
||||||
ip link set dev $dev.11 type vlan egress 0:1
|
ip link set dev $dev.11 type vlan egress 0:1
|
||||||
}
|
}
|
||||||
|
|
||||||
host_destroy()
|
|
||||||
{
|
|
||||||
local dev=$1; shift
|
|
||||||
|
|
||||||
vlan_destroy $dev 11
|
|
||||||
vlan_destroy $dev 10
|
|
||||||
mtu_restore $dev
|
|
||||||
simple_if_fini $dev
|
|
||||||
}
|
|
||||||
|
|
||||||
h1_create()
|
h1_create()
|
||||||
{
|
{
|
||||||
host_create $h1 1
|
host_create $h1 1
|
||||||
}
|
}
|
||||||
|
|
||||||
h1_destroy()
|
|
||||||
{
|
|
||||||
host_destroy $h1
|
|
||||||
}
|
|
||||||
|
|
||||||
h2_create()
|
h2_create()
|
||||||
{
|
{
|
||||||
host_create $h2 2
|
host_create $h2 2
|
||||||
|
|
||||||
tc qdisc add dev $h2 clsact
|
tc qdisc add dev $h2 clsact
|
||||||
|
defer tc qdisc del dev $h2 clsact
|
||||||
|
|
||||||
tc filter add dev $h2 ingress pref 1010 prot 802.1q \
|
tc filter add dev $h2 ingress pref 1010 prot 802.1q \
|
||||||
flower $TCFLAGS vlan_id 10 action pass
|
flower $TCFLAGS vlan_id 10 action pass
|
||||||
tc filter add dev $h2 ingress pref 1011 prot 802.1q \
|
tc filter add dev $h2 ingress pref 1011 prot 802.1q \
|
||||||
flower $TCFLAGS vlan_id 11 action pass
|
flower $TCFLAGS vlan_id 11 action pass
|
||||||
}
|
}
|
||||||
|
|
||||||
h2_destroy()
|
|
||||||
{
|
|
||||||
tc qdisc del dev $h2 clsact
|
|
||||||
host_destroy $h2
|
|
||||||
}
|
|
||||||
|
|
||||||
switch_create()
|
switch_create()
|
||||||
{
|
{
|
||||||
local intf
|
local intf
|
||||||
local vlan
|
local vlan
|
||||||
|
|
||||||
ip link add dev br10 type bridge
|
ip link add dev br10 type bridge
|
||||||
|
defer ip link del dev br10
|
||||||
|
|
||||||
ip link add dev br11 type bridge
|
ip link add dev br11 type bridge
|
||||||
|
defer ip link del dev br11
|
||||||
|
|
||||||
for intf in $swp1 $swp2; do
|
for intf in $swp1 $swp2; do
|
||||||
ip link set dev $intf up
|
ip link set dev $intf up
|
||||||
|
defer ip link set dev $intf down
|
||||||
|
|
||||||
mtu_set $intf 10000
|
mtu_set $intf 10000
|
||||||
|
defer mtu_restore $intf
|
||||||
|
|
||||||
for vlan in 10 11; do
|
for vlan in 10 11; do
|
||||||
vlan_create $intf $vlan
|
vlan_create $intf $vlan
|
||||||
|
defer vlan_destroy $intf $vlan
|
||||||
|
|
||||||
ip link set dev $intf.$vlan master br$vlan
|
ip link set dev $intf.$vlan master br$vlan
|
||||||
|
defer ip link set dev $intf.$vlan nomaster
|
||||||
|
|
||||||
ip link set dev $intf.$vlan up
|
ip link set dev $intf.$vlan up
|
||||||
|
defer ip link set dev $intf.$vlan down
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -130,34 +127,10 @@ switch_create()
|
|||||||
done
|
done
|
||||||
|
|
||||||
ip link set dev br10 up
|
ip link set dev br10 up
|
||||||
|
defer ip link set dev br10 down
|
||||||
|
|
||||||
ip link set dev br11 up
|
ip link set dev br11 up
|
||||||
}
|
defer ip link set dev br11 down
|
||||||
|
|
||||||
switch_destroy()
|
|
||||||
{
|
|
||||||
local intf
|
|
||||||
local vlan
|
|
||||||
|
|
||||||
# A test may have been interrupted mid-run, with Qdisc installed. Delete
|
|
||||||
# it here.
|
|
||||||
tc qdisc del dev $swp2 root 2>/dev/null
|
|
||||||
|
|
||||||
ip link set dev br11 down
|
|
||||||
ip link set dev br10 down
|
|
||||||
|
|
||||||
for intf in $swp2 $swp1; do
|
|
||||||
for vlan in 11 10; do
|
|
||||||
ip link set dev $intf.$vlan down
|
|
||||||
ip link set dev $intf.$vlan nomaster
|
|
||||||
vlan_destroy $intf $vlan
|
|
||||||
done
|
|
||||||
|
|
||||||
mtu_restore $intf
|
|
||||||
ip link set dev $intf down
|
|
||||||
done
|
|
||||||
|
|
||||||
ip link del dev br11
|
|
||||||
ip link del dev br10
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_prepare()
|
setup_prepare()
|
||||||
@ -177,23 +150,13 @@ setup_prepare()
|
|||||||
h2_mac=$(mac_get $h2)
|
h2_mac=$(mac_get $h2)
|
||||||
|
|
||||||
vrf_prepare
|
vrf_prepare
|
||||||
|
defer vrf_cleanup
|
||||||
|
|
||||||
h1_create
|
h1_create
|
||||||
h2_create
|
h2_create
|
||||||
switch_create
|
switch_create
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup()
|
|
||||||
{
|
|
||||||
pre_cleanup
|
|
||||||
|
|
||||||
switch_destroy
|
|
||||||
h2_destroy
|
|
||||||
h1_destroy
|
|
||||||
|
|
||||||
vrf_cleanup
|
|
||||||
}
|
|
||||||
|
|
||||||
ping_ipv4()
|
ping_ipv4()
|
||||||
{
|
{
|
||||||
ping_test $h1.10 $(ipaddr 2 10) " vlan 10"
|
ping_test $h1.10 $(ipaddr 2 10) " vlan 10"
|
||||||
@ -207,18 +170,18 @@ tbf_get_counter()
|
|||||||
tc_rule_stats_get $h2 10$vlan ingress .bytes
|
tc_rule_stats_get $h2 10$vlan ingress .bytes
|
||||||
}
|
}
|
||||||
|
|
||||||
do_tbf_test()
|
__tbf_test()
|
||||||
{
|
{
|
||||||
local vlan=$1; shift
|
local vlan=$1; shift
|
||||||
local mbit=$1; shift
|
local mbit=$1; shift
|
||||||
|
|
||||||
start_traffic $h1.$vlan $(ipaddr 1 $vlan) $(ipaddr 2 $vlan) $h2_mac
|
start_traffic $h1.$vlan $(ipaddr 1 $vlan) $(ipaddr 2 $vlan) $h2_mac
|
||||||
|
defer stop_traffic $!
|
||||||
sleep 5 # Wait for the burst to dwindle
|
sleep 5 # Wait for the burst to dwindle
|
||||||
|
|
||||||
local t2=$(busywait_for_counter 1000 +1 tbf_get_counter $vlan)
|
local t2=$(busywait_for_counter 1000 +1 tbf_get_counter $vlan)
|
||||||
sleep 10
|
sleep 10
|
||||||
local t3=$(tbf_get_counter $vlan)
|
local t3=$(tbf_get_counter $vlan)
|
||||||
stop_traffic
|
|
||||||
|
|
||||||
RET=0
|
RET=0
|
||||||
|
|
||||||
@ -231,3 +194,9 @@ do_tbf_test()
|
|||||||
|
|
||||||
log_test "TC $((vlan - 10)): TBF rate ${mbit}Mbit"
|
log_test "TC $((vlan - 10)): TBF rate ${mbit}Mbit"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_tbf_test()
|
||||||
|
{
|
||||||
|
in_defer_scope \
|
||||||
|
__tbf_test "$@"
|
||||||
|
}
|
||||||
|
@ -30,8 +30,9 @@ tbf_test()
|
|||||||
# This test is used for both ETS and PRIO. Even though we only need two
|
# This test is used for both ETS and PRIO. Even though we only need two
|
||||||
# bands, PRIO demands a minimum of three.
|
# bands, PRIO demands a minimum of three.
|
||||||
tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0
|
tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0
|
||||||
|
defer tc qdisc del dev $swp2 root
|
||||||
|
|
||||||
tbf_test_one 128K
|
tbf_test_one 128K
|
||||||
tc qdisc del dev $swp2 root
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tbf_root_test()
|
tbf_root_test()
|
||||||
@ -42,6 +43,8 @@ tbf_root_test()
|
|||||||
|
|
||||||
tc qdisc replace dev $swp2 root handle 1: \
|
tc qdisc replace dev $swp2 root handle 1: \
|
||||||
tbf rate 400Mbit burst $bs limit 1M
|
tbf rate 400Mbit burst $bs limit 1M
|
||||||
|
defer tc qdisc del dev $swp2 root
|
||||||
|
|
||||||
tc qdisc replace dev $swp2 parent 1:1 handle 10: \
|
tc qdisc replace dev $swp2 parent 1:1 handle 10: \
|
||||||
$QDISC 3 priomap 2 1 0
|
$QDISC 3 priomap 2 1 0
|
||||||
tc qdisc replace dev $swp2 parent 10:3 handle 103: \
|
tc qdisc replace dev $swp2 parent 10:3 handle 103: \
|
||||||
@ -53,8 +56,6 @@ tbf_root_test()
|
|||||||
|
|
||||||
do_tbf_test 10 400 $bs
|
do_tbf_test 10 400 $bs
|
||||||
do_tbf_test 11 400 $bs
|
do_tbf_test 11 400 $bs
|
||||||
|
|
||||||
tc qdisc del dev $swp2 root
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if type -t sch_tbf_pre_hook >/dev/null; then
|
if type -t sch_tbf_pre_hook >/dev/null; then
|
||||||
|
@ -14,13 +14,14 @@ tbf_test_one()
|
|||||||
|
|
||||||
tc qdisc replace dev $swp2 root handle 108: tbf \
|
tc qdisc replace dev $swp2 root handle 108: tbf \
|
||||||
rate 400Mbit burst $bs limit 1M
|
rate 400Mbit burst $bs limit 1M
|
||||||
|
defer tc qdisc del dev $swp2 root
|
||||||
|
|
||||||
do_tbf_test 10 400 $bs
|
do_tbf_test 10 400 $bs
|
||||||
}
|
}
|
||||||
|
|
||||||
tbf_test()
|
tbf_test()
|
||||||
{
|
{
|
||||||
tbf_test_one 128K
|
tbf_test_one 128K
|
||||||
tc qdisc del dev $swp2 root
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if type -t sch_tbf_pre_hook >/dev/null; then
|
if type -t sch_tbf_pre_hook >/dev/null; then
|
||||||
|
Loading…
Reference in New Issue
Block a user