1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4lib_dir=$(dirname $0)/../../../../net/forwarding
5
6VXPORT=4789
7
8ALL_TESTS="
9	create_vxlan_on_top_of_8021ad_bridge
10"
11NUM_NETIFS=2
12source $lib_dir/lib.sh
13
14setup_prepare()
15{
16	swp1=${NETIFS[p1]}
17	swp2=${NETIFS[p2]}
18
19	ip link set dev $swp1 up
20	ip link set dev $swp2 up
21}
22
23cleanup()
24{
25	pre_cleanup
26
27	ip link set dev $swp2 down
28	ip link set dev $swp1 down
29}
30
31create_vxlan_on_top_of_8021ad_bridge()
32{
33	RET=0
34
35	ip link add dev br0 type bridge vlan_filtering 1 vlan_protocol 802.1ad \
36		vlan_default_pvid 0 mcast_snooping 0
37	ip link set dev br0 addrgenmode none
38	ip link set dev br0 up
39
40	ip link add name vx100 type vxlan id 1000 local 192.0.2.17 dstport \
41		"$VXPORT" nolearning noudpcsum tos inherit ttl 100
42	ip link set dev vx100 up
43
44	ip link set dev $swp1 master br0
45	ip link set dev vx100 master br0
46
47	bridge vlan add vid 100 dev vx100 pvid untagged 2>/dev/null
48	check_fail $? "802.1ad bridge with VxLAN in Spectrum-1 not rejected"
49
50	bridge vlan add vid 100 dev vx100 pvid untagged 2>&1 >/dev/null \
51		| grep -q mlxsw_spectrum
52	check_err $? "802.1ad bridge with VxLAN in Spectrum-1 rejected without extack"
53
54	log_test "create VxLAN on top of 802.1ad bridge"
55
56	ip link del dev vx100
57	ip link del dev br0
58}
59
60trap cleanup EXIT
61
62setup_prepare
63setup_wait
64
65tests_run
66
67exit $EXIT_STATUS
68