hostapd: add UCI option for Multiple BSSID
authorStijn Tintel <stijn@linux-ipv6.be>
Tue, 23 May 2023 02:30:15 +0000 (05:30 +0300)
committerStijn Tintel <stijn@linux-ipv6.be>
Thu, 15 Jun 2023 23:42:04 +0000 (02:42 +0300)
Add an UCI option to enable Multiple BSSID Advertisement. Enabling this
will announce all BSSIDS on a phy in a single beacon frame. The
interface that is brought up first will be the transmitting profile, all
others are non-transmitting profiles and will be advertised in the
Multiple BSSID element in Beacon and Probe Response frames of the first
interface.

This depends on driver and client support. Enabling this will result in
all but the first interface not being visible at all for clients that do
not support it.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
package/network/services/hostapd/files/hostapd.sh

index 28bd210623b4d7d34212c39982bc5b4bb5aa9282..bf3625c92d8b4e696e3e1fd849230f5d4e20f936 100644 (file)
@@ -121,6 +121,7 @@ hostapd_common_add_device_config() {
        config_add_array hostapd_options
 
        config_add_int airtime_mode
+       config_add_int mbssid
 
        hostapd_add_log_config
 }
@@ -133,7 +134,8 @@ hostapd_prepare_device_config() {
 
        json_get_vars country country3 country_ie beacon_int:100 doth require_mode legacy_rates \
                acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \
-               rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc
+               rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc \
+               mbssid:0
 
        hostapd_set_log_options base_cfg
 
@@ -234,6 +236,7 @@ hostapd_prepare_device_config() {
        [ -n "$rts_threshold" ] && append base_cfg "rts_threshold=$rts_threshold" "$N"
        [ "$airtime_mode" -gt 0 ] && append base_cfg "airtime_mode=$airtime_mode" "$N"
        [ -n "$maxassoc" ] && append base_cfg "iface_max_num_sta=$maxassoc" "$N"
+       [ "$mbssid" -gt 0 ] && [ "$mbssid" -le 2 ] && append base_cfg "mbssid=$mbssid" "$N"
 
        json_get_values opts hostapd_options
        for val in $opts; do