Here is my setup.
192.168.1.0/24(VLC)---eth0.1---OpenWRT---eth0.1991---10.33.199.0/24(Provider)
Below is igmpproxy config
config igmpproxy
option quickleave 1
option verbose 3
# option verbose [0-3](none, minimal[default], more, maximum)
config phyint
option network IPTV
option zone wan
option direction upstream
list altnet 0.0.0.0/0
config phyint
option network LAN
option zone lan
option direction downstream
igmpproxy debug, trying to open stream 232.232.64.102
Fri Apr 10 21:25:14 2020 user.info igmpproxy[3146]: Updated route entry for 232.232.64.102 on VIF #1
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: Vif bits : 0x00000002
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: Setting TTL for Vif 1 to 1
Fri Apr 10 21:25:14 2020 user.notice igmpproxy[3146]: Adding MFC: 88.212.8.3 -> 232.232.64.102, InpVIf: 0
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: Vif bits : 0x00000002
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: Setting TTL for Vif 1 to 1
Fri Apr 10 21:25:14 2020 user.notice igmpproxy[3146]: Adding MFC: 10.33.199.1 -> 232.232.64.102, InpVIf: 0
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: Joining group 232.232.64.102 upstream on IF address 10.33.199.101
Fri Apr 10 21:25:14 2020 user.notice igmpproxy[3146]: joinMcGroup: 232.232.64.102 on eth0.1991
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]:
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: Current routing table (Insert Route):
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: -----------------------------------------------------
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: #0: Src0: 88.212.8.3, Src1: 10.33.199.1, Dst: 232.232.64.102, Age:2, St: A, OutVifs: 0x00000002
Fri Apr 10 21:25:14 2020 user.debug igmpproxy[3146]: -----------------------------------------------------
Fri Apr 10 21:25:14 2020 user.notice igmpproxy[3146]: RECV V2 member report from 10.33.199.101 to 232.232.64.102
Fri Apr 10 21:25:14 2020 user.notice igmpproxy[3146]: The IGMP message was from myself. Ignoring.
Fri Apr 10 21:25:14 2020 user.notice igmpproxy[3146]: Route activation request from 10.33.199.101 for 232.232.64.102 is from myself. Ignoring.
Fri Apr 10 21:25:15 2020 user.notice igmpproxy[3146]: RECV V2 member report from 10.33.199.101 to 232.232.64.102
Fri Apr 10 21:25:15 2020 user.notice igmpproxy[3146]: The IGMP message was from myself. Ignoring.
Fri Apr 10 21:25:18 2020 user.debug igmpproxy[3146]: About to call timeout 11 (#0)
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: About to call timeout 9 (#0)
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: SENT Membership query from 192.168.1.1 to 224.0.0.1
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: Sent membership query from 192.168.1.1 to 224.0.0.1. Delay: 10
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: Created timeout 12 (#0) - delay 10 secs
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: (Id:12, Time:10)
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: Created timeout 13 (#1) - delay 115 secs
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: (Id:12, Time:10)
Fri Apr 10 21:25:21 2020 user.debug igmpproxy[3146]: (Id:13, Time:115)
igmpproxy inserts following rules:
root@OpenWrt:~# iptables --list |grep igmpproxy
ACCEPT igmp -- anywhere anywhere /* !fw3: ubus:igmpproxy[instance1] rule 3 */
zone_lan_dest_DROP udp -- anywhere 239.255.255.250 /* !fw3: ubus:igmpproxy[instance1] rule 1 */
zone_lan_dest_ACCEPT udp -- anywhere base-address.mcast.net/4 /* !fw3: ubus:igmpproxy[instance1] rule 2 */
ACCEPT igmp -- anywhere anywhere /* !fw3: ubus:igmpproxy[instance1] rule 0 */
tcpdump from iptv interface
21:40:25.854739 IP (tos 0x80, ttl 62, id 14925, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
21:40:25.855476 IP (tos 0x80, ttl 62, id 14987, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
21:40:25.856217 IP (tos 0x80, ttl 62, id 15050, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
21:40:25.856961 IP (tos 0x80, ttl 62, id 15113, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
21:40:25.857632 IP (tos 0xc0, ttl 1, id 2407, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
10.33.199.1 > 232.232.64.102: igmp query v2 [max resp time 10] [gaddr 232.232.64.102]
21:40:25.857711 IP (tos 0x80, ttl 62, id 15171, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
21:40:25.858467 IP (tos 0x80, ttl 62, id 15238, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
21:40:25.859205 IP (tos 0x80, ttl 62, id 15293, offset 0, flags [DF], proto UDP (17), length 1356)
88.212.8.3.49152 > 232.232.64.102.5004: [udp sum ok] UDP, length 1328
Debug message from VLC
Now the issue is screen tearing, intermittent sound, stream opens after 10-30s. I am suspecting that it's because timeout and delay in igmpproxy debug but don't know what's causing it.
Also I've noticed that IGMP has TTL 1 in tcpdump. Is that ok?
Thanks for your help guys.