mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
The mcastmngr read the uci file and configures the corresponding
multicast daemon accordingly. It is for now doing this for broadcom's
mcpd utility. Here are a few examples of what UCI config gets converted
to what /var/mcpd.conf
Snooping:
config snooping 'msnoop_1'
option enable '1'
option proto 'igmp'
option version '2'
option robustness '2'
option aggregation '0'
option interface 'br-wan100'
root@iopsys:~# cat /var/mcpd.conf
igmp-default-version 2
igmp-robustness-value 2
igmp-max-groups 20
igmp-max-sources 10
igmp-max-members 20
igmp-snooping-enable 1
igmp-proxy-enable 0
igmp-query-interval 125
igmp-query-response-interval 100
igmp-last-member-query-interval 10
igmp-mcast-interfaces eth5.100
igmp-snooping-interfaces br-wan100
Proxy:
config proxy 'mproxy_1'
option enable '1'
option proto 'igmp'
option version '2'
option robustness '2'
option aggregation '0'
option last_member_query_interval '10'
option query_interval '120'
option query_response_interval '100'
list downstream_interface 'br-lan'
list upstream_interface 'eth5.1'
root@iopsys:~# cat /var/mcpd.conf
igmp-default-version 2
igmp-robustness-value 2
igmp-max-groups 20
igmp-max-sources 10
igmp-max-members 20
igmp-snooping-enable 2
igmp-proxy-enable 1
igmp-fast-leave 1
igmp-query-interval 120
igmp-query-response-interval 100
igmp-last-member-query-interval 10
igmp-proxy-interfaces eth5.1
igmp-mcast-interfaces eth5.1
igmp-snooping-interfaces br-lan
48 lines
1.1 KiB
Bash
48 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
. /lib/functions.sh
|
|
|
|
generate_igmp_global_params(){
|
|
uci add mcast igmp
|
|
uci rename mcast.@igmp[-1]="igmp"
|
|
uci set mcast.@igmp[-1].max_groups="20"
|
|
uci set mcast.@igmp[-1].max_msf="10"
|
|
uci set mcast.@igmp[-1].max_membership="20"
|
|
uci set mcast.@igmp[-1].max_qrv="2"
|
|
uci set mcast.@igmp[-1].force_version="0"
|
|
uci commit mcast
|
|
}
|
|
|
|
generate_mcast_config(){
|
|
section="$1"
|
|
|
|
config_get type "$section" "type"
|
|
if [ "$type" != "bridge" ]; then
|
|
return
|
|
fi
|
|
|
|
uci add mcast snooping
|
|
uci rename mcast.@snooping[-1]="msnoop_1"
|
|
uci set mcast.@snooping[-1].enable="0"
|
|
uci set mcast.@snooping[-1].proto="igmp"
|
|
uci set mcast.@snooping[-1].version="2"
|
|
uci set mcast.@snooping[-1].robustness="2"
|
|
uci set mcast.@snooping[-1].aggregation="0"
|
|
uci set mcast.@snooping[-1].interface="br-$section"
|
|
uci commit mcast
|
|
}
|
|
|
|
if [ -s "/etc/config/mcast" ]; then
|
|
if uci -q get mcast.@snooping[0] >/dev/null; then
|
|
# return if there is any valid content
|
|
exit
|
|
else
|
|
rm -f /etc/config/mcast
|
|
fi
|
|
fi
|
|
touch /etc/config/mcast
|
|
|
|
generate_igmp_global_params
|
|
|
|
config_load network
|
|
config_foreach generate_mcast_config interface
|