1#!/bin/bash 2# SPDX-License-Identifier: GPL-2.0 3# 4# Test operations that we expect to report extended ack. 5 6lib_dir=$(dirname $0)/../../../net/forwarding 7 8ALL_TESTS=" 9 netdev_pre_up_test 10 vxlan_vlan_add_test 11" 12NUM_NETIFS=2 13source $lib_dir/lib.sh 14 15setup_prepare() 16{ 17 swp1=${NETIFS[p1]} 18 swp2=${NETIFS[p2]} 19 20 ip link set dev $swp1 up 21 ip link set dev $swp2 up 22} 23 24cleanup() 25{ 26 pre_cleanup 27 28 ip link set dev $swp2 down 29 ip link set dev $swp1 down 30} 31 32netdev_pre_up_test() 33{ 34 RET=0 35 36 ip link add name br1 up type bridge vlan_filtering 0 mcast_snooping 0 37 ip link add name vx1 up type vxlan id 1000 \ 38 local 192.0.2.17 remote 192.0.2.18 \ 39 dstport 4789 nolearning noudpcsum tos inherit ttl 100 40 41 ip link set dev vx1 master br1 42 check_err $? 43 44 ip link set dev $swp1 master br1 45 check_err $? 46 47 ip link add name br2 up type bridge vlan_filtering 0 mcast_snooping 0 48 ip link add name vx2 up type vxlan id 2000 \ 49 local 192.0.2.17 remote 192.0.2.18 \ 50 dstport 4789 nolearning noudpcsum tos inherit ttl 100 51 52 ip link set dev vx2 master br2 53 check_err $? 54 55 ip link set dev $swp2 master br2 56 check_err $? 57 58 # Unsupported configuration: mlxsw demands that all offloaded VXLAN 59 # devices have the same TTL. 60 ip link set dev vx2 down 61 ip link set dev vx2 type vxlan ttl 200 62 63 ip link set dev vx2 up &>/dev/null 64 check_fail $? 65 66 ip link set dev vx2 up 2>&1 >/dev/null | grep -q mlxsw_spectrum 67 check_err $? 68 69 log_test "extack - NETDEV_PRE_UP" 70 71 ip link del dev vx2 72 ip link del dev br2 73 74 ip link del dev vx1 75 ip link del dev br1 76} 77 78vxlan_vlan_add_test() 79{ 80 RET=0 81 82 ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 0 83 84 # Unsupported configuration: mlxsw demands VXLAN with "noudpcsum". 85 ip link add name vx1 up type vxlan id 1000 \ 86 local 192.0.2.17 remote 192.0.2.18 \ 87 dstport 4789 tos inherit ttl 100 88 89 ip link set dev vx1 master br1 90 check_err $? 91 92 bridge vlan add dev vx1 vid 1 93 check_err $? 94 95 ip link set dev $swp1 master br1 96 check_err $? 97 98 bridge vlan add dev vx1 vid 1 pvid untagged 2>&1 >/dev/null \ 99 | grep -q mlxsw_spectrum 100 check_err $? 101 102 log_test "extack - map VLAN at VXLAN device" 103 104 ip link del dev vx1 105 ip link del dev br1 106} 107 108trap cleanup EXIT 109 110setup_prepare 111setup_wait 112 113tests_run 114 115exit $EXIT_STATUS 116