mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
3.4 KiB
170 lines
3.4 KiB
#!/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 up type bridge vlan_filtering 0 mcast_snooping 0 |
|
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 up type bridge vlan_filtering 0 mcast_snooping 0 |
|
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 up type bridge vlan_filtering 1 mcast_snooping 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 |
|
|
|
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 up type bridge vlan_filtering 1 mcast_snooping 0 |
|
|
|
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 up type bridge vlan_filtering 1 |
|
ip link add name br2 up type bridge vlan_filtering 1 |
|
|
|
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
|
|
|