selftests: net: bridge: add test for mldv2 *,g auto-add

When we have *,G ports in exclude mode and a new S,G,port is added
the kernel has to automatically create an S,G entry for each exclude
port to get proper forwarding.

Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Nikolay Aleksandrov 2020-11-03 19:24:12 +02:00 committed by Jakub Kicinski
parent d598cc6a2d
commit 252b353c5b
1 changed files with 30 additions and 1 deletions

View File

@ -4,7 +4,7 @@
ALL_TESTS="mldv2include_test mldv2inc_allow_test mldv2inc_is_include_test mldv2inc_is_exclude_test \
mldv2inc_to_exclude_test mldv2exc_allow_test mldv2exc_is_include_test \
mldv2exc_is_exclude_test mldv2exc_to_exclude_test mldv2inc_block_test \
mldv2exc_block_test mldv2exc_timeout_test"
mldv2exc_block_test mldv2exc_timeout_test mldv2star_ex_auto_add_test"
NUM_NETIFS=4
CHECK_TC="yes"
TEST_GROUP="ff02::cc"
@ -519,6 +519,35 @@ mldv2exc_timeout_test()
mldv2cleanup $swp1
}
mldv2star_ex_auto_add_test()
{
RET=0
mldv2exclude_prepare $h1
$MZ $h2 -c 1 $MZPKT_IS_INC -q
sleep 1
bridge -j -d -s mdb show dev br0 \
| jq -e ".[].mdb[] | \
select(.grp == \"$TEST_GROUP\" and .src == \"2001:db8:1::3\" and \
.port == \"$swp1\")" &>/dev/null
check_err $? "S,G entry for *,G port doesn't exist"
bridge -j -d -s mdb show dev br0 \
| jq -e ".[].mdb[] | \
select(.grp == \"$TEST_GROUP\" and .src == \"2001:db8:1::3\" and \
.port == \"$swp1\" and \
.flags[] == \"added_by_star_ex\")" &>/dev/null
check_err $? "Auto-added S,G entry doesn't have added_by_star_ex flag"
brmcast_check_sg_fwding 1 2001:db8:1::3
log_test "MLDv2 S,G port entry automatic add to a *,G port"
mldv2cleanup $swp1
mldv2cleanup $swp2
}
trap cleanup EXIT
setup_prepare