Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/sh
0002 # SPDX-License-Identifier: GPL-2.0
0003 #
0004 # cause kernel oops in bond_rr_gen_slave_id
0005 DEBUG=${DEBUG:-0}
0006 
0007 set -e
0008 test ${DEBUG} -ne 0 && set -x
0009 
0010 finish()
0011 {
0012         ip netns delete server || true
0013         ip netns delete client || true
0014         ip link del link1_1 || true
0015 }
0016 
0017 trap finish EXIT
0018 
0019 client_ip4=192.168.1.198
0020 server_ip4=192.168.1.254
0021 
0022 # setup kernel so it reboots after causing the panic
0023 echo 180 >/proc/sys/kernel/panic
0024 
0025 # build namespaces
0026 ip link add dev link1_1 type veth peer name link1_2
0027 
0028 ip netns add "server"
0029 ip link set dev link1_2 netns server up name eth0
0030 ip netns exec server ip addr add ${server_ip4}/24 dev eth0
0031 
0032 ip netns add "client"
0033 ip link set dev link1_1 netns client down name eth0
0034 ip netns exec client ip link add dev bond0 down type bond mode 1 \
0035         miimon 100 all_slaves_active 1
0036 ip netns exec client ip link set dev eth0 down master bond0
0037 ip netns exec client ip link set dev bond0 up
0038 ip netns exec client ip addr add ${client_ip4}/24 dev bond0
0039 ip netns exec client ping -c 5 $server_ip4 >/dev/null
0040 
0041 ip netns exec client ip link set dev eth0 down nomaster
0042 ip netns exec client ip link set dev bond0 down
0043 ip netns exec client ip link set dev bond0 type bond mode 0 \
0044         arp_interval 1000 arp_ip_target "+${server_ip4}"
0045 ip netns exec client ip link set dev eth0 down master bond0
0046 ip netns exec client ip link set dev bond0 up
0047 ip netns exec client ping -c 5 $server_ip4 >/dev/null
0048 
0049 exit 0