12ffd5732SJonathan Toppins#!/bin/sh
22ffd5732SJonathan Toppins# SPDX-License-Identifier: GPL-2.0
32ffd5732SJonathan Toppins#
42ffd5732SJonathan Toppins# cause kernel oops in bond_rr_gen_slave_id
52ffd5732SJonathan ToppinsDEBUG=${DEBUG:-0}
62ffd5732SJonathan Toppins
72ffd5732SJonathan Toppinsset -e
82ffd5732SJonathan Toppinstest ${DEBUG} -ne 0 && set -x
92ffd5732SJonathan Toppins
102ffd5732SJonathan Toppinsfinish()
112ffd5732SJonathan Toppins{
122ffd5732SJonathan Toppins	ip netns delete server || true
132ffd5732SJonathan Toppins	ip netns delete client || true
142ffd5732SJonathan Toppins}
152ffd5732SJonathan Toppins
162ffd5732SJonathan Toppinstrap finish EXIT
172ffd5732SJonathan Toppins
182ffd5732SJonathan Toppinsclient_ip4=192.168.1.198
192ffd5732SJonathan Toppinsserver_ip4=192.168.1.254
202ffd5732SJonathan Toppins
212ffd5732SJonathan Toppins# setup kernel so it reboots after causing the panic
222ffd5732SJonathan Toppinsecho 180 >/proc/sys/kernel/panic
232ffd5732SJonathan Toppins
242ffd5732SJonathan Toppins# build namespaces
252ffd5732SJonathan Toppinsip netns add "server"
26bf685836SZhengchao Shaoip netns add "client"
27bf685836SZhengchao Shaoip -n client link add eth0 type veth peer name eth0 netns server
28bf685836SZhengchao Shaoip netns exec server ip link set dev eth0 up
292ffd5732SJonathan Toppinsip netns exec server ip addr add ${server_ip4}/24 dev eth0
302ffd5732SJonathan Toppins
312ffd5732SJonathan Toppinsip netns exec client ip link add dev bond0 down type bond mode 1 \
322ffd5732SJonathan Toppins	miimon 100 all_slaves_active 1
33*61fa2493SHangbin Liuip netns exec client ip link set dev eth0 master bond0
342ffd5732SJonathan Toppinsip netns exec client ip link set dev bond0 up
352ffd5732SJonathan Toppinsip netns exec client ip addr add ${client_ip4}/24 dev bond0
362ffd5732SJonathan Toppinsip netns exec client ping -c 5 $server_ip4 >/dev/null
372ffd5732SJonathan Toppins
38*61fa2493SHangbin Liuip netns exec client ip link set dev eth0 nomaster
392ffd5732SJonathan Toppinsip netns exec client ip link set dev bond0 down
402ffd5732SJonathan Toppinsip netns exec client ip link set dev bond0 type bond mode 0 \
412ffd5732SJonathan Toppins	arp_interval 1000 arp_ip_target "+${server_ip4}"
42*61fa2493SHangbin Liuip netns exec client ip link set dev eth0 master bond0
432ffd5732SJonathan Toppinsip netns exec client ip link set dev bond0 up
442ffd5732SJonathan Toppinsip netns exec client ping -c 5 $server_ip4 >/dev/null
452ffd5732SJonathan Toppins
462ffd5732SJonathan Toppinsexit 0
47