Skip to content

Commit 919419a

Browse files
pmachataPaolo Abeni
authored andcommitted
selftests: mlxsw: qos_max_descriptors: Use defer for test cleanup
Use the defer framework to schedule cleanups as soon as the command is executed. Signed-off-by: Petr Machata <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent 424745a commit 919419a

File tree

1 file changed

+41
-77
lines changed

1 file changed

+41
-77
lines changed

tools/testing/selftests/drivers/net/mlxsw/qos_max_descriptors.sh

Lines changed: 41 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -69,127 +69,103 @@ mlxsw_only_on_spectrum 2+ || exit
6969
h1_create()
7070
{
7171
simple_if_init $h1
72+
defer simple_if_fini $h1
7273

7374
vlan_create $h1 111 v$h1 192.0.2.33/28
75+
defer vlan_destroy $h1 111
7476
ip link set dev $h1.111 type vlan egress-qos-map 0:1
7577
}
7678

77-
h1_destroy()
78-
{
79-
vlan_destroy $h1 111
80-
81-
simple_if_fini $h1
82-
}
83-
8479
h2_create()
8580
{
8681
simple_if_init $h2
82+
defer simple_if_fini $h2
8783

8884
vlan_create $h2 111 v$h2 192.0.2.34/28
89-
}
90-
91-
h2_destroy()
92-
{
93-
vlan_destroy $h2 111
94-
95-
simple_if_fini $h2
85+
defer vlan_destroy $h2 111
9686
}
9787

9888
switch_create()
9989
{
10090
# pools
10191
# -----
92+
# devlink_pool_size_thtype_restore needs to be done first so that we can
93+
# reset the various limits to values that are only valid for the
94+
# original static / dynamic setting.
10295

10396
devlink_pool_size_thtype_save 1
104-
devlink_pool_size_thtype_save 6
105-
106-
devlink_port_pool_th_save $swp1 1
107-
devlink_port_pool_th_save $swp2 6
108-
109-
devlink_tc_bind_pool_th_save $swp1 1 ingress
110-
devlink_tc_bind_pool_th_save $swp2 1 egress
111-
11297
devlink_pool_size_thtype_set 1 dynamic $MAX_POOL_SIZE
98+
defer_prio devlink_pool_size_thtype_restore 1
99+
100+
devlink_pool_size_thtype_save 6
113101
devlink_pool_size_thtype_set 6 static $MAX_POOL_SIZE
102+
defer_prio devlink_pool_size_thtype_restore 6
114103

115104
# $swp1
116105
# -----
117106

118107
ip link set dev $swp1 up
108+
defer ip link set dev $swp1 down
109+
119110
vlan_create $swp1 111
111+
defer vlan_destroy $swp1 111
120112
ip link set dev $swp1.111 type vlan ingress-qos-map 0:0 1:1
121113

114+
devlink_port_pool_th_save $swp1 1
122115
devlink_port_pool_th_set $swp1 1 16
116+
defer devlink_tc_bind_pool_th_restore $swp1 1 ingress
117+
118+
devlink_tc_bind_pool_th_save $swp1 1 ingress
123119
devlink_tc_bind_pool_th_set $swp1 1 ingress 1 16
120+
defer devlink_port_pool_th_restore $swp1 1
124121

125122
tc qdisc replace dev $swp1 root handle 1: \
126123
ets bands 8 strict 8 priomap 7 6
124+
defer tc qdisc del dev $swp1 root
125+
127126
dcb buffer set dev $swp1 prio-buffer all:0 1:1
127+
defer dcb buffer set dev $swp1 prio-buffer all:0
128128

129129
# $swp2
130130
# -----
131131

132132
ip link set dev $swp2 up
133+
defer ip link set dev $swp2 down
134+
133135
vlan_create $swp2 111
136+
defer vlan_destroy $swp2 111
134137
ip link set dev $swp2.111 type vlan egress-qos-map 0:0 1:1
135138

139+
devlink_port_pool_th_save $swp2 6
136140
devlink_port_pool_th_set $swp2 6 $MAX_POOL_SIZE
141+
defer devlink_tc_bind_pool_th_restore $swp2 1 egress
142+
143+
devlink_tc_bind_pool_th_save $swp2 1 egress
137144
devlink_tc_bind_pool_th_set $swp2 1 egress 6 $MAX_POOL_SIZE
145+
defer devlink_port_pool_th_restore $swp2 6
138146

139147
tc qdisc replace dev $swp2 root handle 1: tbf rate $SHAPER_RATE \
140148
burst 128K limit 500M
149+
defer tc qdisc del dev $swp2 root
150+
141151
tc qdisc replace dev $swp2 parent 1:1 handle 11: \
142152
ets bands 8 strict 8 priomap 7 6
153+
defer tc qdisc del dev $swp2 parent 1:1 handle 11:
143154

144155
# bridge
145156
# ------
146157

147158
ip link add name br1 type bridge vlan_filtering 0
159+
defer ip link del dev br1
160+
148161
ip link set dev $swp1.111 master br1
162+
defer ip link set dev $swp1.111 nomaster
163+
149164
ip link set dev br1 up
165+
defer ip link set dev br1 down
150166

151167
ip link set dev $swp2.111 master br1
152-
}
153-
154-
switch_destroy()
155-
{
156-
# Do this first so that we can reset the limits to values that are only
157-
# valid for the original static / dynamic setting.
158-
devlink_pool_size_thtype_restore 6
159-
devlink_pool_size_thtype_restore 1
160-
161-
# bridge
162-
# ------
163-
164-
ip link set dev $swp2.111 nomaster
165-
166-
ip link set dev br1 down
167-
ip link set dev $swp1.111 nomaster
168-
ip link del dev br1
169-
170-
# $swp2
171-
# -----
172-
173-
tc qdisc del dev $swp2 parent 1:1 handle 11:
174-
tc qdisc del dev $swp2 root
175-
176-
devlink_tc_bind_pool_th_restore $swp2 1 egress
177-
devlink_port_pool_th_restore $swp2 6
178-
179-
vlan_destroy $swp2 111
180-
ip link set dev $swp2 down
181-
182-
# $swp1
183-
# -----
184-
185-
dcb buffer set dev $swp1 prio-buffer all:0
186-
tc qdisc del dev $swp1 root
187-
188-
devlink_tc_bind_pool_th_restore $swp1 1 ingress
189-
devlink_port_pool_th_restore $swp1 1
190-
191-
vlan_destroy $swp1 111
192-
ip link set dev $swp1 down
168+
defer ip link set dev $swp2.111 nomaster
193169
}
194170

195171
setup_prepare()
@@ -203,23 +179,13 @@ setup_prepare()
203179
h2mac=$(mac_get $h2)
204180

205181
vrf_prepare
182+
defer vrf_cleanup
206183

207184
h1_create
208185
h2_create
209186
switch_create
210187
}
211188

212-
cleanup()
213-
{
214-
pre_cleanup
215-
216-
switch_destroy
217-
h2_destroy
218-
h1_destroy
219-
220-
vrf_cleanup
221-
}
222-
223189
ping_ipv4()
224190
{
225191
ping_test $h1 192.0.2.34 " h1->h2"
@@ -251,6 +217,7 @@ max_descriptors()
251217

252218
log_info "Send many small packets, packet size = $pktsize bytes"
253219
start_traffic_pktsize $pktsize $h1.111 192.0.2.33 192.0.2.34 $h2mac
220+
defer stop_traffic $!
254221

255222
# Sleep to wait for congestion.
256223
sleep 5
@@ -268,9 +235,6 @@ max_descriptors()
268235
check_err $(bc <<< "$perc_used < $exp_perc_used") \
269236
"Expected > $exp_perc_used% of descriptors, handle $perc_used%"
270237

271-
stop_traffic
272-
sleep 1
273-
274238
log_test "Maximum descriptors usage. The percentage used is $perc_used%"
275239
}
276240

0 commit comments

Comments
 (0)