Path: blob/master/tools/testing/selftests/drivers/net/mlxsw/extack.sh
26292 views
#!/bin/bash1# SPDX-License-Identifier: GPL-2.02#3# Test operations that we expect to report extended ack.45lib_dir=$(dirname $0)/../../../net/forwarding67ALL_TESTS="8netdev_pre_up_test9vxlan_vlan_add_test10vxlan_bridge_create_test11bridge_create_test12"13NUM_NETIFS=214source $lib_dir/lib.sh1516setup_prepare()17{18swp1=${NETIFS[p1]}19swp2=${NETIFS[p2]}2021ip link set dev $swp1 up22ip link set dev $swp2 up23}2425cleanup()26{27pre_cleanup2829ip link set dev $swp2 down30ip link set dev $swp1 down31}3233netdev_pre_up_test()34{35RET=03637ip link add name br1 type bridge vlan_filtering 0 mcast_snooping 038ip link set dev br1 addrgenmode none39ip link set dev br1 up40ip link add name vx1 up type vxlan id 1000 \41local 192.0.2.17 remote 192.0.2.18 \42dstport 4789 nolearning noudpcsum tos inherit ttl 1004344ip link set dev vx1 master br145check_err $?4647ip link set dev $swp1 master br148check_err $?4950ip link add name br2 type bridge vlan_filtering 0 mcast_snooping 051ip link set dev br2 addrgenmode none52ip link set dev br2 up53ip link add name vx2 up type vxlan id 2000 \54local 192.0.2.17 remote 192.0.2.18 \55dstport 4789 nolearning noudpcsum tos inherit ttl 1005657ip link set dev vx2 master br258check_err $?5960ip link set dev $swp2 master br261check_err $?6263# Unsupported configuration: mlxsw demands that all offloaded VXLAN64# devices have the same TTL.65ip link set dev vx2 down66ip link set dev vx2 type vxlan ttl 2006768ip link set dev vx2 up &>/dev/null69check_fail $?7071ip link set dev vx2 up 2>&1 >/dev/null | grep -q mlxsw_spectrum72check_err $?7374log_test "extack - NETDEV_PRE_UP"7576ip link del dev vx277ip link del dev br27879ip link del dev vx180ip link del dev br181}8283vxlan_vlan_add_test()84{85RET=08687ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 088ip link set dev br1 addrgenmode none89ip link set dev br1 up9091# Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".92ip link add name vx1 up type vxlan id 1000 \93local 192.0.2.17 remote 192.0.2.18 \94dstport 4789 tos inherit ttl 1009596ip link set dev vx1 master br197check_err $?9899bridge vlan add dev vx1 vid 1100check_err $?101102ip link set dev $swp1 master br1103check_err $?104105bridge vlan add dev vx1 vid 1 pvid untagged 2>&1 >/dev/null \106| grep -q mlxsw_spectrum107check_err $?108109log_test "extack - map VLAN at VXLAN device"110111ip link del dev vx1112ip link del dev br1113}114115vxlan_bridge_create_test()116{117RET=0118119# Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".120ip link add name vx1 up type vxlan id 1000 \121local 192.0.2.17 remote 192.0.2.18 \122dstport 4789 tos inherit ttl 100123124# Test with VLAN-aware bridge.125ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 0126ip link set dev br1 addrgenmode none127ip link set dev br1 up128129ip link set dev vx1 master br1130131ip link set dev $swp1 master br1 2>&1 > /dev/null \132| grep -q mlxsw_spectrum133check_err $?134135# Test with VLAN-unaware bridge.136ip link set dev br1 type bridge vlan_filtering 0137138ip link set dev $swp1 master br1 2>&1 > /dev/null \139| grep -q mlxsw_spectrum140check_err $?141142log_test "extack - bridge creation with VXLAN"143144ip link del dev br1145ip link del dev vx1146}147148bridge_create_test()149{150RET=0151152ip link add name br1 type bridge vlan_filtering 1153ip link set dev br1 addrgenmode none154ip link set dev br1 up155ip link add name br2 type bridge vlan_filtering 1156ip link set dev br2 addrgenmode none157ip link set dev br2 up158159ip link set dev $swp1 master br1160check_err $?161162# Only one VLAN-aware bridge is supported, so this should fail with163# an extack.164ip link set dev $swp2 master br2 2>&1 > /dev/null \165| grep -q mlxsw_spectrum166check_err $?167168log_test "extack - multiple VLAN-aware bridges creation"169170ip link del dev br2171ip link del dev br1172}173174trap cleanup EXIT175176setup_prepare177setup_wait178179tests_run180181exit $EXIT_STATUS182183184