[Solved] IPTV /IGMP no longer working ok on latest master

Hi All,

Would there be some-one that could help me debug the following issue:

  1. I was previously running a master build from March 2018 (home build), and my IPTV solution worked fine.
  2. I've upgraded to the latest master from yesterday (r7093), added the flow offload support in the kernel config.

Now my TV-stream stops (hangs) working after about four and a half minutes.
zapping between channels fixes it for another 4.5 minutes.
Killing and restarting the igmpproxy makes it work for another 4.5 minutes too.

What i've done:

  1. triple checked my config, but this seems ok, especially as the data can be streamed each time after zapping channels.
  2. noticed that the IGMPproxy service was renewed, so replaced the binary with the original binary from my march build, but this didn't change anything
  3. debugged the IGMPproxy daemon (ran it in the foreground with -n -d -v -v) and checked behavior. No apparent errors or change in behavior is seen as soon as the stream stops.
  4. enabled/disabled software flow offloading, to no avail.
  5. disabled /enabled quickleave in the igmpproxy config, to no avail as well.

I therefore think that the issue is being caused by some bug introduced in the firewall layer, dropping the udp stream after a certain period. or by blocking a refresh request to keep the membership to the multi-caststream.

My knowledge of iptables is weak. Would there be some-one here that could help me figure out the issue?

relevant config:

/etc/config/network

config interface 'IPTV_WAN'
        option proto 'dhcp'
        option ifname 'eth0.4'
        option delegate '0'
        option defaultroute '0'
        option peerdns '0'
        option vendorid 'IPTV_RG'

/etc/config/igmpproxy

config igmpproxy
        option quickleave 1
#       option verbose 0

config phyint IPTV_WAN
        option network IPTV_WAN
        option direction upstream
        list altnet 192.168.1.0/24
        list altnet 213.75.0.0/16

config phyint lan
        option network lan
        option direction downstream

/etc/config/firewall

config defaults
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option network 'lan vpn0'

config zone
        option name 'IPTV_WAN'
        option output 'ACCEPT'
        option network 'IPTV_WAN'
        option masq '1'
        option input 'DROP'
        option forward 'DROP'

config forwarding
        option dest 'IPTV_WAN'
        option src 'lan'

config rule
        option name 'Allow-IGMP-Proxy'
        option proto 'udp'
        option target 'ACCEPT'
        option dest_ip '224.0.0.0/4'
        option src 'IPTV_WAN'
        option family 'ipv4'
        option dest 'lan'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'
        option dest '*'

Duh.... I've found the issue....
it was this commit: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=0b04926433b60ac1ec448f9dfa8a36dfe5bdcae9

my firewall rules always have been wrong and the old igmp-proxy script added the right firewall rules. This commit stops doing that unless you specify the zones as an addtional option in the igmpproxy.conf file.

I've specified the zones, and removed my wrong firewall rules and now everything is running as it should again.

Wise lesson learned...

This topic was automatically closed 6 days after the last reply. New replies are no longer allowed.