183 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# Test operations that we expect to report extended ack.5 6lib_dir=$(dirname $0)/../../../net/forwarding7 8ALL_TESTS="9 netdev_pre_up_test10 vxlan_vlan_add_test11 vxlan_bridge_create_test12 bridge_create_test13"14NUM_NETIFS=215source $lib_dir/lib.sh16 17setup_prepare()18{19 swp1=${NETIFS[p1]}20 swp2=${NETIFS[p2]}21 22 ip link set dev $swp1 up23 ip link set dev $swp2 up24}25 26cleanup()27{28 pre_cleanup29 30 ip link set dev $swp2 down31 ip link set dev $swp1 down32}33 34netdev_pre_up_test()35{36 RET=037 38 ip link add name br1 type bridge vlan_filtering 0 mcast_snooping 039 ip link set dev br1 addrgenmode none40 ip link set dev br1 up41 ip link add name vx1 up type vxlan id 1000 \42 local 192.0.2.17 remote 192.0.2.18 \43 dstport 4789 nolearning noudpcsum tos inherit ttl 10044 45 ip link set dev vx1 master br146 check_err $?47 48 ip link set dev $swp1 master br149 check_err $?50 51 ip link add name br2 type bridge vlan_filtering 0 mcast_snooping 052 ip link set dev br2 addrgenmode none53 ip link set dev br2 up54 ip link add name vx2 up type vxlan id 2000 \55 local 192.0.2.17 remote 192.0.2.18 \56 dstport 4789 nolearning noudpcsum tos inherit ttl 10057 58 ip link set dev vx2 master br259 check_err $?60 61 ip link set dev $swp2 master br262 check_err $?63 64 # Unsupported configuration: mlxsw demands that all offloaded VXLAN65 # devices have the same TTL.66 ip link set dev vx2 down67 ip link set dev vx2 type vxlan ttl 20068 69 ip link set dev vx2 up &>/dev/null70 check_fail $?71 72 ip link set dev vx2 up 2>&1 >/dev/null | grep -q mlxsw_spectrum73 check_err $?74 75 log_test "extack - NETDEV_PRE_UP"76 77 ip link del dev vx278 ip link del dev br279 80 ip link del dev vx181 ip link del dev br182}83 84vxlan_vlan_add_test()85{86 RET=087 88 ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 089 ip link set dev br1 addrgenmode none90 ip link set dev br1 up91 92 # Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".93 ip link add name vx1 up type vxlan id 1000 \94 local 192.0.2.17 remote 192.0.2.18 \95 dstport 4789 tos inherit ttl 10096 97 ip link set dev vx1 master br198 check_err $?99 100 bridge vlan add dev vx1 vid 1101 check_err $?102 103 ip link set dev $swp1 master br1104 check_err $?105 106 bridge vlan add dev vx1 vid 1 pvid untagged 2>&1 >/dev/null \107 | grep -q mlxsw_spectrum108 check_err $?109 110 log_test "extack - map VLAN at VXLAN device"111 112 ip link del dev vx1113 ip link del dev br1114}115 116vxlan_bridge_create_test()117{118 RET=0119 120 # Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".121 ip link add name vx1 up type vxlan id 1000 \122 local 192.0.2.17 remote 192.0.2.18 \123 dstport 4789 tos inherit ttl 100124 125 # Test with VLAN-aware bridge.126 ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 0127 ip link set dev br1 addrgenmode none128 ip link set dev br1 up129 130 ip link set dev vx1 master br1131 132 ip link set dev $swp1 master br1 2>&1 > /dev/null \133 | grep -q mlxsw_spectrum134 check_err $?135 136 # Test with VLAN-unaware bridge.137 ip link set dev br1 type bridge vlan_filtering 0138 139 ip link set dev $swp1 master br1 2>&1 > /dev/null \140 | grep -q mlxsw_spectrum141 check_err $?142 143 log_test "extack - bridge creation with VXLAN"144 145 ip link del dev br1146 ip link del dev vx1147}148 149bridge_create_test()150{151 RET=0152 153 ip link add name br1 type bridge vlan_filtering 1154 ip link set dev br1 addrgenmode none155 ip link set dev br1 up156 ip link add name br2 type bridge vlan_filtering 1157 ip link set dev br2 addrgenmode none158 ip link set dev br2 up159 160 ip link set dev $swp1 master br1161 check_err $?162 163 # Only one VLAN-aware bridge is supported, so this should fail with164 # an extack.165 ip link set dev $swp2 master br2 2>&1 > /dev/null \166 | grep -q mlxsw_spectrum167 check_err $?168 169 log_test "extack - multiple VLAN-aware bridges creation"170 171 ip link del dev br2172 ip link del dev br1173}174 175trap cleanup EXIT176 177setup_prepare178setup_wait179 180tests_run181 182exit $EXIT_STATUS183