Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/drivers/net/bonding/bond-arp-interval-causes-panic.sh
26292 views
1
#!/bin/sh
2
# SPDX-License-Identifier: GPL-2.0
3
#
4
# cause kernel oops in bond_rr_gen_slave_id
5
DEBUG=${DEBUG:-0}
6
7
set -e
8
test ${DEBUG} -ne 0 && set -x
9
10
finish()
11
{
12
ip netns delete server || true
13
ip netns delete client || true
14
}
15
16
trap finish EXIT
17
18
client_ip4=192.168.1.198
19
server_ip4=192.168.1.254
20
21
# setup kernel so it reboots after causing the panic
22
echo 180 >/proc/sys/kernel/panic
23
24
# build namespaces
25
ip netns add "server"
26
ip netns add "client"
27
ip -n client link add eth0 type veth peer name eth0 netns server
28
ip netns exec server ip link set dev eth0 up
29
ip netns exec server ip addr add ${server_ip4}/24 dev eth0
30
31
ip netns exec client ip link add dev bond0 down type bond mode 1 \
32
miimon 100 all_slaves_active 1
33
ip netns exec client ip link set dev eth0 master bond0
34
ip netns exec client ip link set dev bond0 up
35
ip netns exec client ip addr add ${client_ip4}/24 dev bond0
36
ip netns exec client ping -c 5 $server_ip4 >/dev/null
37
38
ip netns exec client ip link set dev eth0 nomaster
39
ip netns exec client ip link set dev bond0 down
40
ip netns exec client ip link set dev bond0 type bond mode 0 \
41
arp_interval 1000 arp_ip_target "+${server_ip4}"
42
ip netns exec client ip link set dev eth0 master bond0
43
ip netns exec client ip link set dev bond0 up
44
ip netns exec client ping -c 5 $server_ip4 >/dev/null
45
46
exit 0
47
48