igmpproxy: add patch to silence unnecessary logging of downstream igmp traffic
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 18 Jan 2015 00:42:43 +0000 (00:42 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 18 Jan 2015 00:42:43 +0000 (00:42 +0000)
This patch adds a simple check to silence logging of messages about
unrecognized igmp packets which originate from devices in local network.

Without this patch igmpproxy floods openwrt syslog with messages such as:
  user.warn igmpproxy[19818]: The source address 192.168.1.175 for group
  239.255.250.250, is not in any valid net for upstream VIF.

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44020 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/network/services/igmpproxy/patches/020-Silence-downstream-interface-igmp-messages.patch [new file with mode: 0644]

diff --git a/package/network/services/igmpproxy/patches/020-Silence-downstream-interface-igmp-messages.patch b/package/network/services/igmpproxy/patches/020-Silence-downstream-interface-igmp-messages.patch
new file mode 100644 (file)
index 0000000..ccd000c
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/src/igmp.c
++++ b/src/igmp.c
+@@ -139,8 +139,14 @@
+                 return;
+             }
+             else if(!isAdressValidForIf(checkVIF, src)) {
+-                my_log(LOG_WARNING, 0, "The source address %s for group %s, is not in any valid net for upstream VIF.",
+-                    inetFmt(src, s1), inetFmt(dst, s2));
++                struct IfDesc *downVIF = getIfByAddress(src);
++                if (downVIF && downVIF->state & IF_STATE_DOWNSTREAM) {
++                    my_log(LOG_NOTICE, 0, "The source address %s for group %s is from downstream VIF. Ignoring.",
++                        inetFmt(src, s1), inetFmt(dst, s2));
++                } else {
++                    my_log(LOG_WARNING, 0, "The source address %s for group %s, is not in any valid net for upstream VIF.",
++                        inetFmt(src, s1), inetFmt(dst, s2));
++                }
+                 return;
+             }
+