Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Nikolay Aleksandrov and committed by
Jakub Kicinski
252b353c d598cc6a

+30 -1
+30 -1
tools/testing/selftests/net/forwarding/bridge_mld.sh
··· 4 4 ALL_TESTS="mldv2include_test mldv2inc_allow_test mldv2inc_is_include_test mldv2inc_is_exclude_test \ 5 5 mldv2inc_to_exclude_test mldv2exc_allow_test mldv2exc_is_include_test \ 6 6 mldv2exc_is_exclude_test mldv2exc_to_exclude_test mldv2inc_block_test \ 7 - mldv2exc_block_test mldv2exc_timeout_test" 7 + mldv2exc_block_test mldv2exc_timeout_test mldv2star_ex_auto_add_test" 8 8 NUM_NETIFS=4 9 9 CHECK_TC="yes" 10 10 TEST_GROUP="ff02::cc" ··· 517 517 mcast_query_response_interval 1000 518 518 519 519 mldv2cleanup $swp1 520 + } 521 + 522 + mldv2star_ex_auto_add_test() 523 + { 524 + RET=0 525 + 526 + mldv2exclude_prepare $h1 527 + 528 + $MZ $h2 -c 1 $MZPKT_IS_INC -q 529 + sleep 1 530 + bridge -j -d -s mdb show dev br0 \ 531 + | jq -e ".[].mdb[] | \ 532 + select(.grp == \"$TEST_GROUP\" and .src == \"2001:db8:1::3\" and \ 533 + .port == \"$swp1\")" &>/dev/null 534 + check_err $? "S,G entry for *,G port doesn't exist" 535 + 536 + bridge -j -d -s mdb show dev br0 \ 537 + | jq -e ".[].mdb[] | \ 538 + select(.grp == \"$TEST_GROUP\" and .src == \"2001:db8:1::3\" and \ 539 + .port == \"$swp1\" and \ 540 + .flags[] == \"added_by_star_ex\")" &>/dev/null 541 + check_err $? "Auto-added S,G entry doesn't have added_by_star_ex flag" 542 + 543 + brmcast_check_sg_fwding 1 2001:db8:1::3 544 + 545 + log_test "MLDv2 S,G port entry automatic add to a *,G port" 546 + 547 + mldv2cleanup $swp1 548 + mldv2cleanup $swp2 520 549 } 521 550 522 551 trap cleanup EXIT