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:18:52 +0000 (12:18 +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>
(cherry-picked from commit 09ea1db93b53d2c1e4a081f20fbbddd4bffd451d)

package/network/services/hostapd/files/hostapd.sh

index 3f24fd5e448414e990f77cf5e07f9c091981309d..e32ed5846dd0ca5d40f23652e300ae510ac6a21e 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
@@ -545,7 +545,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 \
                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
 
@@ -1096,9 +1096,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