brintos

brintos / linux-shallow public Read only

0
0
Text · 8.1 KiB · 00d55b0 Raw
305 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4lib_dir=$(dirname $0)/../../../net/forwarding5 6ALL_TESTS="7	create_8021ad_vlan_upper_on_top_front_panel_port8	create_8021ad_vlan_upper_on_top_bridge_port9	create_8021ad_vlan_upper_on_top_lag10	create_8021ad_vlan_upper_on_top_bridge11	create_8021ad_vlan_upper_on_top_8021ad_bridge12	create_vlan_upper_on_top_8021ad_bridge13	create_vlan_upper_on_top_front_panel_enslaved_to_8021ad_bridge14	create_vlan_upper_on_top_lag_enslaved_to_8021ad_bridge15	enslave_front_panel_with_vlan_upper_to_8021ad_bridge16	enslave_lag_with_vlan_upper_to_8021ad_bridge17	add_ip_address_to_8021ad_bridge18	switch_bridge_protocol_from_8021q_to_8021ad19"20NUM_NETIFS=221source $lib_dir/lib.sh22 23setup_prepare()24{25	swp1=${NETIFS[p1]}26	swp2=${NETIFS[p2]}27 28	ip link set dev $swp1 up29	ip link set dev $swp2 up30 31	sleep 1032}33 34cleanup()35{36	pre_cleanup37 38	ip link set dev $swp2 down39	ip link set dev $swp1 down40}41 42create_vlan_upper_on_top_of_bridge()43{44	RET=045 46	local bridge_proto=$1; shift47	local netdev_proto=$1; shift48 49	ip link add dev br0 type bridge vlan_filtering 1 \50		vlan_protocol $bridge_proto vlan_default_pvid 0 mcast_snooping 051	ip link set dev br0 addrgenmode none52 53	ip link set dev br0 up54	ip link set dev $swp1 master br055 56	ip link add name br0.100 link br0 type vlan \57		protocol $netdev_proto id 100 2>/dev/null58	check_fail $? "$netdev_proto vlan upper creation on top of an $bridge_proto bridge not rejected"59 60	ip link add name br0.100 link br0 type vlan \61		protocol $netdev_proto id 100 2>&1 >/dev/null \62		| grep -q mlxsw_spectrum63	check_err $? "$netdev_proto vlan upper creation on top of an $bridge_proto bridge rejected without extack"64 65	log_test "create $netdev_proto vlan upper on top $bridge_proto bridge"66 67	ip link del dev br068}69 70create_8021ad_vlan_upper_on_top_front_panel_port()71{72	RET=073 74	ip link add name $swp1.100 link $swp1 type vlan \75		protocol 802.1ad id 100 2>/dev/null76	check_fail $? "802.1ad vlan upper creation on top of a front panel not rejected"77 78	ip link add name $swp1.100 link $swp1 type vlan \79		protocol 802.1ad id 100 2>&1 >/dev/null \80		| grep -q mlxsw_spectrum81	check_err $? "802.1ad vlan upper creation on top of a front panel rejected without extack"82 83	log_test "create 802.1ad vlan upper on top of a front panel"84}85 86create_8021ad_vlan_upper_on_top_bridge_port()87{88	RET=089 90	ip link add dev br0 type bridge vlan_filtering 1 \91		vlan_default_pvid 0 mcast_snooping 092	ip link set dev br0 addrgenmode none93 94	ip link set dev $swp1 master br095	ip link set dev br0 up96 97	ip link add name $swp1.100 link $swp1 type vlan \98		protocol 802.1ad id 100 2>/dev/null99	check_fail $? "802.1ad vlan upper creation on top of a bridge port not rejected"100 101	ip link add name $swp1.100 link $swp1 type vlan \102		protocol 802.1ad id 100 2>&1 >/dev/null \103		| grep -q mlxsw_spectrum104	check_err $? "802.1ad vlan upper creation on top of a bridge port rejected without extack"105 106	log_test "create 802.1ad vlan upper on top of a bridge port"107 108	ip link del dev br0109}110 111create_8021ad_vlan_upper_on_top_lag()112{113	RET=0114 115	ip link add name bond1 type bond mode 802.3ad116	ip link set dev $swp1 down117	ip link set dev $swp1 master bond1118 119	ip link add name bond1.100 link bond1 type vlan \120		protocol 802.1ad id 100 2>/dev/null121	check_fail $? "802.1ad vlan upper creation on top of a lag not rejected"122 123	ip link add name bond1.100 link bond1 type vlan \124		protocol 802.1ad id 100 2>&1 >/dev/null \125		| grep -q mlxsw_spectrum126	check_err $? "802.1ad vlan upper creation on top of a lag rejected without extack"127 128	log_test "create 802.1ad vlan upper on top of a lag"129 130	ip link del dev bond1131}132 133create_8021ad_vlan_upper_on_top_bridge()134{135	RET=0136 137	create_vlan_upper_on_top_of_bridge "802.1q" "802.1ad"138}139 140create_8021ad_vlan_upper_on_top_8021ad_bridge()141{142	RET=0143 144	create_vlan_upper_on_top_of_bridge "802.1ad" "802.1ad"145}146 147create_vlan_upper_on_top_8021ad_bridge()148{149	RET=0150 151	create_vlan_upper_on_top_of_bridge "802.1ad" "802.1q"152}153 154create_vlan_upper_on_top_front_panel_enslaved_to_8021ad_bridge()155{156	RET=0157 158	ip link add dev br0 type bridge vlan_filtering 1 \159		vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0160	ip link set dev br0 addrgenmode none161	ip link set dev br0 up162 163	ip link set dev $swp1 master br0164 165	ip link add name $swp1.100 link $swp1 type vlan id 100 2>/dev/null166	check_fail $? "vlan upper creation on top of front panel enslaved to 802.1ad bridge not rejected"167 168	ip link add name $swp1.100 link $swp1 type vlan id 100 2>&1 >/dev/null \169		| grep -q mlxsw_spectrum170	check_err $? "vlan upper creation on top of front panel enslaved to 802.1ad bridge rejected without extack"171 172	log_test "create vlan upper on top of front panel enslaved to 802.1ad bridge"173 174	ip link del dev br0175}176 177create_vlan_upper_on_top_lag_enslaved_to_8021ad_bridge()178{179	RET=0180 181	ip link add dev br0 type bridge vlan_filtering 1 \182		vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0183	ip link set dev br0 addrgenmode none184	ip link set dev br0 up185 186	ip link add name bond1 type bond mode 802.3ad187	ip link set dev $swp1 down188	ip link set dev $swp1 master bond1189	ip link set dev bond1 master br0190 191	ip link add name bond1.100 link bond1 type vlan id 100 2>/dev/null192	check_fail $? "vlan upper creation on top of lag enslaved to 802.1ad bridge not rejected"193 194	ip link add name bond1.100 link bond1 type vlan id 100 2>&1 >/dev/null \195		| grep -q mlxsw_spectrum196	check_err $? "vlan upper creation on top of lag enslaved to 802.1ad bridge rejected without extack"197 198	log_test "create vlan upper on top of lag enslaved to 802.1ad bridge"199 200	ip link del dev bond1201	ip link del dev br0202}203 204enslave_front_panel_with_vlan_upper_to_8021ad_bridge()205{206	RET=0207 208	ip link add dev br0 type bridge vlan_filtering 1 \209		vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0210	ip link set dev br0 addrgenmode none211	ip link set dev br0 up212 213	ip link add name $swp1.100 link $swp1 type vlan id 100214 215	ip link set dev $swp1 master br0 2>/dev/null216	check_fail $? "front panel with vlan upper enslavemnt to 802.1ad bridge not rejected"217 218	ip link set dev $swp1 master br0 2>&1 >/dev/null | grep -q mlxsw_spectrum219	check_err $? "front panel with vlan upper enslavemnt to 802.1ad bridge rejected without extack"220 221	log_test "enslave front panel with vlan upper to 802.1ad bridge"222 223	ip link del dev $swp1.100224	ip link del dev br0225}226 227enslave_lag_with_vlan_upper_to_8021ad_bridge()228{229	RET=0230 231	ip link add dev br0 type bridge vlan_filtering 1 \232		vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0233	ip link set dev br0 addrgenmode none234	ip link set dev br0 up235 236	ip link add name bond1 type bond mode 802.3ad237	ip link set dev $swp1 down238	ip link set dev $swp1 master bond1239	ip link add name bond1.100 link bond1 type vlan id 100240 241	ip link set dev bond1 master br0 2>/dev/null242	check_fail $? "lag with vlan upper enslavemnt to 802.1ad bridge not rejected"243 244	ip link set dev bond1 master br0 2>&1 >/dev/null \245		| grep -q mlxsw_spectrum246	check_err $? "lag with vlan upper enslavemnt to 802.1ad bridge rejected without extack"247 248	log_test "enslave lag with vlan upper to 802.1ad bridge"249 250	ip link del dev bond1251	ip link del dev br0252}253 254 255add_ip_address_to_8021ad_bridge()256{257	RET=0258 259	ip link add dev br0 type bridge vlan_filtering 1 \260		vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0261	ip link set dev br0 addrgenmode none262 263	ip link set dev br0 up264	ip link set dev $swp1 master br0265 266	ip addr add dev br0 192.0.2.17/28 2>/dev/null267	check_fail $? "IP address addition to 802.1ad bridge not rejected"268 269	ip addr add dev br0 192.0.2.17/28 2>&1 >/dev/null | grep -q mlxsw_spectrum270	check_err $? "IP address addition to 802.1ad bridge rejected without extack"271 272	log_test "IP address addition to 802.1ad bridge"273 274	ip link del dev br0275}276 277switch_bridge_protocol_from_8021q_to_8021ad()278{279	RET=0280 281	ip link add dev br0 type bridge vlan_filtering 1 \282		vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0283	ip link set dev br0 addrgenmode none284 285	ip link set dev br0 up286	ip link set dev $swp1 master br0287 288	ip link set dev br0 type bridge vlan_protocol 802.1q 2>/dev/null289	check_fail $? "switching bridge protocol from 802.1q to 802.1ad not rejected"290 291	log_test "switch bridge protocol"292 293	ip link del dev br0294}295 296 297trap cleanup EXIT298 299setup_prepare300setup_wait301 302tests_run303 304exit $EXIT_STATUS305