1 #!/bin/sh 1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 2 # SPDX-License-Identifier: GPL-2.0 3 # 3 # 4 # cause kernel oops in bond_rr_gen_slave_id 4 # cause kernel oops in bond_rr_gen_slave_id 5 DEBUG=${DEBUG:-0} 5 DEBUG=${DEBUG:-0} 6 6 7 set -e 7 set -e 8 test ${DEBUG} -ne 0 && set -x 8 test ${DEBUG} -ne 0 && set -x 9 9 10 finish() 10 finish() 11 { 11 { 12 ip netns delete server || true 12 ip netns delete server || true 13 ip netns delete client || true 13 ip netns delete client || true 14 } 14 } 15 15 16 trap finish EXIT 16 trap finish EXIT 17 17 18 client_ip4=192.168.1.198 18 client_ip4=192.168.1.198 19 server_ip4=192.168.1.254 19 server_ip4=192.168.1.254 20 20 21 # setup kernel so it reboots after causing the 21 # setup kernel so it reboots after causing the panic 22 echo 180 >/proc/sys/kernel/panic 22 echo 180 >/proc/sys/kernel/panic 23 23 24 # build namespaces 24 # build namespaces 25 ip netns add "server" 25 ip netns add "server" 26 ip netns add "client" 26 ip netns add "client" 27 ip -n client link add eth0 type veth peer name 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 28 ip netns exec server ip link set dev eth0 up 29 ip netns exec server ip addr add ${server_ip4} 29 ip netns exec server ip addr add ${server_ip4}/24 dev eth0 30 30 31 ip netns exec client ip link add dev bond0 dow 31 ip netns exec client ip link add dev bond0 down type bond mode 1 \ 32 miimon 100 all_slaves_active 1 32 miimon 100 all_slaves_active 1 33 ip netns exec client ip link set dev eth0 mast 33 ip netns exec client ip link set dev eth0 master bond0 34 ip netns exec client ip link set dev bond0 up 34 ip netns exec client ip link set dev bond0 up 35 ip netns exec client ip addr add ${client_ip4} 35 ip netns exec client ip addr add ${client_ip4}/24 dev bond0 36 ip netns exec client ping -c 5 $server_ip4 >/d 36 ip netns exec client ping -c 5 $server_ip4 >/dev/null 37 37 38 ip netns exec client ip link set dev eth0 noma 38 ip netns exec client ip link set dev eth0 nomaster 39 ip netns exec client ip link set dev bond0 dow 39 ip netns exec client ip link set dev bond0 down 40 ip netns exec client ip link set dev bond0 typ 40 ip netns exec client ip link set dev bond0 type bond mode 0 \ 41 arp_interval 1000 arp_ip_target "+${se 41 arp_interval 1000 arp_ip_target "+${server_ip4}" 42 ip netns exec client ip link set dev eth0 mast 42 ip netns exec client ip link set dev eth0 master bond0 43 ip netns exec client ip link set dev bond0 up 43 ip netns exec client ip link set dev bond0 up 44 ip netns exec client ping -c 5 $server_ip4 >/d 44 ip netns exec client ping -c 5 $server_ip4 >/dev/null 45 45 46 exit 0 46 exit 0
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.