@@ -45,63 +45,52 @@ source $lib_dir/devlink_lib.sh
45
45
h1_create ()
46
46
{
47
47
simple_if_init $h1 192.0.2.1/24
48
+ defer simple_if_fini $h1 192.0.2.1/24
49
+
48
50
mtu_set $h1 10000
51
+ defer mtu_restore $h1
49
52
50
53
ip -4 route add default vrf v$h1 nexthop via 192.0.2.2
51
- }
52
-
53
- h1_destroy ()
54
- {
55
- ip -4 route del default vrf v$h1 nexthop via 192.0.2.2
56
-
57
- mtu_restore $h1
58
- simple_if_fini $h1 192.0.2.1/24
54
+ defer ip -4 route del default vrf v$h1 nexthop via 192.0.2.2
59
55
}
60
56
61
57
h2_create ()
62
58
{
63
59
simple_if_init $h2 198.51.100.1/24
60
+ defer simple_if_fini $h2 198.51.100.1/24
61
+
64
62
mtu_set $h2 10000
63
+ defer mtu_restore $h2
65
64
66
65
ip -4 route add default vrf v$h2 nexthop via 198.51.100.2
67
- }
68
-
69
- h2_destroy ()
70
- {
71
- ip -4 route del default vrf v$h2 nexthop via 198.51.100.2
72
-
73
- mtu_restore $h2
74
- simple_if_fini $h2 198.51.100.1/24
66
+ defer ip -4 route del default vrf v$h2 nexthop via 198.51.100.2
75
67
}
76
68
77
69
router_create ()
78
70
{
79
71
ip link set dev $rp1 up
72
+ defer ip link set dev $rp1 down
73
+
80
74
ip link set dev $rp2 up
75
+ defer ip link set dev $rp2 down
81
76
82
77
__addr_add_del $rp1 add 192.0.2.2/24
78
+ defer __addr_add_del $rp1 del 192.0.2.2/24
79
+
83
80
__addr_add_del $rp2 add 198.51.100.2/24
81
+ defer __addr_add_del $rp2 del 198.51.100.2/24
82
+
84
83
mtu_set $rp1 10000
84
+ defer mtu_restore $rp1
85
+
85
86
mtu_set $rp2 10000
87
+ defer mtu_restore $rp2
86
88
87
89
ip -4 route add blackhole 198.51.100.100
90
+ defer ip -4 route del blackhole 198.51.100.100
88
91
89
92
devlink trap set $DEVLINK_DEV trap blackhole_route action trap
90
- }
91
-
92
- router_destroy ()
93
- {
94
- devlink trap set $DEVLINK_DEV trap blackhole_route action drop
95
-
96
- ip -4 route del blackhole 198.51.100.100
97
-
98
- mtu_restore $rp2
99
- mtu_restore $rp1
100
- __addr_add_del $rp2 del 198.51.100.2/24
101
- __addr_add_del $rp1 del 192.0.2.2/24
102
-
103
- ip link set dev $rp2 down
104
- ip link set dev $rp1 down
93
+ defer devlink trap set $DEVLINK_DEV trap blackhole_route action drop
105
94
}
106
95
107
96
setup_prepare ()
@@ -114,29 +103,18 @@ setup_prepare()
114
103
115
104
rp1_mac=$( mac_get $rp1 )
116
105
106
+ # Reload to ensure devlink-trap settings are back to default.
107
+ defer devlink_reload
108
+
117
109
vrf_prepare
110
+ defer vrf_cleanup
118
111
119
112
h1_create
120
113
h2_create
121
114
122
115
router_create
123
116
}
124
117
125
- cleanup ()
126
- {
127
- pre_cleanup
128
-
129
- router_destroy
130
-
131
- h2_destroy
132
- h1_destroy
133
-
134
- vrf_cleanup
135
-
136
- # Reload to ensure devlink-trap settings are back to default.
137
- devlink_reload
138
- }
139
-
140
118
rate_limits_test ()
141
119
{
142
120
RET=0
@@ -214,7 +192,10 @@ __rate_test()
214
192
# by the policer. Make sure measured received rate is about 1000 pps
215
193
log_info " === Tx rate: Highest, Policer rate: 1000 pps ==="
216
194
195
+ defer_scope_push
196
+
217
197
start_traffic $h1 192.0.2.1 198.51.100.100 $rp1_mac
198
+ defer stop_traffic $!
218
199
219
200
sleep 5 # Take measurements when rate is stable
220
201
@@ -229,13 +210,16 @@ __rate_test()
229
210
check_err $? " Expected non-zero policer drop rate, got 0"
230
211
log_info " Measured policer drop rate of $drop_rate pps"
231
212
232
- stop_traffic
213
+ defer_scope_pop
233
214
234
215
# Send packets at a rate of 1000 pps and make sure they are not dropped
235
216
# by the policer
236
217
log_info " === Tx rate: 1000 pps, Policer rate: 1000 pps ==="
237
218
219
+ defer_scope_push
220
+
238
221
start_traffic $h1 192.0.2.1 198.51.100.100 $rp1_mac -d 1msec
222
+ defer stop_traffic $!
239
223
240
224
sleep 5 # Take measurements when rate is stable
241
225
@@ -244,7 +228,7 @@ __rate_test()
244
228
check_err $? " Expected zero policer drop rate, got a drop rate of $drop_rate pps"
245
229
log_info " Measured policer drop rate of $drop_rate pps"
246
230
247
- stop_traffic
231
+ defer_scope_pop
248
232
249
233
# Unbind the policer and send packets at highest possible rate. Make
250
234
# sure they are not dropped by the policer and that the measured
@@ -253,7 +237,10 @@ __rate_test()
253
237
254
238
devlink trap group set $DEVLINK_DEV group l3_drops nopolicer
255
239
240
+ defer_scope_push
241
+
256
242
start_traffic $h1 192.0.2.1 198.51.100.100 $rp1_mac
243
+ defer stop_traffic $!
257
244
258
245
rate=$( trap_rate_get)
259
246
(( rate > 1000 ))
@@ -265,7 +252,7 @@ __rate_test()
265
252
check_err $? " Expected zero policer drop rate, got a drop rate of $drop_rate pps"
266
253
log_info " Measured policer drop rate of $drop_rate pps"
267
254
268
- stop_traffic
255
+ defer_scope_pop
269
256
270
257
log_test " Trap policer rate"
271
258
}
0 commit comments