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