Skip to content

Commit d7e0921

Browse files
committed
selftests: net/bridge : add tests for per vlan snooping with stp state changes
JIRA: https://issues.redhat.com/browse/RHEL-75594 commit aea4536 Author: Yong Wang <yongwang@nvidia.com> Date: Thu Apr 17 15:43:14 2025 +0200 selftests: net/bridge : add tests for per vlan snooping with stp state changes Change ALL_TESTS definition to "test-per-line". Add the test case of per vlan snooping with port stp state change to forwarding and also vlan equivalent case in both bridge_igmp.sh and bridge_mld.sh. Signed-off-by: Yong Wang <yongwang@nvidia.com> Reviewed-by: Andy Roulin <aroulin@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Mohammad Heib <mheib@redhat.com>
1 parent 4498c33 commit d7e0921

File tree

3 files changed

+154
-8
lines changed

3 files changed

+154
-8
lines changed

tools/testing/selftests/net/forwarding/bridge_igmp.sh

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
#!/bin/bash
22
# SPDX-License-Identifier: GPL-2.0
33

4-
ALL_TESTS="v2reportleave_test v3include_test v3inc_allow_test v3inc_is_include_test \
5-
v3inc_is_exclude_test v3inc_to_exclude_test v3exc_allow_test v3exc_is_include_test \
6-
v3exc_is_exclude_test v3exc_to_exclude_test v3inc_block_test v3exc_block_test \
7-
v3exc_timeout_test v3star_ex_auto_add_test"
4+
ALL_TESTS="
5+
v2reportleave_test
6+
v3include_test
7+
v3inc_allow_test
8+
v3inc_is_include_test
9+
v3inc_is_exclude_test
10+
v3inc_to_exclude_test
11+
v3exc_allow_test
12+
v3exc_is_include_test
13+
v3exc_is_exclude_test
14+
v3exc_to_exclude_test
15+
v3inc_block_test
16+
v3exc_block_test
17+
v3exc_timeout_test
18+
v3star_ex_auto_add_test
19+
v2per_vlan_snooping_port_stp_test
20+
v2per_vlan_snooping_vlan_stp_test
21+
"
822
NUM_NETIFS=4
923
CHECK_TC="yes"
1024
TEST_GROUP="239.10.10.10"
@@ -554,6 +568,64 @@ v3star_ex_auto_add_test()
554568
v3cleanup $swp2 $TEST_GROUP
555569
}
556570

571+
v2per_vlan_snooping_stp_test()
572+
{
573+
local is_port=$1
574+
575+
local msg="port"
576+
[[ $is_port -ne 1 ]] && msg="vlan"
577+
578+
ip link set br0 up type bridge vlan_filtering 1 \
579+
mcast_igmp_version 2 \
580+
mcast_snooping 1 \
581+
mcast_vlan_snooping 1 \
582+
mcast_querier 1 \
583+
mcast_stats_enabled 1
584+
bridge vlan global set vid 1 dev br0 \
585+
mcast_snooping 1 \
586+
mcast_querier 1 \
587+
mcast_query_interval 100 \
588+
mcast_startup_query_count 0
589+
[[ $is_port -eq 1 ]] && bridge link set dev $swp1 state 0
590+
[[ $is_port -ne 1 ]] && bridge vlan set vid 1 dev $swp1 state 4
591+
sleep 5
592+
local tx_s=$(ip -j -p stats show dev $swp1 \
593+
group xstats_slave subgroup bridge suite mcast \
594+
| jq '.[]["multicast"]["igmp_queries"]["tx_v2"]')
595+
596+
[[ $is_port -eq 1 ]] && bridge link set dev $swp1 state 3
597+
[[ $is_port -ne 1 ]] && bridge vlan set vid 1 dev $swp1 state 3
598+
sleep 5
599+
local tx_e=$(ip -j -p stats show dev $swp1 \
600+
group xstats_slave subgroup bridge suite mcast \
601+
| jq '.[]["multicast"]["igmp_queries"]["tx_v2"]')
602+
603+
RET=0
604+
local tx=$(expr $tx_e - $tx_s)
605+
test $tx -gt 0
606+
check_err $? "No IGMP queries after STP state becomes forwarding"
607+
log_test "per vlan snooping with $msg stp state change"
608+
609+
# restore settings
610+
bridge vlan global set vid 1 dev br0 \
611+
mcast_querier 0 \
612+
mcast_query_interval 12500 \
613+
mcast_startup_query_count 2
614+
ip link set br0 up type bridge vlan_filtering 0 \
615+
mcast_vlan_snooping 0 \
616+
mcast_stats_enabled 0
617+
}
618+
619+
v2per_vlan_snooping_port_stp_test()
620+
{
621+
v2per_vlan_snooping_stp_test 1
622+
}
623+
624+
v2per_vlan_snooping_vlan_stp_test()
625+
{
626+
v2per_vlan_snooping_stp_test 0
627+
}
628+
557629
trap cleanup EXIT
558630

559631
setup_prepare

tools/testing/selftests/net/forwarding/bridge_mld.sh

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
11
#!/bin/bash
22
# SPDX-License-Identifier: GPL-2.0
33

4-
ALL_TESTS="mldv2include_test mldv2inc_allow_test mldv2inc_is_include_test mldv2inc_is_exclude_test \
5-
mldv2inc_to_exclude_test mldv2exc_allow_test mldv2exc_is_include_test \
6-
mldv2exc_is_exclude_test mldv2exc_to_exclude_test mldv2inc_block_test \
7-
mldv2exc_block_test mldv2exc_timeout_test mldv2star_ex_auto_add_test"
4+
ALL_TESTS="
5+
mldv2include_test
6+
mldv2inc_allow_test
7+
mldv2inc_is_include_test
8+
mldv2inc_is_exclude_test
9+
mldv2inc_to_exclude_test
10+
mldv2exc_allow_test
11+
mldv2exc_is_include_test
12+
mldv2exc_is_exclude_test
13+
mldv2exc_to_exclude_test
14+
mldv2inc_block_test
15+
mldv2exc_block_test
16+
mldv2exc_timeout_test
17+
mldv2star_ex_auto_add_test
18+
mldv2per_vlan_snooping_port_stp_test
19+
mldv2per_vlan_snooping_vlan_stp_test
20+
"
821
NUM_NETIFS=4
922
CHECK_TC="yes"
1023
TEST_GROUP="ff02::cc"
@@ -554,6 +567,66 @@ mldv2star_ex_auto_add_test()
554567
mldv2cleanup $swp2
555568
}
556569

570+
mldv2per_vlan_snooping_stp_test()
571+
{
572+
local is_port=$1
573+
574+
local msg="port"
575+
[[ $is_port -ne 1 ]] && msg="vlan"
576+
577+
ip link set br0 up type bridge vlan_filtering 1 \
578+
mcast_mld_version 2 \
579+
mcast_snooping 1 \
580+
mcast_vlan_snooping 1 \
581+
mcast_querier 1 \
582+
mcast_stats_enabled 1
583+
bridge vlan global set vid 1 dev br0 \
584+
mcast_mld_version 2 \
585+
mcast_snooping 1 \
586+
mcast_querier 1 \
587+
mcast_query_interval 100 \
588+
mcast_startup_query_count 0
589+
590+
[[ $is_port -eq 1 ]] && bridge link set dev $swp1 state 0
591+
[[ $is_port -ne 1 ]] && bridge vlan set vid 1 dev $swp1 state 4
592+
sleep 5
593+
local tx_s=$(ip -j -p stats show dev $swp1 \
594+
group xstats_slave subgroup bridge suite mcast \
595+
| jq '.[]["multicast"]["mld_queries"]["tx_v2"]')
596+
[[ $is_port -eq 1 ]] && bridge link set dev $swp1 state 3
597+
[[ $is_port -ne 1 ]] && bridge vlan set vid 1 dev $swp1 state 3
598+
sleep 5
599+
local tx_e=$(ip -j -p stats show dev $swp1 \
600+
group xstats_slave subgroup bridge suite mcast \
601+
| jq '.[]["multicast"]["mld_queries"]["tx_v2"]')
602+
603+
RET=0
604+
local tx=$(expr $tx_e - $tx_s)
605+
test $tx -gt 0
606+
check_err $? "No MLD queries after STP state becomes forwarding"
607+
log_test "per vlan snooping with $msg stp state change"
608+
609+
# restore settings
610+
bridge vlan global set vid 1 dev br0 \
611+
mcast_querier 0 \
612+
mcast_query_interval 12500 \
613+
mcast_startup_query_count 2 \
614+
mcast_mld_version 1
615+
ip link set br0 up type bridge vlan_filtering 0 \
616+
mcast_vlan_snooping 0 \
617+
mcast_stats_enabled 0
618+
}
619+
620+
mldv2per_vlan_snooping_port_stp_test()
621+
{
622+
mldv2per_vlan_snooping_stp_test 1
623+
}
624+
625+
mldv2per_vlan_snooping_vlan_stp_test()
626+
{
627+
mldv2per_vlan_snooping_stp_test 0
628+
}
629+
557630
trap cleanup EXIT
558631

559632
setup_prepare

tools/testing/selftests/net/forwarding/config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
CONFIG_BRIDGE=m
22
CONFIG_VLAN_8021Q=m
33
CONFIG_BRIDGE_VLAN_FILTERING=y
4+
CONFIG_BRIDGE_IGMP_SNOOPING=y
45
CONFIG_NET_L3_MASTER_DEV=y
56
CONFIG_IPV6_MULTIPLE_TABLES=y
67
CONFIG_NET_VRF=m

0 commit comments

Comments
 (0)