xref: /linux/tools/testing/selftests/drivers/net/netdevsim/fib.sh (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1ffdc5149SIdo Schimmel#!/bin/bash
2ffdc5149SIdo Schimmel# SPDX-License-Identifier: GPL-2.0
3ffdc5149SIdo Schimmel#
4ffdc5149SIdo Schimmel# This test is for checking the FIB offload API. It makes use of netdevsim
5ffdc5149SIdo Schimmel# which registers a listener to the FIB notification chain.
6ffdc5149SIdo Schimmel
7ffdc5149SIdo Schimmellib_dir=$(dirname $0)/../../../net/forwarding
8ffdc5149SIdo Schimmel
9ffdc5149SIdo SchimmelALL_TESTS="
10ffdc5149SIdo Schimmel	ipv4_identical_routes
11ffdc5149SIdo Schimmel	ipv4_tos
12ffdc5149SIdo Schimmel	ipv4_metric
13ffdc5149SIdo Schimmel	ipv4_replace
14ffdc5149SIdo Schimmel	ipv4_delete
15ffdc5149SIdo Schimmel	ipv4_plen
16ffdc5149SIdo Schimmel	ipv4_replay
17ffdc5149SIdo Schimmel	ipv4_flush
18ffdc5149SIdo Schimmel	ipv4_error_path
19*40823f3eSIdo Schimmel	ipv4_delete_fail
20ffdc5149SIdo Schimmel	ipv6_add
21ffdc5149SIdo Schimmel	ipv6_metric
22ffdc5149SIdo Schimmel	ipv6_append_single
23ffdc5149SIdo Schimmel	ipv6_replace_single
24ffdc5149SIdo Schimmel	ipv6_metric_multipath
25ffdc5149SIdo Schimmel	ipv6_append_multipath
26ffdc5149SIdo Schimmel	ipv6_replace_multipath
27ffdc5149SIdo Schimmel	ipv6_append_multipath_to_single
28ffdc5149SIdo Schimmel	ipv6_delete_single
29ffdc5149SIdo Schimmel	ipv6_delete_multipath
30ffdc5149SIdo Schimmel	ipv6_replay_single
31ffdc5149SIdo Schimmel	ipv6_replay_multipath
32ffdc5149SIdo Schimmel	ipv6_error_path
33*40823f3eSIdo Schimmel	ipv6_delete_fail
34ffdc5149SIdo Schimmel"
35ffdc5149SIdo SchimmelNETDEVSIM_PATH=/sys/bus/netdevsim/
36ffdc5149SIdo SchimmelDEV_ADDR=1337
37ffdc5149SIdo SchimmelDEV=netdevsim${DEV_ADDR}
38ffdc5149SIdo SchimmelSYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV/net/
39*40823f3eSIdo SchimmelDEBUGFS_DIR=/sys/kernel/debug/netdevsim/$DEV/
40ffdc5149SIdo SchimmelNUM_NETIFS=0
41ffdc5149SIdo Schimmelsource $lib_dir/lib.sh
42ffdc5149SIdo Schimmelsource $lib_dir/fib_offload_lib.sh
43ffdc5149SIdo Schimmel
440521a262SPetr MachataDEVLINK_DEV=
450521a262SPetr Machatasource $lib_dir/devlink_lib.sh
460521a262SPetr MachataDEVLINK_DEV=netdevsim/${DEV}
470521a262SPetr Machata
48ffdc5149SIdo Schimmelipv4_identical_routes()
49ffdc5149SIdo Schimmel{
50ffdc5149SIdo Schimmel	fib_ipv4_identical_routes_test "testns1"
51ffdc5149SIdo Schimmel}
52ffdc5149SIdo Schimmel
53ffdc5149SIdo Schimmelipv4_tos()
54ffdc5149SIdo Schimmel{
55ffdc5149SIdo Schimmel	fib_ipv4_tos_test "testns1"
56ffdc5149SIdo Schimmel}
57ffdc5149SIdo Schimmel
58ffdc5149SIdo Schimmelipv4_metric()
59ffdc5149SIdo Schimmel{
60ffdc5149SIdo Schimmel	fib_ipv4_metric_test "testns1"
61ffdc5149SIdo Schimmel}
62ffdc5149SIdo Schimmel
63ffdc5149SIdo Schimmelipv4_replace()
64ffdc5149SIdo Schimmel{
65ffdc5149SIdo Schimmel	fib_ipv4_replace_test "testns1"
66ffdc5149SIdo Schimmel}
67ffdc5149SIdo Schimmel
68ffdc5149SIdo Schimmelipv4_delete()
69ffdc5149SIdo Schimmel{
70ffdc5149SIdo Schimmel	fib_ipv4_delete_test "testns1"
71ffdc5149SIdo Schimmel}
72ffdc5149SIdo Schimmel
73ffdc5149SIdo Schimmelipv4_plen()
74ffdc5149SIdo Schimmel{
75ffdc5149SIdo Schimmel	fib_ipv4_plen_test "testns1"
76ffdc5149SIdo Schimmel}
77ffdc5149SIdo Schimmel
78ffdc5149SIdo Schimmelipv4_replay_metric()
79ffdc5149SIdo Schimmel{
80ffdc5149SIdo Schimmel	fib_ipv4_replay_metric_test "testns1" "$DEVLINK_DEV"
81ffdc5149SIdo Schimmel}
82ffdc5149SIdo Schimmel
83ffdc5149SIdo Schimmelipv4_replay_tos()
84ffdc5149SIdo Schimmel{
85ffdc5149SIdo Schimmel	fib_ipv4_replay_tos_test "testns1" "$DEVLINK_DEV"
86ffdc5149SIdo Schimmel}
87ffdc5149SIdo Schimmel
88ffdc5149SIdo Schimmelipv4_replay_plen()
89ffdc5149SIdo Schimmel{
90ffdc5149SIdo Schimmel	fib_ipv4_replay_plen_test "testns1" "$DEVLINK_DEV"
91ffdc5149SIdo Schimmel}
92ffdc5149SIdo Schimmel
93ffdc5149SIdo Schimmelipv4_replay()
94ffdc5149SIdo Schimmel{
95ffdc5149SIdo Schimmel	ipv4_replay_metric
96ffdc5149SIdo Schimmel	ipv4_replay_tos
97ffdc5149SIdo Schimmel	ipv4_replay_plen
98ffdc5149SIdo Schimmel}
99ffdc5149SIdo Schimmel
100ffdc5149SIdo Schimmelipv4_flush()
101ffdc5149SIdo Schimmel{
102ffdc5149SIdo Schimmel	fib_ipv4_flush_test "testns1"
103ffdc5149SIdo Schimmel}
104ffdc5149SIdo Schimmel
105ffdc5149SIdo Schimmelipv4_error_path_add()
106ffdc5149SIdo Schimmel{
107ffdc5149SIdo Schimmel	local lsb
108ffdc5149SIdo Schimmel
109ffdc5149SIdo Schimmel	RET=0
110ffdc5149SIdo Schimmel
111ffdc5149SIdo Schimmel	ip -n testns1 link add name dummy1 type dummy
112ffdc5149SIdo Schimmel	ip -n testns1 link set dev dummy1 up
113ffdc5149SIdo Schimmel
114ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv4/fib size 10
115ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
116ffdc5149SIdo Schimmel
117ffdc5149SIdo Schimmel	for lsb in $(seq 1 20); do
118ffdc5149SIdo Schimmel		ip -n testns1 route add 192.0.2.${lsb}/32 dev dummy1 \
119ffdc5149SIdo Schimmel			&> /dev/null
120ffdc5149SIdo Schimmel	done
121ffdc5149SIdo Schimmel
122ffdc5149SIdo Schimmel	log_test "IPv4 error path - add"
123ffdc5149SIdo Schimmel
124ffdc5149SIdo Schimmel	ip -n testns1 link del dev dummy1
125ffdc5149SIdo Schimmel}
126ffdc5149SIdo Schimmel
127ffdc5149SIdo Schimmelipv4_error_path_replay()
128ffdc5149SIdo Schimmel{
129ffdc5149SIdo Schimmel	local lsb
130ffdc5149SIdo Schimmel
131ffdc5149SIdo Schimmel	RET=0
132ffdc5149SIdo Schimmel
133ffdc5149SIdo Schimmel	ip -n testns1 link add name dummy1 type dummy
134ffdc5149SIdo Schimmel	ip -n testns1 link set dev dummy1 up
135ffdc5149SIdo Schimmel
136ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv4/fib size 100
137ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
138ffdc5149SIdo Schimmel
139ffdc5149SIdo Schimmel	for lsb in $(seq 1 20); do
140ffdc5149SIdo Schimmel		ip -n testns1 route add 192.0.2.${lsb}/32 dev dummy1
141ffdc5149SIdo Schimmel	done
142ffdc5149SIdo Schimmel
143ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv4/fib size 10
144ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV &> /dev/null
145ffdc5149SIdo Schimmel
146ffdc5149SIdo Schimmel	log_test "IPv4 error path - replay"
147ffdc5149SIdo Schimmel
148ffdc5149SIdo Schimmel	ip -n testns1 link del dev dummy1
149ffdc5149SIdo Schimmel
150ffdc5149SIdo Schimmel	# Successfully reload after deleting all the routes.
151ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv4/fib size 100
152ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
153ffdc5149SIdo Schimmel}
154ffdc5149SIdo Schimmel
155ffdc5149SIdo Schimmelipv4_error_path()
156ffdc5149SIdo Schimmel{
157ffdc5149SIdo Schimmel	# Test the different error paths of the notifiers by limiting the size
158ffdc5149SIdo Schimmel	# of the "IPv4/fib" resource.
159ffdc5149SIdo Schimmel	ipv4_error_path_add
160ffdc5149SIdo Schimmel	ipv4_error_path_replay
161ffdc5149SIdo Schimmel}
162ffdc5149SIdo Schimmel
163*40823f3eSIdo Schimmelipv4_delete_fail()
164*40823f3eSIdo Schimmel{
165*40823f3eSIdo Schimmel	RET=0
166*40823f3eSIdo Schimmel
167*40823f3eSIdo Schimmel	echo "y" > $DEBUGFS_DIR/fib/fail_route_delete
168*40823f3eSIdo Schimmel
169*40823f3eSIdo Schimmel	ip -n testns1 link add name dummy1 type dummy
170*40823f3eSIdo Schimmel	ip -n testns1 link set dev dummy1 up
171*40823f3eSIdo Schimmel
172*40823f3eSIdo Schimmel	ip -n testns1 route add 192.0.2.0/24 dev dummy1
173*40823f3eSIdo Schimmel	ip -n testns1 route del 192.0.2.0/24 dev dummy1 &> /dev/null
174*40823f3eSIdo Schimmel
175*40823f3eSIdo Schimmel	# We should not be able to delete the netdev if we are leaking a
176*40823f3eSIdo Schimmel	# reference.
177*40823f3eSIdo Schimmel	ip -n testns1 link del dev dummy1
178*40823f3eSIdo Schimmel
179*40823f3eSIdo Schimmel	log_test "IPv4 route delete failure"
180*40823f3eSIdo Schimmel
181*40823f3eSIdo Schimmel	echo "n" > $DEBUGFS_DIR/fib/fail_route_delete
182*40823f3eSIdo Schimmel}
183*40823f3eSIdo Schimmel
184ffdc5149SIdo Schimmelipv6_add()
185ffdc5149SIdo Schimmel{
186ffdc5149SIdo Schimmel	fib_ipv6_add_test "testns1"
187ffdc5149SIdo Schimmel}
188ffdc5149SIdo Schimmel
189ffdc5149SIdo Schimmelipv6_metric()
190ffdc5149SIdo Schimmel{
191ffdc5149SIdo Schimmel	fib_ipv6_metric_test "testns1"
192ffdc5149SIdo Schimmel}
193ffdc5149SIdo Schimmel
194ffdc5149SIdo Schimmelipv6_append_single()
195ffdc5149SIdo Schimmel{
196ffdc5149SIdo Schimmel	fib_ipv6_append_single_test "testns1"
197ffdc5149SIdo Schimmel}
198ffdc5149SIdo Schimmel
199ffdc5149SIdo Schimmelipv6_replace_single()
200ffdc5149SIdo Schimmel{
201ffdc5149SIdo Schimmel	fib_ipv6_replace_single_test "testns1"
202ffdc5149SIdo Schimmel}
203ffdc5149SIdo Schimmel
204ffdc5149SIdo Schimmelipv6_metric_multipath()
205ffdc5149SIdo Schimmel{
206ffdc5149SIdo Schimmel	fib_ipv6_metric_multipath_test "testns1"
207ffdc5149SIdo Schimmel}
208ffdc5149SIdo Schimmel
209ffdc5149SIdo Schimmelipv6_append_multipath()
210ffdc5149SIdo Schimmel{
211ffdc5149SIdo Schimmel	fib_ipv6_append_multipath_test "testns1"
212ffdc5149SIdo Schimmel}
213ffdc5149SIdo Schimmel
214ffdc5149SIdo Schimmelipv6_replace_multipath()
215ffdc5149SIdo Schimmel{
216ffdc5149SIdo Schimmel	fib_ipv6_replace_multipath_test "testns1"
217ffdc5149SIdo Schimmel}
218ffdc5149SIdo Schimmel
219ffdc5149SIdo Schimmelipv6_append_multipath_to_single()
220ffdc5149SIdo Schimmel{
221ffdc5149SIdo Schimmel	fib_ipv6_append_multipath_to_single_test "testns1"
222ffdc5149SIdo Schimmel}
223ffdc5149SIdo Schimmel
224ffdc5149SIdo Schimmelipv6_delete_single()
225ffdc5149SIdo Schimmel{
226ffdc5149SIdo Schimmel	fib_ipv6_delete_single_test "testns1"
227ffdc5149SIdo Schimmel}
228ffdc5149SIdo Schimmel
229ffdc5149SIdo Schimmelipv6_delete_multipath()
230ffdc5149SIdo Schimmel{
231ffdc5149SIdo Schimmel	fib_ipv6_delete_multipath_test "testns1"
232ffdc5149SIdo Schimmel}
233ffdc5149SIdo Schimmel
234ffdc5149SIdo Schimmelipv6_replay_single()
235ffdc5149SIdo Schimmel{
236ffdc5149SIdo Schimmel	fib_ipv6_replay_single_test "testns1" "$DEVLINK_DEV"
237ffdc5149SIdo Schimmel}
238ffdc5149SIdo Schimmel
239ffdc5149SIdo Schimmelipv6_replay_multipath()
240ffdc5149SIdo Schimmel{
241ffdc5149SIdo Schimmel	fib_ipv6_replay_multipath_test "testns1" "$DEVLINK_DEV"
242ffdc5149SIdo Schimmel}
243ffdc5149SIdo Schimmel
244ffdc5149SIdo Schimmelipv6_error_path_add_single()
245ffdc5149SIdo Schimmel{
246ffdc5149SIdo Schimmel	local lsb
247ffdc5149SIdo Schimmel
248ffdc5149SIdo Schimmel	RET=0
249ffdc5149SIdo Schimmel
250ffdc5149SIdo Schimmel	ip -n testns1 link add name dummy1 type dummy
251ffdc5149SIdo Schimmel	ip -n testns1 link set dev dummy1 up
252ffdc5149SIdo Schimmel
253ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv6/fib size 10
254ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
255ffdc5149SIdo Schimmel
256ffdc5149SIdo Schimmel	for lsb in $(seq 1 20); do
257ffdc5149SIdo Schimmel		ip -n testns1 route add 2001:db8:1::${lsb}/128 dev dummy1 \
258ffdc5149SIdo Schimmel			&> /dev/null
259ffdc5149SIdo Schimmel	done
260ffdc5149SIdo Schimmel
261ffdc5149SIdo Schimmel	log_test "IPv6 error path - add single"
262ffdc5149SIdo Schimmel
263ffdc5149SIdo Schimmel	ip -n testns1 link del dev dummy1
264ffdc5149SIdo Schimmel}
265ffdc5149SIdo Schimmel
266ffdc5149SIdo Schimmelipv6_error_path_add_multipath()
267ffdc5149SIdo Schimmel{
268ffdc5149SIdo Schimmel	local lsb
269ffdc5149SIdo Schimmel
270ffdc5149SIdo Schimmel	RET=0
271ffdc5149SIdo Schimmel
272ffdc5149SIdo Schimmel	for i in $(seq 1 2); do
273ffdc5149SIdo Schimmel		ip -n testns1 link add name dummy$i type dummy
274ffdc5149SIdo Schimmel		ip -n testns1 link set dev dummy$i up
275ffdc5149SIdo Schimmel		ip -n testns1 address add 2001:db8:$i::1/64 dev dummy$i
276ffdc5149SIdo Schimmel	done
277ffdc5149SIdo Schimmel
278ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv6/fib size 10
279ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
280ffdc5149SIdo Schimmel
281ffdc5149SIdo Schimmel	for lsb in $(seq 1 20); do
282ffdc5149SIdo Schimmel		ip -n testns1 route add 2001:db8:10::${lsb}/128 \
283ffdc5149SIdo Schimmel			nexthop via 2001:db8:1::2 dev dummy1 \
284ffdc5149SIdo Schimmel			nexthop via 2001:db8:2::2 dev dummy2 &> /dev/null
285ffdc5149SIdo Schimmel	done
286ffdc5149SIdo Schimmel
287ffdc5149SIdo Schimmel	log_test "IPv6 error path - add multipath"
288ffdc5149SIdo Schimmel
289ffdc5149SIdo Schimmel	for i in $(seq 1 2); do
290ffdc5149SIdo Schimmel		ip -n testns1 link del dev dummy$i
291ffdc5149SIdo Schimmel	done
292ffdc5149SIdo Schimmel}
293ffdc5149SIdo Schimmel
294ffdc5149SIdo Schimmelipv6_error_path_replay()
295ffdc5149SIdo Schimmel{
296ffdc5149SIdo Schimmel	local lsb
297ffdc5149SIdo Schimmel
298ffdc5149SIdo Schimmel	RET=0
299ffdc5149SIdo Schimmel
300ffdc5149SIdo Schimmel	ip -n testns1 link add name dummy1 type dummy
301ffdc5149SIdo Schimmel	ip -n testns1 link set dev dummy1 up
302ffdc5149SIdo Schimmel
303ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv6/fib size 100
304ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
305ffdc5149SIdo Schimmel
306ffdc5149SIdo Schimmel	for lsb in $(seq 1 20); do
307ffdc5149SIdo Schimmel		ip -n testns1 route add 2001:db8:1::${lsb}/128 dev dummy1
308ffdc5149SIdo Schimmel	done
309ffdc5149SIdo Schimmel
310ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv6/fib size 10
311ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV &> /dev/null
312ffdc5149SIdo Schimmel
313ffdc5149SIdo Schimmel	log_test "IPv6 error path - replay"
314ffdc5149SIdo Schimmel
315ffdc5149SIdo Schimmel	ip -n testns1 link del dev dummy1
316ffdc5149SIdo Schimmel
317ffdc5149SIdo Schimmel	# Successfully reload after deleting all the routes.
318ffdc5149SIdo Schimmel	devlink -N testns1 resource set $DEVLINK_DEV path IPv6/fib size 100
319ffdc5149SIdo Schimmel	devlink -N testns1 dev reload $DEVLINK_DEV
320ffdc5149SIdo Schimmel}
321ffdc5149SIdo Schimmel
322ffdc5149SIdo Schimmelipv6_error_path()
323ffdc5149SIdo Schimmel{
324ffdc5149SIdo Schimmel	# Test the different error paths of the notifiers by limiting the size
325ffdc5149SIdo Schimmel	# of the "IPv6/fib" resource.
326ffdc5149SIdo Schimmel	ipv6_error_path_add_single
327ffdc5149SIdo Schimmel	ipv6_error_path_add_multipath
328ffdc5149SIdo Schimmel	ipv6_error_path_replay
329ffdc5149SIdo Schimmel}
330ffdc5149SIdo Schimmel
331*40823f3eSIdo Schimmelipv6_delete_fail()
332*40823f3eSIdo Schimmel{
333*40823f3eSIdo Schimmel	RET=0
334*40823f3eSIdo Schimmel
335*40823f3eSIdo Schimmel	echo "y" > $DEBUGFS_DIR/fib/fail_route_delete
336*40823f3eSIdo Schimmel
337*40823f3eSIdo Schimmel	ip -n testns1 link add name dummy1 type dummy
338*40823f3eSIdo Schimmel	ip -n testns1 link set dev dummy1 up
339*40823f3eSIdo Schimmel
340*40823f3eSIdo Schimmel	ip -n testns1 route add 2001:db8:1::/64 dev dummy1
341*40823f3eSIdo Schimmel	ip -n testns1 route del 2001:db8:1::/64 dev dummy1 &> /dev/null
342*40823f3eSIdo Schimmel
343*40823f3eSIdo Schimmel	# We should not be able to delete the netdev if we are leaking a
344*40823f3eSIdo Schimmel	# reference.
345*40823f3eSIdo Schimmel	ip -n testns1 link del dev dummy1
346*40823f3eSIdo Schimmel
347*40823f3eSIdo Schimmel	log_test "IPv6 route delete failure"
348*40823f3eSIdo Schimmel
349*40823f3eSIdo Schimmel	echo "n" > $DEBUGFS_DIR/fib/fail_route_delete
350*40823f3eSIdo Schimmel}
351*40823f3eSIdo Schimmel
352d1a7a489SAmit Cohenfib_notify_on_flag_change_set()
353d1a7a489SAmit Cohen{
354d1a7a489SAmit Cohen	local notify=$1; shift
355d1a7a489SAmit Cohen
356d1a7a489SAmit Cohen	ip netns exec testns1 sysctl -qw net.ipv4.fib_notify_on_flag_change=$notify
357d1a7a489SAmit Cohen	ip netns exec testns1 sysctl -qw net.ipv6.fib_notify_on_flag_change=$notify
358d1a7a489SAmit Cohen
359d1a7a489SAmit Cohen	log_info "Set fib_notify_on_flag_change to $notify"
360d1a7a489SAmit Cohen}
361d1a7a489SAmit Cohen
362ffdc5149SIdo Schimmelsetup_prepare()
363ffdc5149SIdo Schimmel{
364ffdc5149SIdo Schimmel	local netdev
365ffdc5149SIdo Schimmel
366ffdc5149SIdo Schimmel	modprobe netdevsim &> /dev/null
367ffdc5149SIdo Schimmel
368ffdc5149SIdo Schimmel	echo "$DEV_ADDR 1" > ${NETDEVSIM_PATH}/new_device
369ffdc5149SIdo Schimmel	while [ ! -d $SYSFS_NET_DIR ] ; do :; done
370ffdc5149SIdo Schimmel
371ffdc5149SIdo Schimmel	ip netns add testns1
372ffdc5149SIdo Schimmel	if [ $? -ne 0 ]; then
373ffdc5149SIdo Schimmel		echo "Failed to add netns \"testns1\""
374ffdc5149SIdo Schimmel		exit 1
375ffdc5149SIdo Schimmel	fi
376ffdc5149SIdo Schimmel
377ffdc5149SIdo Schimmel	devlink dev reload $DEVLINK_DEV netns testns1
378ffdc5149SIdo Schimmel	if [ $? -ne 0 ]; then
379ffdc5149SIdo Schimmel		echo "Failed to reload into netns \"testns1\""
380ffdc5149SIdo Schimmel		exit 1
381ffdc5149SIdo Schimmel	fi
382ffdc5149SIdo Schimmel}
383ffdc5149SIdo Schimmel
384ffdc5149SIdo Schimmelcleanup()
385ffdc5149SIdo Schimmel{
386ffdc5149SIdo Schimmel	pre_cleanup
387ffdc5149SIdo Schimmel	ip netns del testns1
388ffdc5149SIdo Schimmel	echo "$DEV_ADDR" > ${NETDEVSIM_PATH}/del_device
389ffdc5149SIdo Schimmel	modprobe -r netdevsim &> /dev/null
390ffdc5149SIdo Schimmel}
391ffdc5149SIdo Schimmel
392ffdc5149SIdo Schimmeltrap cleanup EXIT
393ffdc5149SIdo Schimmel
394ffdc5149SIdo Schimmelsetup_prepare
395ffdc5149SIdo Schimmel
396d1a7a489SAmit Cohenfib_notify_on_flag_change_set 1
397d1a7a489SAmit Cohentests_run
398d1a7a489SAmit Cohen
399d1a7a489SAmit Cohenfib_notify_on_flag_change_set 0
400ffdc5149SIdo Schimmeltests_run
401ffdc5149SIdo Schimmel
402ffdc5149SIdo Schimmelexit $EXIT_STATUS
403