Scenario:
1 IPTV Streamer
1 RouterBoard800
2 Clients - 2 STB (ether 10, 12 and 13)
Everything works like a charm except 1 big issue.
Problem:
Client A(first STB) joins 1st channel / 1 stream goes to interface eth10.
Client B(second STB) joins 1st channel / same stream goes to interface eth 12.
So far so good.
Clients B(ether12) leaves 1st channel and goes to 2nd channel / 2 streams goes to eth12 - trick is that 1st channel stream doesnt stop till client A (STB/ether 10) doesnt leave 1st channel. Exception is that Client B leaves every stream except streams already being recieved on any other interface/STBs.
Theoreticaly if we got 40 Clients/Interfaces and 40 streams/mcast groups, 1 of clients could end up with 40 streams hitting his interface and he is only watching 1.
Somehow client's(on 1 interface) 'leave message', who is leaving channel already watched by other clients (on other interface), is beeing ignored on same router for that client's interface.
We tried this scenario with few versions of Ros and devices. PIM/IGMP isn't option for us.
Log:
01:50:16 igmp-proxy,debug RECV IGMP leave message from 1.10.0.254 to 224.0.0.2 on
ether2-stb
01:50:16 igmp-proxy,debug leaving multicast group 232.100.3.2 on ether1-ulaz
01:50:16 igmp-proxy,debug sending IGMP query to 232.100.3.2 on ether2-stb
01:50:16 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
3.2 on ether1-ulaz
01:50:16 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e
01:50:16 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.2 on ether2-stb
01:50:16 igmp-proxy,debug joining multicast group 232.100.6.2 on ether1-ulaz
01:50:16 igmp-proxy,debug ignoring IGMP message: source address is local:
01:50:16 igmp-proxy,debug source=141.170.196.139
01:50:16 igmp-proxy,debug interface=ether1-ulaz
01:50:16 igmp-proxy,debug ignoring request from myself:
01:50:16 igmp-proxy,debug source=141.170.196.139
01:50:16 igmp-proxy,debug destination=232.100.6.2
01:50:16 igmp-proxy,debug received notification:
01:50:16 igmp-proxy,debug source=141.170.196.129
01:50:16 igmp-proxy,debug destination=232.100.6.2
01:50:16 igmp-proxy,debug adding multicast forwarding entry
01:50:16 igmp-proxy,debug group: 232.100.6.2
01:50:16 igmp-proxy,debug source: 141.170.196.129
01:50:17 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
3.2 on ether1-ulaz
01:50:17 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e
01:50:18 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.2 on ether2-stb
01:50:18 igmp-proxy,debug sending IGMP query to 232.100.3.2 on ether2-stb
01:50:20 igmp-proxy,debug RECV IGMP leave message from 1.10.0.254 to 224.0.0.2 on
ether2-stb
01:50:20 igmp-proxy,debug leaving multicast group 232.100.6.2 on ether1-ulaz
01:50:20 igmp-proxy,debug sending IGMP query to 232.100.6.2 on ether2-stb
01:50:20 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
6.2 on ether1-ulaz
01:50:20 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e
01:50:20 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.3 on ether2-stb
01:50:20 igmp-proxy,debug adding multicast forwarding entry
01:50:20 igmp-proxy,debug group: 232.100.6.3
01:50:20 igmp-proxy,debug source: 141.170.196.129
01:50:20 igmp-proxy,debug adding multicast forwarding entry
01:50:20 igmp-proxy,debug group: 232.100.6.3
01:50:20 igmp-proxy,debug source: 178.209.0.85
01:50:21 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.3 on ether2-stb
01:50:21 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
6.2 on ether1-ulaz
01:50:21 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e