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 up
38
39	ip link add name vx100 type vxlan id 1000 local 192.0.2.17 dstport \
40		"$VXPORT" nolearning noudpcsum tos inherit ttl 100
41	ip link set dev vx100 up
42
43	ip link set dev $swp1 master br0
44	ip link set dev vx100 master br0
45
46	bridge vlan add vid 100 dev vx100 pvid untagged 2>/dev/null
47	check_fail $? "802.1ad bridge with VxLAN in Spectrum-1 not rejected"
48
49	bridge vlan add vid 100 dev vx100 pvid untagged 2>&1 >/dev/null \
50		| grep -q mlxsw_spectrum
51	check_err $? "802.1ad bridge with VxLAN in Spectrum-1 rejected without extack"
52
53	log_test "create VxLAN on top of 802.1ad bridge"
54
55	ip link del dev vx100
56	ip link del dev br0
57}
58
59trap cleanup EXIT
60
61setup_prepare
62setup_wait
63
64tests_run
65
66exit $EXIT_STATUS
67