| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #!/bin/bash
- # SPDX-License-Identifier: GPL-2.0
- #
- # Test operations that we expect to report extended ack.
- lib_dir=$(dirname $0)/../../../net/forwarding
- ALL_TESTS="
- netdev_pre_up_test
- vxlan_vlan_add_test
- vxlan_bridge_create_test
- bridge_create_test
- "
- NUM_NETIFS=2
- source $lib_dir/lib.sh
- setup_prepare()
- {
- swp1=${NETIFS[p1]}
- swp2=${NETIFS[p2]}
- ip link set dev $swp1 up
- ip link set dev $swp2 up
- }
- cleanup()
- {
- pre_cleanup
- ip link set dev $swp2 down
- ip link set dev $swp1 down
- }
- netdev_pre_up_test()
- {
- RET=0
- ip link add name br1 type bridge vlan_filtering 0 mcast_snooping 0
- ip link set dev br1 addrgenmode none
- ip link set dev br1 up
- ip link add name vx1 up type vxlan id 1000 \
- local 192.0.2.17 remote 192.0.2.18 \
- dstport 4789 nolearning noudpcsum tos inherit ttl 100
- ip link set dev vx1 master br1
- check_err $?
- ip link set dev $swp1 master br1
- check_err $?
- ip link add name br2 type bridge vlan_filtering 0 mcast_snooping 0
- ip link set dev br2 addrgenmode none
- ip link set dev br2 up
- ip link add name vx2 up type vxlan id 2000 \
- local 192.0.2.17 remote 192.0.2.18 \
- dstport 4789 nolearning noudpcsum tos inherit ttl 100
- ip link set dev vx2 master br2
- check_err $?
- ip link set dev $swp2 master br2
- check_err $?
- # Unsupported configuration: mlxsw demands that all offloaded VXLAN
- # devices have the same TTL.
- ip link set dev vx2 down
- ip link set dev vx2 type vxlan ttl 200
- ip link set dev vx2 up &>/dev/null
- check_fail $?
- ip link set dev vx2 up 2>&1 >/dev/null | grep -q mlxsw_spectrum
- check_err $?
- log_test "extack - NETDEV_PRE_UP"
- ip link del dev vx2
- ip link del dev br2
- ip link del dev vx1
- ip link del dev br1
- }
- vxlan_vlan_add_test()
- {
- RET=0
- ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 0
- ip link set dev br1 addrgenmode none
- ip link set dev br1 up
- # Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".
- ip link add name vx1 up type vxlan id 1000 \
- local 192.0.2.17 remote 192.0.2.18 \
- dstport 4789 tos inherit ttl 100
- ip link set dev vx1 master br1
- check_err $?
- bridge vlan add dev vx1 vid 1
- check_err $?
- ip link set dev $swp1 master br1
- check_err $?
- bridge vlan add dev vx1 vid 1 pvid untagged 2>&1 >/dev/null \
- | grep -q mlxsw_spectrum
- check_err $?
- log_test "extack - map VLAN at VXLAN device"
- ip link del dev vx1
- ip link del dev br1
- }
- vxlan_bridge_create_test()
- {
- RET=0
- # Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".
- ip link add name vx1 up type vxlan id 1000 \
- local 192.0.2.17 remote 192.0.2.18 \
- dstport 4789 tos inherit ttl 100
- # Test with VLAN-aware bridge.
- ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 0
- ip link set dev br1 addrgenmode none
- ip link set dev br1 up
- ip link set dev vx1 master br1
- ip link set dev $swp1 master br1 2>&1 > /dev/null \
- | grep -q mlxsw_spectrum
- check_err $?
- # Test with VLAN-unaware bridge.
- ip link set dev br1 type bridge vlan_filtering 0
- ip link set dev $swp1 master br1 2>&1 > /dev/null \
- | grep -q mlxsw_spectrum
- check_err $?
- log_test "extack - bridge creation with VXLAN"
- ip link del dev br1
- ip link del dev vx1
- }
- bridge_create_test()
- {
- RET=0
- ip link add name br1 type bridge vlan_filtering 1
- ip link set dev br1 addrgenmode none
- ip link set dev br1 up
- ip link add name br2 type bridge vlan_filtering 1
- ip link set dev br2 addrgenmode none
- ip link set dev br2 up
- ip link set dev $swp1 master br1
- check_err $?
- # Only one VLAN-aware bridge is supported, so this should fail with
- # an extack.
- ip link set dev $swp2 master br2 2>&1 > /dev/null \
- | grep -q mlxsw_spectrum
- check_err $?
- log_test "extack - multiple VLAN-aware bridges creation"
- ip link del dev br2
- ip link del dev br1
- }
- trap cleanup EXIT
- setup_prepare
- setup_wait
- tests_run
- exit $EXIT_STATUS
|