@@ -69,127 +69,103 @@ mlxsw_only_on_spectrum 2+ || exit
69
69
h1_create ()
70
70
{
71
71
simple_if_init $h1
72
+ defer simple_if_fini $h1
72
73
73
74
vlan_create $h1 111 v$h1 192.0.2.33/28
75
+ defer vlan_destroy $h1 111
74
76
ip link set dev $h1 .111 type vlan egress-qos-map 0:1
75
77
}
76
78
77
- h1_destroy ()
78
- {
79
- vlan_destroy $h1 111
80
-
81
- simple_if_fini $h1
82
- }
83
-
84
79
h2_create ()
85
80
{
86
81
simple_if_init $h2
82
+ defer simple_if_fini $h2
87
83
88
84
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
96
86
}
97
87
98
88
switch_create ()
99
89
{
100
90
# pools
101
91
# -----
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.
102
95
103
96
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
-
112
97
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
113
101
devlink_pool_size_thtype_set 6 static $MAX_POOL_SIZE
102
+ defer_prio devlink_pool_size_thtype_restore 6
114
103
115
104
# $swp1
116
105
# -----
117
106
118
107
ip link set dev $swp1 up
108
+ defer ip link set dev $swp1 down
109
+
119
110
vlan_create $swp1 111
111
+ defer vlan_destroy $swp1 111
120
112
ip link set dev $swp1 .111 type vlan ingress-qos-map 0:0 1:1
121
113
114
+ devlink_port_pool_th_save $swp1 1
122
115
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
123
119
devlink_tc_bind_pool_th_set $swp1 1 ingress 1 16
120
+ defer devlink_port_pool_th_restore $swp1 1
124
121
125
122
tc qdisc replace dev $swp1 root handle 1: \
126
123
ets bands 8 strict 8 priomap 7 6
124
+ defer tc qdisc del dev $swp1 root
125
+
127
126
dcb buffer set dev $swp1 prio-buffer all:0 1:1
127
+ defer dcb buffer set dev $swp1 prio-buffer all:0
128
128
129
129
# $swp2
130
130
# -----
131
131
132
132
ip link set dev $swp2 up
133
+ defer ip link set dev $swp2 down
134
+
133
135
vlan_create $swp2 111
136
+ defer vlan_destroy $swp2 111
134
137
ip link set dev $swp2 .111 type vlan egress-qos-map 0:0 1:1
135
138
139
+ devlink_port_pool_th_save $swp2 6
136
140
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
137
144
devlink_tc_bind_pool_th_set $swp2 1 egress 6 $MAX_POOL_SIZE
145
+ defer devlink_port_pool_th_restore $swp2 6
138
146
139
147
tc qdisc replace dev $swp2 root handle 1: tbf rate $SHAPER_RATE \
140
148
burst 128K limit 500M
149
+ defer tc qdisc del dev $swp2 root
150
+
141
151
tc qdisc replace dev $swp2 parent 1:1 handle 11: \
142
152
ets bands 8 strict 8 priomap 7 6
153
+ defer tc qdisc del dev $swp2 parent 1:1 handle 11:
143
154
144
155
# bridge
145
156
# ------
146
157
147
158
ip link add name br1 type bridge vlan_filtering 0
159
+ defer ip link del dev br1
160
+
148
161
ip link set dev $swp1 .111 master br1
162
+ defer ip link set dev $swp1 .111 nomaster
163
+
149
164
ip link set dev br1 up
165
+ defer ip link set dev br1 down
150
166
151
167
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
193
169
}
194
170
195
171
setup_prepare ()
@@ -203,23 +179,13 @@ setup_prepare()
203
179
h2mac=$( mac_get $h2 )
204
180
205
181
vrf_prepare
182
+ defer vrf_cleanup
206
183
207
184
h1_create
208
185
h2_create
209
186
switch_create
210
187
}
211
188
212
- cleanup ()
213
- {
214
- pre_cleanup
215
-
216
- switch_destroy
217
- h2_destroy
218
- h1_destroy
219
-
220
- vrf_cleanup
221
- }
222
-
223
189
ping_ipv4 ()
224
190
{
225
191
ping_test $h1 192.0.2.34 " h1->h2"
@@ -251,6 +217,7 @@ max_descriptors()
251
217
252
218
log_info " Send many small packets, packet size = $pktsize bytes"
253
219
start_traffic_pktsize $pktsize $h1 .111 192.0.2.33 192.0.2.34 $h2mac
220
+ defer stop_traffic $!
254
221
255
222
# Sleep to wait for congestion.
256
223
sleep 5
@@ -268,9 +235,6 @@ max_descriptors()
268
235
check_err $( bc <<< " $perc_used < $exp_perc_used" ) \
269
236
" Expected > $exp_perc_used % of descriptors, handle $perc_used %"
270
237
271
- stop_traffic
272
- sleep 1
273
-
274
238
log_test " Maximum descriptors usage. The percentage used is $perc_used %"
275
239
}
276
240
0 commit comments