selftests: forwarding: adf_mcd_start(): Allow configuring custom interfaces

Tests may wish to add other interfaces to listen on. Notably locally
generated traffic uses dummy interfaces. The multicast daemon needs to know
about these so that it allows forming rules that involve these interfaces,
and so that net.ipv4.conf.X.mc_forwarding is set for the interfaces.

To that end, allow passing in a list of interfaces to configure in addition
to all the physical ones.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/2e8d83297985933be4850f2b9f296b3c27110388.1750113335.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Petr Machata 2025-06-17 00:44:22 +02:00 committed by Jakub Kicinski
parent 4baa1d3a50
commit 237f84a6d2

View File

@ -1760,9 +1760,12 @@ mc_send()
adf_mcd_start()
{
local ifs=("$@")
local table_name="$MCD_TABLE_NAME"
local smcroutedir
local pid
local if
local i
check_command "$MCD" || return 1
@ -1776,6 +1779,16 @@ adf_mcd_start()
"$smcroutedir/$table_name.conf"
done
for if in "${ifs[@]}"; do
if ! ip_link_has_flag "$if" MULTICAST; then
ip link set dev "$if" multicast on
defer ip link set dev "$if" multicast off
fi
echo "phyint $if enable" >> \
"$smcroutedir/$table_name.conf"
done
"$MCD" -N -I "$table_name" -f "$smcroutedir/$table_name.conf" \
-P "$smcroutedir/$table_name.pid"
busywait "$BUSYWAIT_TIMEOUT" test -e "$smcroutedir/$table_name.pid"