brintos

brintos / linux-shallow public Read only

0
0
Text · 3.2 KiB · 6318cfa Raw
147 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	vlan_create lag1 10037	ip link set dev lag1.100 addrgenmode none38 39	vlan_create lag1 20040	ip link set dev lag1.200 addrgenmode none41}42 43cleanup()44{45	pre_cleanup46 47	ip link del dev lag1.20048	ip link del dev lag1.10049 50	ip link set dev $swp2 nomaster51	ip link set dev $swp2 down52 53	ip link set dev $swp1 nomaster54	ip link set dev $swp1 down55 56	ip link del dev lag257	ip link del dev lag158}59 60lag_rif_add()61{62	RET=063 64	local rifs_occ_t0=$(devlink_resource_occ_get rifs)65	__addr_add_del lag1.100 add 192.0.2.2/2866	__addr_add_del lag1.200 add 192.0.2.18/2867	sleep 168	local rifs_occ_t1=$(devlink_resource_occ_get rifs)69	local expected_rifs=$((rifs_occ_t0 + 2))70 71	((expected_rifs == rifs_occ_t1))72	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"73 74	log_test "Add RIFs for LAG VLANs on address addition"75}76 77lag_rif_nomaster()78{79	RET=080 81	local rifs_occ_t0=$(devlink_resource_occ_get rifs)82	ip link set dev $swp1 nomaster83	sleep 184	local rifs_occ_t1=$(devlink_resource_occ_get rifs)85	local expected_rifs=$((rifs_occ_t0 - 2))86 87	((expected_rifs == rifs_occ_t1))88	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"89 90	log_test "Drop RIFs for LAG VLANs on port deslavement"91}92 93lag_rif_remaster()94{95	RET=096 97	local rifs_occ_t0=$(devlink_resource_occ_get rifs)98	ip link set dev $swp1 down99	ip link set dev $swp1 master lag1100	ip link set dev $swp1 up101	setup_wait_dev $swp1102	local rifs_occ_t1=$(devlink_resource_occ_get rifs)103	local expected_rifs=$((rifs_occ_t0 + 2))104 105	((expected_rifs == rifs_occ_t1))106	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"107 108	log_test "Add RIFs for LAG VLANs on port reenslavement"109}110 111lag_rif_nomaster_addr()112{113	local rifs_occ_t0=$(devlink_resource_occ_get rifs)114 115	# Adding an address while the port is LAG'd shouldn't generate a RIF.116	__addr_add_del $swp1 add 192.0.2.65/28117	sleep 1118	local rifs_occ_t1=$(devlink_resource_occ_get rifs)119	local expected_rifs=$((rifs_occ_t0))120 121	((expected_rifs == rifs_occ_t1))122	check_err $? "After adding IP: Expected $expected_rifs RIFs, $rifs_occ_t1 are used"123 124	# Removing the port from LAG should drop two RIFs for the LAG VLANs (as125	# tested in lag_rif_nomaster), but since the port now has an address, it126	# should gain a RIF.127	ip link set dev $swp1 nomaster128	sleep 1129	local rifs_occ_t2=$(devlink_resource_occ_get rifs)130	local expected_rifs=$((rifs_occ_t0 - 1))131 132	((expected_rifs == rifs_occ_t2))133	check_err $? "After deslaving: Expected $expected_rifs RIFs, $rifs_occ_t2 are used"134 135	__addr_add_del $swp1 del 192.0.2.65/28136	log_test "Add RIF for port on deslavement from LAG"137}138 139trap cleanup EXIT140 141setup_prepare142setup_wait143 144tests_run145 146exit $EXIT_STATUS147