47 lines · bash
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03#4# cause kernel oops in bond_rr_gen_slave_id5DEBUG=${DEBUG:-0}6 7set -e8test ${DEBUG} -ne 0 && set -x9 10finish()11{12 ip netns delete server || true13 ip netns delete client || true14}15 16trap finish EXIT17 18client_ip4=192.168.1.19819server_ip4=192.168.1.25420 21# setup kernel so it reboots after causing the panic22echo 180 >/proc/sys/kernel/panic23 24# build namespaces25ip netns add "server"26ip netns add "client"27ip -n client link add eth0 type veth peer name eth0 netns server28ip netns exec server ip link set dev eth0 up29ip netns exec server ip addr add ${server_ip4}/24 dev eth030 31ip netns exec client ip link add dev bond0 down type bond mode 1 \32 miimon 100 all_slaves_active 133ip netns exec client ip link set dev eth0 master bond034ip netns exec client ip link set dev bond0 up35ip netns exec client ip addr add ${client_ip4}/24 dev bond036ip netns exec client ping -c 5 $server_ip4 >/dev/null37 38ip netns exec client ip link set dev eth0 nomaster39ip netns exec client ip link set dev bond0 down40ip netns exec client ip link set dev bond0 type bond mode 0 \41 arp_interval 1000 arp_ip_target "+${server_ip4}"42ip netns exec client ip link set dev eth0 master bond043ip netns exec client ip link set dev bond0 up44ip netns exec client ping -c 5 $server_ip4 >/dev/null45 46exit 047