Vexira
Part of the Furniture
I think you should ask Merlin, he might have a better idea of it.I think i might know what's going on. (But I am not an IT person or network engineer so this is just a wild guess)
Take a look at netstat -anr
If says that if any destination IP leaving your router matches your current WAN address, it will be routed through the eth0 interface.
It then says if any destination IP matches your LAN address range, it will be routed through br0 interface.
The issue here with multicast streams and these rules is that their destination IP is 224.0.0.0 through 239.255.255.255 (not your actual device like regular internet traffic)
With that different approach to the destination IP it does not match either of two the interface routing rules mentioned before.
I also believe that the rules are executed from top to bottom. With that said I believe the last rule listed as 0.0.0.0 with a gen mask 0.0.0.0 is a catch all for all IP's not matched by all of the multiple beginning rules. Aka it takes all IP's not yet caught (0.0.0.0 - 255.255.255.255) and chooses route them through the eth0 interface.
As you know that is the defined upload interface for the QOS engine when the traffic finally has to pass through there.
If my thinking is correct, I wounder if we can change the last routing rule to default to br0 (makes more sense QOS purposes), or if we could include the multicast IP range and send only that through br0.
Note this is not my field and I am clueless as to the feasibility my statements. Maybe it has to be eth0 for some technical reason or another.
What I do know is you can create a QOS rule so that multicast traffic will not be throttled against your QOS upload limit at all. (While it is impossible to have it properly count as your download QOS limit since it's on the eth0 interface the best we can do is 0 rate it and pretend it doesn't exist.)
Maybe someone will chime and see if they could fix what interface the kernel is routine through to allow QOS to properly pick it up.
Good luck.