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