hostapd: rename hostapd multicast_to_unicast option to multicast_to_unicast_all
authorFelix Fietkau <nbd@nbd.name>
Tue, 6 Sep 2022 10:12:12 +0000 (12:12 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 6 Sep 2022 10:15:48 +0000 (12:15 +0200)
There are two feature currently altered by the multicast_to_unicast option.
1. bridge level multicast_to_unicast via IGMP snooping
2. hostapd/mac80211 config multicast_to_unicast setting

The hostapd/mac80211 setting has the side effect of converting *all* multicast
or broadcast traffic into per-station duplicated unicast traffic, which can
in some cases break expectations of various protocols.
It also has been observed to cause ARP lookup failure between stations
connected to the same interface.

The bridge level feature is much more useful, since it only covers actual
multicast traffic managed by IGMP, and it implicitly defaults to 1 already.

Renaming the hostapd/mac80211 option to multicast_to_unicast_all should avoid
unintentionally enabling this feature

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/services/hostapd/files/hostapd.sh

index e3b4b1df91d79f367233a5a99b18b61c5b6a19d6..7eeb74e9846cacb605184bbede4f8b1154bb1dc8 100644 (file)
@@ -361,7 +361,7 @@ hostapd_common_add_bss_config() {
        config_add_array airtime_sta_weight
        config_add_int airtime_bss_weight airtime_bss_limit
 
-       config_add_boolean multicast_to_unicast proxy_arp per_sta_vif
+       config_add_boolean multicast_to_unicast multicast_to_unicast_all proxy_arp per_sta_vif
 
        config_add_array hostapd_bss_options
        config_add_boolean default_disabled
@@ -547,7 +547,7 @@ hostapd_set_bss_options() {
                bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe \
                multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \
                ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \
-               multicast_to_unicast proxy_arp per_sta_vif \
+               multicast_to_unicast_all proxy_arp per_sta_vif \
                eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id \
                vendor_elements fils ocv
 
@@ -1130,9 +1130,9 @@ hostapd_set_bss_options() {
                [ -n "$server_id" ] && append bss_conf "server_id=$server_id" "$N"
        fi
 
-       set_default multicast_to_unicast 0
-       if [ "$multicast_to_unicast" -gt 0 ]; then
-               append bss_conf "multicast_to_unicast=$multicast_to_unicast" "$N"
+       set_default multicast_to_unicast_all 0
+       if [ "$multicast_to_unicast_all" -gt 0 ]; then
+               append bss_conf "multicast_to_unicast=$multicast_to_unicast_all" "$N"
        fi
        set_default proxy_arp 0
        if [ "$proxy_arp" -gt 0 ]; then