brintos

brintos / linux-shallow public Read only

0
0
Text · 4.1 KiB · b79542a Raw
184 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4lib_dir=$(dirname $0)/../../../net/forwarding5 6ALL_TESTS="7	bridge_rif_add8	bridge_rif_nomaster9	bridge_rif_remaster10	bridge_rif_nomaster_addr11	bridge_rif_nomaster_port12	bridge_rif_remaster_port13"14 15NUM_NETIFS=216source $lib_dir/lib.sh17source $lib_dir/devlink_lib.sh18 19setup_prepare()20{21	swp1=${NETIFS[p1]}22	swp2=${NETIFS[p2]}23 24	team_create lag1 lacp25	ip link set dev lag1 addrgenmode none26	ip link set dev lag1 address $(mac_get $swp1)27 28	team_create lag2 lacp29	ip link set dev lag2 addrgenmode none30	ip link set dev lag2 address $(mac_get $swp2)31 32	ip link add name br1 type bridge vlan_filtering 133	ip link set dev br1 addrgenmode none34	ip link set dev br1 address $(mac_get lag1)35	ip link set dev br1 up36 37	ip link set dev lag1 master br138 39	ip link set dev $swp1 master lag140	ip link set dev $swp1 up41 42	ip link set dev $swp2 master lag243	ip link set dev $swp2 up44}45 46cleanup()47{48	pre_cleanup49 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 set dev lag1 nomaster58	ip link del dev lag159 60	ip link del dev br161}62 63bridge_rif_add()64{65	RET=066 67	local rifs_occ_t0=$(devlink_resource_occ_get rifs)68	__addr_add_del br1 add 192.0.2.2/2869	sleep 170	local rifs_occ_t1=$(devlink_resource_occ_get rifs)71	local expected_rifs=$((rifs_occ_t0 + 1))72 73	((expected_rifs == rifs_occ_t1))74	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"75 76	log_test "Add RIF for bridge on address addition"77}78 79bridge_rif_nomaster()80{81	RET=082 83	local rifs_occ_t0=$(devlink_resource_occ_get rifs)84	ip link set dev lag1 nomaster85	sleep 186	local rifs_occ_t1=$(devlink_resource_occ_get rifs)87	local expected_rifs=$((rifs_occ_t0 - 1))88 89	((expected_rifs == rifs_occ_t1))90	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"91 92	log_test "Drop RIF for bridge on LAG deslavement"93}94 95bridge_rif_remaster()96{97	RET=098 99	local rifs_occ_t0=$(devlink_resource_occ_get rifs)100	ip link set dev lag1 master br1101	sleep 1102	local rifs_occ_t1=$(devlink_resource_occ_get rifs)103	local expected_rifs=$((rifs_occ_t0 + 1))104 105	((expected_rifs == rifs_occ_t1))106	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"107 108	log_test "Add RIF for bridge on LAG reenslavement"109}110 111bridge_rif_nomaster_addr()112{113	local rifs_occ_t0=$(devlink_resource_occ_get rifs)114 115	# Adding an address while the LAG is enslaved shouldn't generate a RIF.116	__addr_add_del lag1 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 LAG from the bridge should drop RIF for the bridge (as125	# tested in bridge_rif_lag_nomaster), but since the LAG now has an126	# address, it should gain a RIF.127	ip link set dev lag1 nomaster128	sleep 1129	local rifs_occ_t2=$(devlink_resource_occ_get rifs)130	local expected_rifs=$((rifs_occ_t0))131 132	((expected_rifs == rifs_occ_t2))133	check_err $? "After deslaving: Expected $expected_rifs RIFs, $rifs_occ_t2 are used"134 135	log_test "Add RIF for LAG on deslavement from bridge"136 137	__addr_add_del lag1 del 192.0.2.65/28138	ip link set dev lag1 master br1139	sleep 1140}141 142bridge_rif_nomaster_port()143{144	RET=0145 146	local rifs_occ_t0=$(devlink_resource_occ_get rifs)147	ip link set dev $swp1 nomaster148	sleep 1149	local rifs_occ_t1=$(devlink_resource_occ_get rifs)150	local expected_rifs=$((rifs_occ_t0 - 1))151 152	((expected_rifs == rifs_occ_t1))153	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"154 155	log_test "Drop RIF for bridge on deslavement of port from LAG"156}157 158bridge_rif_remaster_port()159{160	RET=0161 162	local rifs_occ_t0=$(devlink_resource_occ_get rifs)163	ip link set dev $swp1 down164	ip link set dev $swp1 master lag1165	ip link set dev $swp1 up166	setup_wait_dev $swp1167	local rifs_occ_t1=$(devlink_resource_occ_get rifs)168	local expected_rifs=$((rifs_occ_t0 + 1))169 170	((expected_rifs == rifs_occ_t1))171	check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used"172 173	log_test "Add RIF for bridge on reenslavement of port to LAG"174}175 176trap cleanup EXIT177 178setup_prepare179setup_wait180 181tests_run182 183exit $EXIT_STATUS184