selftest: bond: add new topo bond_topo_2d1c.sh
Add a new testing topo bond_topo_2d1c.sh which is used more commonly. Make bond_topo_3d1c.sh just source bond_topo_2d1c.sh and add the extra link. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
e74216b8de
commit
27aa43f83c
@ -13,6 +13,7 @@ TEST_PROGS := \
|
||||
|
||||
TEST_FILES := \
|
||||
lag_lib.sh \
|
||||
bond_topo_2d1c.sh \
|
||||
bond_topo_3d1c.sh \
|
||||
net_forwarding_lib.sh
|
||||
|
||||
|
@ -9,10 +9,7 @@ ALL_TESTS="
|
||||
num_grat_arp
|
||||
"
|
||||
|
||||
REQUIRE_MZ=no
|
||||
NUM_NETIFS=0
|
||||
lib_dir=$(dirname "$0")
|
||||
source ${lib_dir}/net_forwarding_lib.sh
|
||||
source ${lib_dir}/bond_topo_3d1c.sh
|
||||
|
||||
skip_prio()
|
||||
|
158
tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh
Normal file
158
tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh
Normal file
@ -0,0 +1,158 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Topology for Bond mode 1,5,6 testing
|
||||
#
|
||||
# +-------------------------+
|
||||
# | bond0 | Server
|
||||
# | + | 192.0.2.1/24
|
||||
# | eth0 | eth1 | 2001:db8::1/24
|
||||
# | +---+---+ |
|
||||
# | | | |
|
||||
# +-------------------------+
|
||||
# | |
|
||||
# +-------------------------+
|
||||
# | | | |
|
||||
# | +---+-------+---+ | Gateway
|
||||
# | | br0 | | 192.0.2.254/24
|
||||
# | +-------+-------+ | 2001:db8::254/24
|
||||
# | | |
|
||||
# +-------------------------+
|
||||
# |
|
||||
# +-------------------------+
|
||||
# | | | Client
|
||||
# | + | 192.0.2.10/24
|
||||
# | eth0 | 2001:db8::10/24
|
||||
# +-------------------------+
|
||||
|
||||
REQUIRE_MZ=no
|
||||
NUM_NETIFS=0
|
||||
lib_dir=$(dirname "$0")
|
||||
source ${lib_dir}/net_forwarding_lib.sh
|
||||
|
||||
s_ns="s-$(mktemp -u XXXXXX)"
|
||||
c_ns="c-$(mktemp -u XXXXXX)"
|
||||
g_ns="g-$(mktemp -u XXXXXX)"
|
||||
s_ip4="192.0.2.1"
|
||||
c_ip4="192.0.2.10"
|
||||
g_ip4="192.0.2.254"
|
||||
s_ip6="2001:db8::1"
|
||||
c_ip6="2001:db8::10"
|
||||
g_ip6="2001:db8::254"
|
||||
|
||||
gateway_create()
|
||||
{
|
||||
ip netns add ${g_ns}
|
||||
ip -n ${g_ns} link add br0 type bridge
|
||||
ip -n ${g_ns} link set br0 up
|
||||
ip -n ${g_ns} addr add ${g_ip4}/24 dev br0
|
||||
ip -n ${g_ns} addr add ${g_ip6}/24 dev br0
|
||||
}
|
||||
|
||||
gateway_destroy()
|
||||
{
|
||||
ip -n ${g_ns} link del br0
|
||||
ip netns del ${g_ns}
|
||||
}
|
||||
|
||||
server_create()
|
||||
{
|
||||
ip netns add ${s_ns}
|
||||
ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
|
||||
|
||||
for i in $(seq 0 1); do
|
||||
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set s${i} up
|
||||
ip -n ${g_ns} link set s${i} master br0
|
||||
ip -n ${s_ns} link set eth${i} master bond0
|
||||
|
||||
tc -n ${g_ns} qdisc add dev s${i} clsact
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
# Reset bond with new mode and options
|
||||
bond_reset()
|
||||
{
|
||||
# Count the eth link number in real-time as this function
|
||||
# maybe called from other topologies.
|
||||
local link_num=$(ip -n ${s_ns} -br link show | grep -c "^eth")
|
||||
local param="$1"
|
||||
link_num=$((link_num -1))
|
||||
|
||||
ip -n ${s_ns} link set bond0 down
|
||||
ip -n ${s_ns} link del bond0
|
||||
|
||||
ip -n ${s_ns} link add bond0 type bond $param
|
||||
for i in $(seq 0 ${link_num}); do
|
||||
ip -n ${s_ns} link set eth$i master bond0
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
server_destroy()
|
||||
{
|
||||
# Count the eth link number in real-time as this function
|
||||
# maybe called from other topologies.
|
||||
local link_num=$(ip -n ${s_ns} -br link show | grep -c "^eth")
|
||||
link_num=$((link_num -1))
|
||||
for i in $(seq 0 ${link_num}); do
|
||||
ip -n ${s_ns} link del eth${i}
|
||||
done
|
||||
ip netns del ${s_ns}
|
||||
}
|
||||
|
||||
client_create()
|
||||
{
|
||||
ip netns add ${c_ns}
|
||||
ip -n ${c_ns} link add eth0 type veth peer name c0 netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set c0 up
|
||||
ip -n ${g_ns} link set c0 master br0
|
||||
|
||||
ip -n ${c_ns} link set eth0 up
|
||||
ip -n ${c_ns} addr add ${c_ip4}/24 dev eth0
|
||||
ip -n ${c_ns} addr add ${c_ip6}/24 dev eth0
|
||||
}
|
||||
|
||||
client_destroy()
|
||||
{
|
||||
ip -n ${c_ns} link del eth0
|
||||
ip netns del ${c_ns}
|
||||
}
|
||||
|
||||
setup_prepare()
|
||||
{
|
||||
gateway_create
|
||||
server_create
|
||||
client_create
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
||||
client_destroy
|
||||
server_destroy
|
||||
gateway_destroy
|
||||
}
|
||||
|
||||
bond_check_connection()
|
||||
{
|
||||
local msg=${1:-"check connection"}
|
||||
|
||||
sleep 2
|
||||
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping failed"
|
||||
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping6 failed"
|
||||
}
|
@ -25,121 +25,19 @@
|
||||
# | eth0 | 2001:db8::10/24
|
||||
# +-------------------------------------+
|
||||
|
||||
s_ns="s-$(mktemp -u XXXXXX)"
|
||||
c_ns="c-$(mktemp -u XXXXXX)"
|
||||
g_ns="g-$(mktemp -u XXXXXX)"
|
||||
s_ip4="192.0.2.1"
|
||||
c_ip4="192.0.2.10"
|
||||
g_ip4="192.0.2.254"
|
||||
s_ip6="2001:db8::1"
|
||||
c_ip6="2001:db8::10"
|
||||
g_ip6="2001:db8::254"
|
||||
|
||||
gateway_create()
|
||||
{
|
||||
ip netns add ${g_ns}
|
||||
ip -n ${g_ns} link add br0 type bridge
|
||||
ip -n ${g_ns} link set br0 up
|
||||
ip -n ${g_ns} addr add ${g_ip4}/24 dev br0
|
||||
ip -n ${g_ns} addr add ${g_ip6}/24 dev br0
|
||||
}
|
||||
|
||||
gateway_destroy()
|
||||
{
|
||||
ip -n ${g_ns} link del br0
|
||||
ip netns del ${g_ns}
|
||||
}
|
||||
|
||||
server_create()
|
||||
{
|
||||
ip netns add ${s_ns}
|
||||
ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
|
||||
|
||||
for i in $(seq 0 2); do
|
||||
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set s${i} up
|
||||
ip -n ${g_ns} link set s${i} master br0
|
||||
ip -n ${s_ns} link set eth${i} master bond0
|
||||
|
||||
tc -n ${g_ns} qdisc add dev s${i} clsact
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
# Reset bond with new mode and options
|
||||
bond_reset()
|
||||
{
|
||||
local param="$1"
|
||||
|
||||
ip -n ${s_ns} link set bond0 down
|
||||
ip -n ${s_ns} link del bond0
|
||||
|
||||
ip -n ${s_ns} link add bond0 type bond $param
|
||||
for i in $(seq 0 2); do
|
||||
ip -n ${s_ns} link set eth$i master bond0
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
server_destroy()
|
||||
{
|
||||
for i in $(seq 0 2); do
|
||||
ip -n ${s_ns} link del eth${i}
|
||||
done
|
||||
ip netns del ${s_ns}
|
||||
}
|
||||
|
||||
client_create()
|
||||
{
|
||||
ip netns add ${c_ns}
|
||||
ip -n ${c_ns} link add eth0 type veth peer name c0 netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set c0 up
|
||||
ip -n ${g_ns} link set c0 master br0
|
||||
|
||||
ip -n ${c_ns} link set eth0 up
|
||||
ip -n ${c_ns} addr add ${c_ip4}/24 dev eth0
|
||||
ip -n ${c_ns} addr add ${c_ip6}/24 dev eth0
|
||||
}
|
||||
|
||||
client_destroy()
|
||||
{
|
||||
ip -n ${c_ns} link del eth0
|
||||
ip netns del ${c_ns}
|
||||
}
|
||||
source bond_topo_2d1c.sh
|
||||
|
||||
setup_prepare()
|
||||
{
|
||||
gateway_create
|
||||
server_create
|
||||
client_create
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
||||
client_destroy
|
||||
server_destroy
|
||||
gateway_destroy
|
||||
}
|
||||
|
||||
bond_check_connection()
|
||||
{
|
||||
local msg=${1:-"check connection"}
|
||||
|
||||
sleep 2
|
||||
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping failed"
|
||||
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping6 failed"
|
||||
|
||||
# Add the extra device as we use 3 down links for bond0
|
||||
local i=2
|
||||
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
|
||||
ip -n ${g_ns} link set s${i} up
|
||||
ip -n ${g_ns} link set s${i} master br0
|
||||
ip -n ${s_ns} link set eth${i} master bond0
|
||||
tc -n ${g_ns} qdisc add dev s${i} clsact
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user