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>
adf_mcd_start()
{
+ local ifs=("$@")
+
local table_name="$MCD_TABLE_NAME"
local smcroutedir
local pid
+ local if
local i
check_command "$MCD" || return 1
"$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"