File Index
Files and directories
Sign in
FILE

dev_addr_lists.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/drivers/net/bonding/dev_addr_lists.sh BASH
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3#
  4# Test bond device handling of addr lists (dev->uc, mc)
  5#
  6
  7ALL_TESTS="
  8	bond_cleanup_mode1
  9	bond_cleanup_mode4
 10	bond_listen_lacpdu_multicast_case_down
 11	bond_listen_lacpdu_multicast_case_up
 12"
 13
 14REQUIRE_MZ=no
 15NUM_NETIFS=0
 16lib_dir=$(dirname "$0")
 17source "$lib_dir"/../../../net/forwarding/lib.sh
 18
 19source "$lib_dir"/lag_lib.sh
 20
 21
 22destroy()
 23{
 24	local ifnames=(dummy1 dummy2 bond1 mv0)
 25	local ifname
 26
 27	for ifname in "${ifnames[@]}"; do
 28		ip link del "$ifname" &>/dev/null
 29	done
 30}
 31
 32cleanup()
 33{
 34	pre_cleanup
 35
 36	destroy
 37}
 38
 39
 40# bond driver control paths vary between modes that have a primary slave
 41# (bond_uses_primary()) and others. Test both kinds of modes.
 42
 43bond_cleanup_mode1()
 44{
 45	RET=0
 46
 47	test_LAG_cleanup "bonding" "active-backup"
 48}
 49
 50bond_cleanup_mode4() {
 51	RET=0
 52
 53	test_LAG_cleanup "bonding" "802.3ad"
 54}
 55
 56bond_listen_lacpdu_multicast()
 57{
 58	# Initial state of bond device, up | down
 59	local init_state=$1
 60	local lacpdu_mc="01:80:c2:00:00:02"
 61
 62	ip link add dummy1 type dummy
 63	ip link add bond1 "$init_state" type bond mode 802.3ad
 64	ip link set dev dummy1 master bond1
 65	if [ "$init_state" = "down" ]; then
 66		ip link set dev bond1 up
 67	fi
 68
 69	grep_bridge_fdb "$lacpdu_mc" bridge fdb show brport dummy1 >/dev/null
 70	check_err $? "LACPDU multicast address not present on slave (1)"
 71
 72	ip link set dev bond1 down
 73
 74	not grep_bridge_fdb "$lacpdu_mc" bridge fdb show brport dummy1 >/dev/null
 75	check_err $? "LACPDU multicast address still present on slave"
 76
 77	ip link set dev bond1 up
 78
 79	grep_bridge_fdb "$lacpdu_mc" bridge fdb show brport dummy1 >/dev/null
 80	check_err $? "LACPDU multicast address not present on slave (2)"
 81
 82	cleanup
 83
 84	log_test "bonding LACPDU multicast address to slave (from bond $init_state)"
 85}
 86
 87# The LACPDU mc addr is added by different paths depending on the initial state
 88# of the bond when enslaving a device. Test both cases.
 89
 90bond_listen_lacpdu_multicast_case_down()
 91{
 92	RET=0
 93
 94	bond_listen_lacpdu_multicast "down"
 95}
 96
 97bond_listen_lacpdu_multicast_case_up()
 98{
 99	RET=0
100
101	bond_listen_lacpdu_multicast "up"
102}
103
104
105trap cleanup EXIT
106
107tests_run
108
109exit "$EXIT_STATUS"
~/ Read-only file preview.