Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/drivers/net/mlxsw/devlink_trap.sh
26292 views
1
#!/bin/bash
2
# SPDX-License-Identifier: GPL-2.0
3
#
4
# Test generic devlink-trap functionality over mlxsw. These tests are not
5
# specific to a single trap, but do not check the devlink-trap common
6
# infrastructure either.
7
8
lib_dir=$(dirname $0)/../../../net/forwarding
9
10
ALL_TESTS="
11
dev_del_test
12
"
13
NUM_NETIFS=4
14
source $lib_dir/tc_common.sh
15
source $lib_dir/lib.sh
16
source $lib_dir/devlink_lib.sh
17
18
h1_create()
19
{
20
simple_if_init $h1
21
}
22
23
h1_destroy()
24
{
25
simple_if_fini $h1
26
}
27
28
h2_create()
29
{
30
simple_if_init $h2
31
}
32
33
h2_destroy()
34
{
35
simple_if_fini $h2
36
}
37
38
switch_create()
39
{
40
ip link add dev br0 type bridge vlan_filtering 1 mcast_snooping 0
41
42
ip link set dev $swp1 master br0
43
ip link set dev $swp2 master br0
44
45
ip link set dev br0 up
46
ip link set dev $swp1 up
47
ip link set dev $swp2 up
48
}
49
50
switch_destroy()
51
{
52
ip link set dev $swp2 down
53
ip link set dev $swp1 down
54
55
ip link del dev br0
56
}
57
58
setup_prepare()
59
{
60
h1=${NETIFS[p1]}
61
swp1=${NETIFS[p2]}
62
63
swp2=${NETIFS[p3]}
64
h2=${NETIFS[p4]}
65
66
vrf_prepare
67
68
h1_create
69
h2_create
70
71
switch_create
72
}
73
74
cleanup()
75
{
76
pre_cleanup
77
78
switch_destroy
79
80
h2_destroy
81
h1_destroy
82
83
vrf_cleanup
84
}
85
86
dev_del_test()
87
{
88
local trap_name="source_mac_is_multicast"
89
local smac=01:02:03:04:05:06
90
local num_iter=5
91
local mz_pid
92
local i
93
94
$MZ $h1 -c 0 -p 100 -a $smac -b bcast -t ip -q &
95
mz_pid=$!
96
97
# The purpose of this test is to make sure we correctly dismantle a
98
# port while packets are trapped from it. This is done by reloading the
99
# the driver while the 'ingress_smac_mc_drop' trap is triggered.
100
RET=0
101
102
for i in $(seq 1 $num_iter); do
103
log_info "Iteration $i / $num_iter"
104
105
devlink_trap_action_set $trap_name "trap"
106
sleep 1
107
108
devlink_reload
109
# Allow netdevices to be re-created following the reload
110
sleep 20
111
112
cleanup
113
setup_prepare
114
setup_wait
115
done
116
117
log_test "Device delete"
118
119
kill_process $mz_pid
120
}
121
122
trap cleanup EXIT
123
124
setup_prepare
125
setup_wait
126
127
tests_run
128
129
exit $EXIT_STATUS
130
131