Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh
26292 views
1
#!/bin/sh
2
# SPDX-License-Identifier: GPL-2.0
3
4
# Regression Test:
5
# Verify LACPDUs get transmitted after setting the MAC address of
6
# the bond.
7
#
8
# https://bugzilla.redhat.com/show_bug.cgi?id=2020773
9
#
10
# +---------+
11
# | fab-br0 |
12
# +---------+
13
# |
14
# +---------+
15
# | fbond |
16
# +---------+
17
# | |
18
# +------+ +------+
19
# |veth1 | |veth2 |
20
# +------+ +------+
21
#
22
# We use veths instead of physical interfaces
23
REQUIRE_MZ=no
24
NUM_NETIFS=0
25
lib_dir=$(dirname "$0")
26
source "$lib_dir"/../../../net/forwarding/lib.sh
27
28
set -e
29
cleanup() {
30
ip link del fab-br0 >/dev/null 2>&1 || :
31
ip link del fbond >/dev/null 2>&1 || :
32
ip link del veth1-bond >/dev/null 2>&1 || :
33
ip link del veth2-bond >/dev/null 2>&1 || :
34
}
35
36
trap cleanup 0 1 2
37
cleanup
38
39
# create the bridge
40
ip link add fab-br0 address 52:54:00:3B:7C:A6 mtu 1500 type bridge \
41
forward_delay 15
42
43
# create the bond
44
ip link add fbond type bond mode 4 miimon 200 xmit_hash_policy 1 \
45
ad_actor_sys_prio 65535 lacp_rate fast
46
47
# set bond address
48
ip link set fbond address 52:54:00:3B:7C:A6
49
ip link set fbond up
50
51
# set again bond sysfs parameters
52
ip link set fbond type bond ad_actor_sys_prio 65535
53
54
# create veths
55
ip link add name veth1-bond type veth peer name veth1-end
56
ip link add name veth2-bond type veth peer name veth2-end
57
58
# add ports
59
ip link set fbond master fab-br0
60
ip link set veth1-bond master fbond
61
ip link set veth2-bond master fbond
62
63
# bring up
64
ip link set veth1-end up
65
ip link set veth2-end up
66
ip link set fab-br0 up
67
ip link set fbond up
68
ip addr add dev fab-br0 10.0.0.3
69
70
rc=0
71
tc qdisc add dev veth1-end clsact
72
tc filter add dev veth1-end ingress protocol 0x8809 pref 1 handle 101 flower skip_hw action pass
73
if slowwait_for_counter 15 2 \
74
tc_rule_handle_stats_get "dev veth1-end ingress" 101 ".packets" "" &> /dev/null; then
75
echo "PASS, captured 2"
76
else
77
echo "FAIL"
78
rc=1
79
fi
80
exit $rc
81
82