brintos

brintos / linux-shallow public Read only

0
0
Text · 3.0 KiB · e28f978 Raw
137 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4lib_dir=$(dirname $0)/../../../net/forwarding5 6ALL_TESTS="7	lag_rif_add8	lag_rif_nomaster9	lag_rif_remaster10	lag_rif_nomaster_addr11"12 13NUM_NETIFS=214source $lib_dir/lib.sh15source $lib_dir/devlink_lib.sh16 17setup_prepare()18{19	swp1=${NETIFS[p1]}20	swp2=${NETIFS[p2]}21 22	team_create lag1 lacp23	ip link set dev lag1 addrgenmode none24	ip link set dev lag1 address $(mac_get $swp1)25 26	team_create lag2 lacp27	ip link set dev lag2 addrgenmode none28	ip link set dev lag2 address $(mac_get $swp2)29 30	ip link set dev $swp1 master lag131	ip link set dev $swp1 up32 33	ip link set dev $swp2 master lag234	ip link set dev $swp2 up35}36 37cleanup()38{39	pre_cleanup40 41	ip link set dev $swp2 nomaster42	ip link set dev $swp2 down43 44	ip link set dev $swp1 nomaster45	ip link set dev $swp1 down46 47	ip link del dev lag248	ip link del dev lag149}50 51lag_rif_add()52{53	RET=054 55	local rifs_occ_t0=$(devlink_resource_occ_get rifs)56	__addr_add_del lag1 add 192.0.2.2/2857	sleep 158	local rifs_occ_t1=$(devlink_resource_occ_get rifs)59	local expected_rifs=$((rifs_occ_t0 + 1))60 61	((expected_rifs == rifs_occ_t1))62	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"63 64	log_test "Add RIF for LAG on address addition"65}66 67lag_rif_nomaster()68{69	RET=070 71	local rifs_occ_t0=$(devlink_resource_occ_get rifs)72	ip link set dev $swp1 nomaster73	sleep 174	local rifs_occ_t1=$(devlink_resource_occ_get rifs)75	local expected_rifs=$((rifs_occ_t0 - 1))76 77	((expected_rifs == rifs_occ_t1))78	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"79 80	log_test "Drop RIF for LAG on port deslavement"81}82 83lag_rif_remaster()84{85	RET=086 87	local rifs_occ_t0=$(devlink_resource_occ_get rifs)88	ip link set dev $swp1 down89	ip link set dev $swp1 master lag190	ip link set dev $swp1 up91	setup_wait_dev $swp192	local rifs_occ_t1=$(devlink_resource_occ_get rifs)93	local expected_rifs=$((rifs_occ_t0 + 1))94 95	((expected_rifs == rifs_occ_t1))96	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"97 98	log_test "Add RIF for LAG on port reenslavement"99}100 101lag_rif_nomaster_addr()102{103	local rifs_occ_t0=$(devlink_resource_occ_get rifs)104 105	# Adding an address while the port is LAG'd shouldn't generate a RIF.106	__addr_add_del $swp1 add 192.0.2.65/28107	sleep 1108	local rifs_occ_t1=$(devlink_resource_occ_get rifs)109	local expected_rifs=$((rifs_occ_t0))110 111	((expected_rifs == rifs_occ_t1))112	check_err $? "After adding IP: Expected $expected_rifs RIFs, $rifs_occ_t1 are used"113 114	# Removing the port from LAG should drop RIF for the LAG (as tested in115	# lag_rif_nomaster), but since the port now has an address, it should116	# gain a RIF.117	ip link set dev $swp1 nomaster118	sleep 1119	local rifs_occ_t2=$(devlink_resource_occ_get rifs)120	local expected_rifs=$((rifs_occ_t0))121 122	((expected_rifs == rifs_occ_t2))123	check_err $? "After deslaving: Expected $expected_rifs RIFs, $rifs_occ_t2 are used"124 125	__addr_add_del $swp1 del 192.0.2.65/28126	log_test "Add RIF for port on deslavement from LAG"127}128 129trap cleanup EXIT130 131setup_prepare132setup_wait133 134tests_run135 136exit $EXIT_STATUS137