0001
0002
0003
0004
0005
0006 lib_dir=$(dirname $0)/../../../net/forwarding
0007
0008 ALL_TESTS="
0009 netdev_pre_up_test
0010 vxlan_vlan_add_test
0011 vxlan_bridge_create_test
0012 bridge_create_test
0013 "
0014 NUM_NETIFS=2
0015 source $lib_dir/lib.sh
0016
0017 setup_prepare()
0018 {
0019 swp1=${NETIFS[p1]}
0020 swp2=${NETIFS[p2]}
0021
0022 ip link set dev $swp1 up
0023 ip link set dev $swp2 up
0024 }
0025
0026 cleanup()
0027 {
0028 pre_cleanup
0029
0030 ip link set dev $swp2 down
0031 ip link set dev $swp1 down
0032 }
0033
0034 netdev_pre_up_test()
0035 {
0036 RET=0
0037
0038 ip link add name br1 up type bridge vlan_filtering 0 mcast_snooping 0
0039 ip link add name vx1 up type vxlan id 1000 \
0040 local 192.0.2.17 remote 192.0.2.18 \
0041 dstport 4789 nolearning noudpcsum tos inherit ttl 100
0042
0043 ip link set dev vx1 master br1
0044 check_err $?
0045
0046 ip link set dev $swp1 master br1
0047 check_err $?
0048
0049 ip link add name br2 up type bridge vlan_filtering 0 mcast_snooping 0
0050 ip link add name vx2 up type vxlan id 2000 \
0051 local 192.0.2.17 remote 192.0.2.18 \
0052 dstport 4789 nolearning noudpcsum tos inherit ttl 100
0053
0054 ip link set dev vx2 master br2
0055 check_err $?
0056
0057 ip link set dev $swp2 master br2
0058 check_err $?
0059
0060
0061
0062 ip link set dev vx2 down
0063 ip link set dev vx2 type vxlan ttl 200
0064
0065 ip link set dev vx2 up &>/dev/null
0066 check_fail $?
0067
0068 ip link set dev vx2 up 2>&1 >/dev/null | grep -q mlxsw_spectrum
0069 check_err $?
0070
0071 log_test "extack - NETDEV_PRE_UP"
0072
0073 ip link del dev vx2
0074 ip link del dev br2
0075
0076 ip link del dev vx1
0077 ip link del dev br1
0078 }
0079
0080 vxlan_vlan_add_test()
0081 {
0082 RET=0
0083
0084 ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 0
0085
0086
0087 ip link add name vx1 up type vxlan id 1000 \
0088 local 192.0.2.17 remote 192.0.2.18 \
0089 dstport 4789 tos inherit ttl 100
0090
0091 ip link set dev vx1 master br1
0092 check_err $?
0093
0094 bridge vlan add dev vx1 vid 1
0095 check_err $?
0096
0097 ip link set dev $swp1 master br1
0098 check_err $?
0099
0100 bridge vlan add dev vx1 vid 1 pvid untagged 2>&1 >/dev/null \
0101 | grep -q mlxsw_spectrum
0102 check_err $?
0103
0104 log_test "extack - map VLAN at VXLAN device"
0105
0106 ip link del dev vx1
0107 ip link del dev br1
0108 }
0109
0110 vxlan_bridge_create_test()
0111 {
0112 RET=0
0113
0114
0115 ip link add name vx1 up type vxlan id 1000 \
0116 local 192.0.2.17 remote 192.0.2.18 \
0117 dstport 4789 tos inherit ttl 100
0118
0119
0120 ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 0
0121
0122 ip link set dev vx1 master br1
0123
0124 ip link set dev $swp1 master br1 2>&1 > /dev/null \
0125 | grep -q mlxsw_spectrum
0126 check_err $?
0127
0128
0129 ip link set dev br1 type bridge vlan_filtering 0
0130
0131 ip link set dev $swp1 master br1 2>&1 > /dev/null \
0132 | grep -q mlxsw_spectrum
0133 check_err $?
0134
0135 log_test "extack - bridge creation with VXLAN"
0136
0137 ip link del dev br1
0138 ip link del dev vx1
0139 }
0140
0141 bridge_create_test()
0142 {
0143 RET=0
0144
0145 ip link add name br1 up type bridge vlan_filtering 1
0146 ip link add name br2 up type bridge vlan_filtering 1
0147
0148 ip link set dev $swp1 master br1
0149 check_err $?
0150
0151
0152
0153 ip link set dev $swp2 master br2 2>&1 > /dev/null \
0154 | grep -q mlxsw_spectrum
0155 check_err $?
0156
0157 log_test "extack - multiple VLAN-aware bridges creation"
0158
0159 ip link del dev br2
0160 ip link del dev br1
0161 }
0162
0163 trap cleanup EXIT
0164
0165 setup_prepare
0166 setup_wait
0167
0168 tests_run
0169
0170 exit $EXIT_STATUS