[PATCH 10/13] mbssid: DTIM period configuration for EMA AP

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


Set the DTIM periods of non-transmitted profiles equal to the EMA
profile periodicity if those are not a multiple of the latter
already as recommended in IEEE P802.11ax/D8.0, October 2020,
Multiple BSSID configuration examples, AA.1 Introduction.

Signed-off-by: Aloka Dixit <quic_alokad at quicinc.com>
---
 src/ap/ieee802_11.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
index 33db7b411a8a..3365b48fa639 100644
--- a/src/ap/ieee802_11.c
+++ b/src/ap/ieee802_11.c
@@ -7560,7 +7560,7 @@ size_t hostapd_eid_mbssid_len(struct hostapd_data *hapd, u32 frame_type,
 
 static u8 * hostapd_eid_mbssid_elem(struct hostapd_data *hapd, u8 *eid, u8 *end,
 				    u32 frame_type, u8 max_bssid_indicator,
-				    size_t *bss_index)
+				    size_t *bss_index, u8 elem_count)
 {
 	struct hostapd_data *tx_bss = hostapd_mbssid_get_tx_bss(hapd);
 	size_t i;
@@ -7601,6 +7601,9 @@ static u8 * hostapd_eid_mbssid_elem(struct hostapd_data *hapd, u8 *eid, u8 *end,
 		if (frame_type == WLAN_FC_STYPE_BEACON) {
 			*eid++ = 3;
 			*eid++ = i;
+			if (hapd->iconf->ema &&
+			    (conf->dtim_period % elem_count))
+				conf->dtim_period = elem_count;
 			*eid++ = conf->dtim_period;
 			*eid++ = 0xFF;
 		} else {
@@ -7686,7 +7689,7 @@ u8 * hostapd_eid_mbssid(struct hostapd_data *hapd, u8 *eid, u8 *end,
 		}
 		eid = hostapd_eid_mbssid_elem(hapd, eid, end, frame_type,
 					      hostapd_max_bssid_indicator(hapd),
-					      &bss_index);
+					      &bss_index, elem_count);
 	}
 	return eid;
 }
-- 
2.31.1




More information about the Hostap mailing list