Message ID | 20150910171604.3e3bef63c7ae318e8a66a982@ubnt.com |
---|---|
State | Rejected |
Headers | show |
On 2015-09-10 16:16, Dmitry Ivanov wrote: > Do not enable multicast_to_unicast by default. Duplicate broadcast and > multicast frames may cause problems in WDS setup. Wireless clients > cannot obtain IP address etc. > > Signed-off-by: Dmitry Ivanov <dima@ubnt.com> The feature was intended to work automatically and transparently, and your hack simply disables it instead of attempting to solve the real issue. I've already posted a patch that should hopefully fix it properly, so please test that instead of sending more hack patches. - Felix
diff --git a/scripts/netifd-wireless.sh b/scripts/netifd-wireless.sh index 83a8223..774a503 100644 --- a/scripts/netifd-wireless.sh +++ b/scripts/netifd-wireless.sh @@ -256,7 +256,7 @@ _wireless_set_brsnoop_isolation() { [ $isolate -gt 0 -o -z "$network_bridge" ] && return - [ -z "$multicast_to_unicast" ] && multicast_to_unicast=1 + [ -z "$multicast_to_unicast" ] && multicast_to_unicast=0 [ $multicast_to_unicast -gt 0 ] && json_add_boolean isolate 1 } diff --git a/system-linux.c b/system-linux.c index 01500a5..6994ace 100644 --- a/system-linux.c +++ b/system-linux.c @@ -576,12 +576,11 @@ static char *system_get_bridge(const char *name, char *buf, int buflen) static void system_bridge_set_wireless(struct device *bridge, struct device *dev) { - bool mcast_to_ucast = true; + bool mcast_to_ucast = false; bool hairpin = true; - if (bridge->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST && - !bridge->settings.multicast_to_unicast) - mcast_to_ucast = false; + if (bridge->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST) + mcast_to_ucast = bridge->settings.multicast_to_unicast; if (!mcast_to_ucast || dev->wireless_isolate) hairpin = false;
Do not enable multicast_to_unicast by default. Duplicate broadcast and multicast frames may cause problems in WDS setup. Wireless clients cannot obtain IP address etc. Signed-off-by: Dmitry Ivanov <dima@ubnt.com> --- scripts/netifd-wireless.sh | 2 +- system-linux.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-)