Using multicast_to_unicast for ethernet interfaces?

Hi, I run OpenWrt on a Ubiquiti Edgerouter X. This device doesn't have any wifi capabilities. I run a separate AP. For effortless IPTV I want to use multicast_to_unicast. I tried udprxy but it wasn't as reliable. I have:

# uci show network.lan
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='eth0.1'
network.lan.proto='static'
network.lan.ipaddr='192.168.1.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan.igmp_snooping='1'
network.lan.multicast_to_unicast='1'

But unfortunately, even after a fresh reboot I have:

# cat /sys/class/net/br-lan/lower_eth0.1/brport/multicast_to_unicast
0

I can manually enable is using echo 1 > /sys/..., but I'd rather have it configured in Openwrt.

Why does the multicast_to_unicast uci setting not work here? Is it wifi only?

1 Like

Is that documented somewhere?

I did not find a official documentation like in the wiki, but there are multiple references in the forum: here or here.

1 Like

Ok, I looked about in the source code of netifd and found this line.

It looks like MULTICAST_TO_UNICAST is only ever enabled for wireless interfaces if the option on the bridge interface is set to true or unset, but there is no support for enabling is anywhere else :-/

1 Like

Yesm thomas001,

There used to be a quite hot discussion over here for whether to attach this feature with bridge or in wifi stack https://patchwork.kernel.org/project/linux-wireless/patch/20170102193214.31723-1-linus.luessing@c0d3.blue/

Binding with bridge really makes it inconvenient in some cases, especially for some roaming cases. And such a strategy has to rely on igmp(multicast)-snooping because it needs to get to know the client's mac address. However, as we know, in wifi stack we should already be able to get to know the client's mac address once the client setups the association with ap.

One advantage of not using the wifi interface is that you can use it on something else than a wifi router/AP. I used to enable multicast_to_unicast on a wired-only openwrt router since my 3rd party wifi bridge would not handle multicast traffic well at all. So the translation and snooping happened at a different device than the actual wifi traffic.

I have the same problem, have you solved it?