[PATCH 01/13] mbssid: add configuration options

Aloka Dixit quic_alokad at quicinc.com
Wed Mar 2 14:26:22 PST 2022


From: John Crispin <john at phrozen.org>

Add configuration options to enable multiple BSSID (MBSSID) and
enhanced multiple BSSID advertisements (EMA).
MBSSID enablement is mandatory to enable EMA.

Signed-off-by: John Crispin <john at phrozen.org>
Co-developed-by: Aloka Dixit <quic_alokad at quicinc.com>
Co-developed-by: Aloka Dixit <quic_alokad at quicinc.com>
Signed-off-by: Aloka Dixit <quic_alokad at quicinc.com>
---
 hostapd/config_file.c |  4 ++++
 hostapd/hostapd.conf  | 10 ++++++++++
 src/ap/ap_config.c    |  5 +++++
 src/ap/ap_config.h    |  2 ++
 4 files changed, 21 insertions(+)

diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index d416e5b771ee..5a5dc7d9e19f 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -4734,6 +4734,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
 			return 1;
 	} else if (os_strcmp(buf, "rnr") == 0) {
 		bss->rnr = atoi(pos);
+	} else if (os_strcmp(buf, "mbssid") == 0) {
+		conf->mbssid = atoi(pos);
+	} else if (os_strcmp(buf, "ema") == 0) {
+		conf->ema = atoi(pos);
 	} else {
 		wpa_printf(MSG_ERROR,
 			   "Line %d: unknown configuration item '%s'",
diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
index 9b0c809ea73f..b1664c82da2d 100644
--- a/hostapd/hostapd.conf
+++ b/hostapd/hostapd.conf
@@ -973,6 +973,16 @@ wmm_ac_vo_acm=0
 # Valid range: 0..20 TUs; default is 0 (disabled)
 #unsol_bcast_probe_resp_interval=0
 
+# Multiple BSSID element support in beacon and probe response frames.
+# 0 = Disabled
+# 1 = Enabled
+#mbssid=0
+
+# Enhanced multiple BSSID advertisements support in beacons.
+# 0 = Disabled
+# 1 = Enabled
+#ema=0
+
 ##### IEEE 802.1X-2004 related configuration ##################################
 
 # Require IEEE 802.1X authorization
diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
index 86b6e097cf89..91f9253ce6f1 100644
--- a/src/ap/ap_config.c
+++ b/src/ap/ap_config.c
@@ -1500,6 +1500,11 @@ int hostapd_config_check(struct hostapd_config *conf, int full_config)
 			return -1;
 	}
 
+	if (!conf->mbssid && conf->ema) {
+		wpa_printf(MSG_ERROR, "mbssid must be enabled to enable ema");
+		return -1;
+	}
+
 	for (i = 0; i < conf->num_bss; i++) {
 		if (hostapd_config_check_bss(conf->bss[i], conf, full_config))
 			return -1;
diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
index 1e21f7c96380..c9a15dac097d 100644
--- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h
@@ -1107,6 +1107,8 @@ struct hostapd_config {
 	unsigned int airtime_update_interval;
 #define AIRTIME_MODE_MAX (__AIRTIME_MODE_MAX - 1)
 #endif /* CONFIG_AIRTIME_POLICY */
+	u8 mbssid;
+	u8 ema;
 };
 
 
-- 
2.31.1




More information about the Hostap mailing list