mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
selftests: forwarding: Add QinQ veto testing
Test that each veto that was added in the previous patch, is indeed vetoed. $ ./q_in_q_veto.sh TEST: create 802.1ad vlan upper on top of a front panel [ OK ] TEST: create 802.1ad vlan upper on top of a bridge port [ OK ] TEST: create 802.1ad vlan upper on top of a lag [ OK ] TEST: create 802.1ad vlan upper on top 802.1q bridge [ OK ] TEST: create 802.1ad vlan upper on top 802.1ad bridge [ OK ] TEST: create 802.1q vlan upper on top 802.1ad bridge [ OK ] TEST: create vlan upper on top of front panel enslaved to 802.1ad bridge [ OK ] TEST: create vlan upper on top of lag enslaved to 802.1ad bridge [ OK ] TEST: enslave front panel with vlan upper to 802.1ad bridge [ OK ] TEST: enslave lag with vlan upper to 802.1ad bridge [ OK ] TEST: IP address addition to 802.1ad bridge [ OK ] TEST: switch bridge protocol [ OK ] Signed-off-by: Danielle Ratson <danieller@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
09139f67d3
commit
008cb2ec43
1 changed files with 296 additions and 0 deletions
296
tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh
Executable file
296
tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh
Executable file
|
@ -0,0 +1,296 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
lib_dir=$(dirname $0)/../../../net/forwarding
|
||||
|
||||
ALL_TESTS="
|
||||
create_8021ad_vlan_upper_on_top_front_panel_port
|
||||
create_8021ad_vlan_upper_on_top_bridge_port
|
||||
create_8021ad_vlan_upper_on_top_lag
|
||||
create_8021ad_vlan_upper_on_top_bridge
|
||||
create_8021ad_vlan_upper_on_top_8021ad_bridge
|
||||
create_vlan_upper_on_top_8021ad_bridge
|
||||
create_vlan_upper_on_top_front_panel_enslaved_to_8021ad_bridge
|
||||
create_vlan_upper_on_top_lag_enslaved_to_8021ad_bridge
|
||||
enslave_front_panel_with_vlan_upper_to_8021ad_bridge
|
||||
enslave_lag_with_vlan_upper_to_8021ad_bridge
|
||||
add_ip_address_to_8021ad_bridge
|
||||
switch_bridge_protocol_from_8021q_to_8021ad
|
||||
"
|
||||
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
|
||||
|
||||
sleep 10
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
||||
ip link set dev $swp2 down
|
||||
ip link set dev $swp1 down
|
||||
}
|
||||
|
||||
create_vlan_upper_on_top_of_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
local bridge_proto=$1; shift
|
||||
local netdev_proto=$1; shift
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol $bridge_proto vlan_default_pvid 0 mcast_snooping 0
|
||||
|
||||
ip link set dev br0 up
|
||||
ip link set dev $swp1 master br0
|
||||
|
||||
ip link add name br0.100 link br0 type vlan \
|
||||
protocol $netdev_proto id 100 2>/dev/null
|
||||
check_fail $? "$netdev_proto vlan upper creation on top of an $bridge_proto bridge not rejected"
|
||||
|
||||
ip link add name br0.100 link br0 type vlan \
|
||||
protocol $netdev_proto id 100 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "$netdev_proto vlan upper creation on top of an $bridge_proto bridge rejected without extack"
|
||||
|
||||
log_test "create $netdev_proto vlan upper on top $bridge_proto bridge"
|
||||
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
create_8021ad_vlan_upper_on_top_front_panel_port()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan \
|
||||
protocol 802.1ad id 100 2>/dev/null
|
||||
check_fail $? "802.1ad vlan upper creation on top of a front panel not rejected"
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan \
|
||||
protocol 802.1ad id 100 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "802.1ad vlan upper creation on top of a front panel rejected without extack"
|
||||
|
||||
log_test "create 802.1ad vlan upper on top of a front panel"
|
||||
}
|
||||
|
||||
create_8021ad_vlan_upper_on_top_bridge_port()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_default_pvid 0 mcast_snooping 0
|
||||
|
||||
ip link set dev $swp1 master br0
|
||||
ip link set dev br0 up
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan \
|
||||
protocol 802.1ad id 100 2>/dev/null
|
||||
check_fail $? "802.1ad vlan upper creation on top of a bridge port not rejected"
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan \
|
||||
protocol 802.1ad id 100 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "802.1ad vlan upper creation on top of a bridge port rejected without extack"
|
||||
|
||||
log_test "create 802.1ad vlan upper on top of a bridge port"
|
||||
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
create_8021ad_vlan_upper_on_top_lag()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add name bond1 type bond mode 802.3ad
|
||||
ip link set dev $swp1 down
|
||||
ip link set dev $swp1 master bond1
|
||||
|
||||
ip link add name bond1.100 link bond1 type vlan \
|
||||
protocol 802.1ad id 100 2>/dev/null
|
||||
check_fail $? "802.1ad vlan upper creation on top of a lag not rejected"
|
||||
|
||||
ip link add name bond1.100 link bond1 type vlan \
|
||||
protocol 802.1ad id 100 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "802.1ad vlan upper creation on top of a lag rejected without extack"
|
||||
|
||||
log_test "create 802.1ad vlan upper on top of a lag"
|
||||
|
||||
ip link del dev bond1
|
||||
}
|
||||
|
||||
create_8021ad_vlan_upper_on_top_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
create_vlan_upper_on_top_of_bridge "802.1q" "802.1ad"
|
||||
}
|
||||
|
||||
create_8021ad_vlan_upper_on_top_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
create_vlan_upper_on_top_of_bridge "802.1ad" "802.1ad"
|
||||
}
|
||||
|
||||
create_vlan_upper_on_top_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
create_vlan_upper_on_top_of_bridge "802.1ad" "802.1q"
|
||||
}
|
||||
|
||||
create_vlan_upper_on_top_front_panel_enslaved_to_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
|
||||
ip link set dev br0 up
|
||||
|
||||
ip link set dev $swp1 master br0
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan id 100 2>/dev/null
|
||||
check_fail $? "vlan upper creation on top of front panel enslaved to 802.1ad bridge not rejected"
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan id 100 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "vlan upper creation on top of front panel enslaved to 802.1ad bridge rejected without extack"
|
||||
|
||||
log_test "create vlan upper on top of front panel enslaved to 802.1ad bridge"
|
||||
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
create_vlan_upper_on_top_lag_enslaved_to_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
|
||||
ip link set dev br0 up
|
||||
|
||||
ip link add name bond1 type bond mode 802.3ad
|
||||
ip link set dev $swp1 down
|
||||
ip link set dev $swp1 master bond1
|
||||
ip link set dev bond1 master br0
|
||||
|
||||
ip link add name bond1.100 link bond1 type vlan id 100 2>/dev/null
|
||||
check_fail $? "vlan upper creation on top of lag enslaved to 802.1ad bridge not rejected"
|
||||
|
||||
ip link add name bond1.100 link bond1 type vlan id 100 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "vlan upper creation on top of lag enslaved to 802.1ad bridge rejected without extack"
|
||||
|
||||
log_test "create vlan upper on top of lag enslaved to 802.1ad bridge"
|
||||
|
||||
ip link del dev bond1
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
enslave_front_panel_with_vlan_upper_to_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
|
||||
ip link set dev br0 up
|
||||
|
||||
ip link add name $swp1.100 link $swp1 type vlan id 100
|
||||
|
||||
ip link set dev $swp1 master br0 2>/dev/null
|
||||
check_fail $? "front panel with vlan upper enslavemnt to 802.1ad bridge not rejected"
|
||||
|
||||
ip link set dev $swp1 master br0 2>&1 >/dev/null | grep -q mlxsw_spectrum
|
||||
check_err $? "front panel with vlan upper enslavemnt to 802.1ad bridge rejected without extack"
|
||||
|
||||
log_test "enslave front panel with vlan upper to 802.1ad bridge"
|
||||
|
||||
ip link del dev $swp1.100
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
enslave_lag_with_vlan_upper_to_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
|
||||
ip link set dev br0 up
|
||||
|
||||
ip link add name bond1 type bond mode 802.3ad
|
||||
ip link set dev $swp1 down
|
||||
ip link set dev $swp1 master bond1
|
||||
ip link add name bond1.100 link bond1 type vlan id 100
|
||||
|
||||
ip link set dev bond1 master br0 2>/dev/null
|
||||
check_fail $? "lag with vlan upper enslavemnt to 802.1ad bridge not rejected"
|
||||
|
||||
ip link set dev bond1 master br0 2>&1 >/dev/null \
|
||||
| grep -q mlxsw_spectrum
|
||||
check_err $? "lag with vlan upper enslavemnt to 802.1ad bridge rejected without extack"
|
||||
|
||||
log_test "enslave lag with vlan upper to 802.1ad bridge"
|
||||
|
||||
ip link del dev bond1
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
|
||||
add_ip_address_to_8021ad_bridge()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
|
||||
|
||||
ip link set dev br0 up
|
||||
ip link set dev $swp1 master br0
|
||||
|
||||
ip addr add dev br0 192.0.2.17/28 2>/dev/null
|
||||
check_fail $? "IP address addition to 802.1ad bridge not rejected"
|
||||
|
||||
ip addr add dev br0 192.0.2.17/28 2>&1 >/dev/null | grep -q mlxsw_spectrum
|
||||
check_err $? "IP address addition to 802.1ad bridge rejected without extack"
|
||||
|
||||
log_test "IP address addition to 802.1ad bridge"
|
||||
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
switch_bridge_protocol_from_8021q_to_8021ad()
|
||||
{
|
||||
RET=0
|
||||
|
||||
ip link add dev br0 type bridge vlan_filtering 1 \
|
||||
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
|
||||
|
||||
ip link set dev br0 up
|
||||
ip link set dev $swp1 master br0
|
||||
|
||||
ip link set dev br0 type bridge vlan_protocol 802.1q 2>/dev/null
|
||||
check_fail $? "switching bridge protocol from 802.1q to 802.1ad not rejected"
|
||||
|
||||
log_test "switch bridge protocol"
|
||||
|
||||
ip link del dev br0
|
||||
}
|
||||
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
setup_wait
|
||||
|
||||
tests_run
|
||||
|
||||
exit $EXIT_STATUS
|
Loading…
Add table
Reference in a new issue