Skip to content

Commit 27aa43f

Browse files
liuhangbinPaolo Abeni
authored andcommitted
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>
1 parent e74216b commit 27aa43f

File tree

4 files changed

+167
-113
lines changed

4 files changed

+167
-113
lines changed

tools/testing/selftests/drivers/net/bonding/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ TEST_PROGS := \
1313

1414
TEST_FILES := \
1515
lag_lib.sh \
16+
bond_topo_2d1c.sh \
1617
bond_topo_3d1c.sh \
1718
net_forwarding_lib.sh
1819

tools/testing/selftests/drivers/net/bonding/bond_options.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ ALL_TESTS="
99
num_grat_arp
1010
"
1111

12-
REQUIRE_MZ=no
13-
NUM_NETIFS=0
1412
lib_dir=$(dirname "$0")
15-
source ${lib_dir}/net_forwarding_lib.sh
1613
source ${lib_dir}/bond_topo_3d1c.sh
1714

1815
skip_prio()
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: GPL-2.0
3+
#
4+
# Topology for Bond mode 1,5,6 testing
5+
#
6+
# +-------------------------+
7+
# | bond0 | Server
8+
# | + | 192.0.2.1/24
9+
# | eth0 | eth1 | 2001:db8::1/24
10+
# | +---+---+ |
11+
# | | | |
12+
# +-------------------------+
13+
# | |
14+
# +-------------------------+
15+
# | | | |
16+
# | +---+-------+---+ | Gateway
17+
# | | br0 | | 192.0.2.254/24
18+
# | +-------+-------+ | 2001:db8::254/24
19+
# | | |
20+
# +-------------------------+
21+
# |
22+
# +-------------------------+
23+
# | | | Client
24+
# | + | 192.0.2.10/24
25+
# | eth0 | 2001:db8::10/24
26+
# +-------------------------+
27+
28+
REQUIRE_MZ=no
29+
NUM_NETIFS=0
30+
lib_dir=$(dirname "$0")
31+
source ${lib_dir}/net_forwarding_lib.sh
32+
33+
s_ns="s-$(mktemp -u XXXXXX)"
34+
c_ns="c-$(mktemp -u XXXXXX)"
35+
g_ns="g-$(mktemp -u XXXXXX)"
36+
s_ip4="192.0.2.1"
37+
c_ip4="192.0.2.10"
38+
g_ip4="192.0.2.254"
39+
s_ip6="2001:db8::1"
40+
c_ip6="2001:db8::10"
41+
g_ip6="2001:db8::254"
42+
43+
gateway_create()
44+
{
45+
ip netns add ${g_ns}
46+
ip -n ${g_ns} link add br0 type bridge
47+
ip -n ${g_ns} link set br0 up
48+
ip -n ${g_ns} addr add ${g_ip4}/24 dev br0
49+
ip -n ${g_ns} addr add ${g_ip6}/24 dev br0
50+
}
51+
52+
gateway_destroy()
53+
{
54+
ip -n ${g_ns} link del br0
55+
ip netns del ${g_ns}
56+
}
57+
58+
server_create()
59+
{
60+
ip netns add ${s_ns}
61+
ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
62+
63+
for i in $(seq 0 1); do
64+
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
65+
66+
ip -n ${g_ns} link set s${i} up
67+
ip -n ${g_ns} link set s${i} master br0
68+
ip -n ${s_ns} link set eth${i} master bond0
69+
70+
tc -n ${g_ns} qdisc add dev s${i} clsact
71+
done
72+
73+
ip -n ${s_ns} link set bond0 up
74+
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
75+
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
76+
sleep 2
77+
}
78+
79+
# Reset bond with new mode and options
80+
bond_reset()
81+
{
82+
# Count the eth link number in real-time as this function
83+
# maybe called from other topologies.
84+
local link_num=$(ip -n ${s_ns} -br link show | grep -c "^eth")
85+
local param="$1"
86+
link_num=$((link_num -1))
87+
88+
ip -n ${s_ns} link set bond0 down
89+
ip -n ${s_ns} link del bond0
90+
91+
ip -n ${s_ns} link add bond0 type bond $param
92+
for i in $(seq 0 ${link_num}); do
93+
ip -n ${s_ns} link set eth$i master bond0
94+
done
95+
96+
ip -n ${s_ns} link set bond0 up
97+
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
98+
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
99+
sleep 2
100+
}
101+
102+
server_destroy()
103+
{
104+
# Count the eth link number in real-time as this function
105+
# maybe called from other topologies.
106+
local link_num=$(ip -n ${s_ns} -br link show | grep -c "^eth")
107+
link_num=$((link_num -1))
108+
for i in $(seq 0 ${link_num}); do
109+
ip -n ${s_ns} link del eth${i}
110+
done
111+
ip netns del ${s_ns}
112+
}
113+
114+
client_create()
115+
{
116+
ip netns add ${c_ns}
117+
ip -n ${c_ns} link add eth0 type veth peer name c0 netns ${g_ns}
118+
119+
ip -n ${g_ns} link set c0 up
120+
ip -n ${g_ns} link set c0 master br0
121+
122+
ip -n ${c_ns} link set eth0 up
123+
ip -n ${c_ns} addr add ${c_ip4}/24 dev eth0
124+
ip -n ${c_ns} addr add ${c_ip6}/24 dev eth0
125+
}
126+
127+
client_destroy()
128+
{
129+
ip -n ${c_ns} link del eth0
130+
ip netns del ${c_ns}
131+
}
132+
133+
setup_prepare()
134+
{
135+
gateway_create
136+
server_create
137+
client_create
138+
}
139+
140+
cleanup()
141+
{
142+
pre_cleanup
143+
144+
client_destroy
145+
server_destroy
146+
gateway_destroy
147+
}
148+
149+
bond_check_connection()
150+
{
151+
local msg=${1:-"check connection"}
152+
153+
sleep 2
154+
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
155+
check_err $? "${msg}: ping failed"
156+
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null
157+
check_err $? "${msg}: ping6 failed"
158+
}

tools/testing/selftests/drivers/net/bonding/bond_topo_3d1c.sh

Lines changed: 8 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -25,121 +25,19 @@
2525
# | eth0 | 2001:db8::10/24
2626
# +-------------------------------------+
2727

28-
s_ns="s-$(mktemp -u XXXXXX)"
29-
c_ns="c-$(mktemp -u XXXXXX)"
30-
g_ns="g-$(mktemp -u XXXXXX)"
31-
s_ip4="192.0.2.1"
32-
c_ip4="192.0.2.10"
33-
g_ip4="192.0.2.254"
34-
s_ip6="2001:db8::1"
35-
c_ip6="2001:db8::10"
36-
g_ip6="2001:db8::254"
37-
38-
gateway_create()
39-
{
40-
ip netns add ${g_ns}
41-
ip -n ${g_ns} link add br0 type bridge
42-
ip -n ${g_ns} link set br0 up
43-
ip -n ${g_ns} addr add ${g_ip4}/24 dev br0
44-
ip -n ${g_ns} addr add ${g_ip6}/24 dev br0
45-
}
46-
47-
gateway_destroy()
48-
{
49-
ip -n ${g_ns} link del br0
50-
ip netns del ${g_ns}
51-
}
52-
53-
server_create()
54-
{
55-
ip netns add ${s_ns}
56-
ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
57-
58-
for i in $(seq 0 2); do
59-
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
60-
61-
ip -n ${g_ns} link set s${i} up
62-
ip -n ${g_ns} link set s${i} master br0
63-
ip -n ${s_ns} link set eth${i} master bond0
64-
65-
tc -n ${g_ns} qdisc add dev s${i} clsact
66-
done
67-
68-
ip -n ${s_ns} link set bond0 up
69-
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
70-
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
71-
sleep 2
72-
}
73-
74-
# Reset bond with new mode and options
75-
bond_reset()
76-
{
77-
local param="$1"
78-
79-
ip -n ${s_ns} link set bond0 down
80-
ip -n ${s_ns} link del bond0
81-
82-
ip -n ${s_ns} link add bond0 type bond $param
83-
for i in $(seq 0 2); do
84-
ip -n ${s_ns} link set eth$i master bond0
85-
done
86-
87-
ip -n ${s_ns} link set bond0 up
88-
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
89-
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
90-
sleep 2
91-
}
92-
93-
server_destroy()
94-
{
95-
for i in $(seq 0 2); do
96-
ip -n ${s_ns} link del eth${i}
97-
done
98-
ip netns del ${s_ns}
99-
}
100-
101-
client_create()
102-
{
103-
ip netns add ${c_ns}
104-
ip -n ${c_ns} link add eth0 type veth peer name c0 netns ${g_ns}
105-
106-
ip -n ${g_ns} link set c0 up
107-
ip -n ${g_ns} link set c0 master br0
108-
109-
ip -n ${c_ns} link set eth0 up
110-
ip -n ${c_ns} addr add ${c_ip4}/24 dev eth0
111-
ip -n ${c_ns} addr add ${c_ip6}/24 dev eth0
112-
}
113-
114-
client_destroy()
115-
{
116-
ip -n ${c_ns} link del eth0
117-
ip netns del ${c_ns}
118-
}
28+
source bond_topo_2d1c.sh
11929

12030
setup_prepare()
12131
{
12232
gateway_create
12333
server_create
12434
client_create
125-
}
126-
127-
cleanup()
128-
{
129-
pre_cleanup
130-
131-
client_destroy
132-
server_destroy
133-
gateway_destroy
134-
}
135-
136-
bond_check_connection()
137-
{
138-
local msg=${1:-"check connection"}
13935

140-
sleep 2
141-
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
142-
check_err $? "${msg}: ping failed"
143-
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null
144-
check_err $? "${msg}: ping6 failed"
36+
# Add the extra device as we use 3 down links for bond0
37+
local i=2
38+
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
39+
ip -n ${g_ns} link set s${i} up
40+
ip -n ${g_ns} link set s${i} master br0
41+
ip -n ${s_ns} link set eth${i} master bond0
42+
tc -n ${g_ns} qdisc add dev s${i} clsact
14543
}

0 commit comments

Comments
 (0)