From 1abf717fc60e2941b675f3d267fc16a426a76d8d Mon Sep 17 00:00:00 2001 From: Anatoly Mirin Date: Mon, 24 Apr 2023 12:43:16 +0300 Subject: [PATCH] mcastmngr: add filtering rules for downstream This is necessary to filter IGMP messages from downstream interfaces. --- mcastmngr/files/linux/lib/mcast/linux.sh | 35 ++++++++++++++---------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/mcastmngr/files/linux/lib/mcast/linux.sh b/mcastmngr/files/linux/lib/mcast/linux.sh index 3c4c7b201..38c56b9bc 100755 --- a/mcastmngr/files/linux/lib/mcast/linux.sh +++ b/mcastmngr/files/linux/lib/mcast/linux.sh @@ -41,22 +41,29 @@ config_mcproxy_interfaces() { return fi - for upstream in $upstreams; do + for excp in $exceptions; do local filter="" - for excp in $exceptions; do - case $excp in - */*) - ip_start="$(ipcalc.sh $excp | grep IP | awk '{print substr($0,4)}')" - ip_end="$(ipcalc.sh $excp | grep BROADCAST | awk '{print substr($0,11)}')" - filter="$filter ($ip_start - $ip_end | *)" - ;; - *) - filter="$filter ($excp | *)" - ;; - esac + + case $excp in + */*) + ip_start="$(ipcalc.sh $excp | grep IP | awk '{print substr($0,4)}')" + ip_end="$(ipcalc.sh $excp | grep BROADCAST | awk '{print substr($0,11)}')" + filter="$filter ($ip_start - $ip_end | *)" + ;; + *) + filter="$filter ($excp | *)" + ;; + esac + + for upstream in $upstreams; do + echo "pinstance main upstream \"$upstream\" in blacklist table{$filter };" >> $CONFFILE + echo "pinstance main upstream \"$upstream\" out blacklist table{$filter };" >> $CONFFILE + done + + for downstream in $downstreams; do + echo "pinstance main downstream \"$downstream\" in blacklist table{$filter };" >> $CONFFILE + echo "pinstance main downstream \"$downstream\" out blacklist table{$filter };" >> $CONFFILE done - echo "pinstance main upstream \"$upstream\" in blacklist table{$filter };" >> $CONFFILE - echo "pinstance main upstream \"$upstream\" out blacklist table{$filter };" >> $CONFFILE done }