[PATCH] EHT: added configuration for the EHT default PE duration

Jurijs Soloveckis jsoloveckis at maxlinear.com
Wed Dec 6 00:55:22 PST 2023


Added new configuration parameter for the duration of PE field in EHT TB PPDU

Signed-off-by: Jurijs Soloveckis <jsoloveckis at maxlinear.com>
---
 hostapd/config_file.c   | 2 ++
 hostapd/hostapd.conf    | 5 +++++
 src/ap/ap_config.h      | 1 +
 src/ap/ieee802_11_eht.c | 5 ++++-
 4 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index 7cf0ccfbe..1a49292b1 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -4766,6 +4766,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
 		conf->eht_phy_capab.su_beamformee = atoi(pos);
 	} else if (os_strcmp(buf, "eht_mu_beamformer") == 0) {
 		conf->eht_phy_capab.mu_beamformer = atoi(pos);
+	} else if (os_strcmp(buf, "eht_default_pe_duration") == 0) {
+		conf->eht_default_pe_duration = atoi(pos);
 	} else if (os_strcmp(buf, "punct_bitmap") == 0) {
 		conf->punct_bitmap = atoi(pos);
 	} else if (os_strcmp(buf, "punct_acs_threshold") == 0) {
diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
index f02cd9274..6a8976bcb 100644
--- a/hostapd/hostapd.conf
+++ b/hostapd/hostapd.conf
@@ -1027,6 +1027,11 @@ wmm_ac_vo_acm=0
 #eht_oper_chwidth (see vht_oper_chwidth)
 #eht_oper_centr_freq_seg0_idx
 
+#eht_default_pe_duration: The duration of PE field in EHT TB PPDU in us
+# 0 = PE field duration is the same as he_default_pe_duration (default)
+# 1 = PE field duration is 20 us
+#eht_default_pe_duration=0
+
 # Disabled subchannel bitmap (16 bits) as per IEEE P802.11be/3.0,
 # Figure 9-1002c (EHT Operation Information field format). Each bit corresponds
 # to a 20 MHz channel, the lowest bit corresponds to the lowest frequency. A
diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
index 5699a6be1..9ecb6ee81 100644
--- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h
@@ -1173,6 +1173,7 @@ struct hostapd_config {
 	struct eht_phy_capabilities_info eht_phy_capab;
 	u16 punct_bitmap; /* a bitmap of disabled 20 MHz channels */
 	u8 punct_acs_threshold;
+	u8 eht_default_pe_duration;
 #endif /* CONFIG_IEEE80211BE */
 
 	/* EHT enable/disable config from CHAN_SWITCH */
diff --git a/src/ap/ieee802_11_eht.c b/src/ap/ieee802_11_eht.c
index fc02f1198..630baa4e8 100644
--- a/src/ap/ieee802_11_eht.c
+++ b/src/ap/ieee802_11_eht.c
@@ -226,6 +226,9 @@ u8 * hostapd_eid_eht_operation(struct hostapd_data *hapd, u8 *eid)
 	oper = (struct ieee80211_eht_operation *) pos;
 	oper->oper_params = 0;
 
+	if (hapd->iconf->eht_default_pe_duration)
+		oper->oper_params |= EHT_OPER_DEFAULT_PE_DURATION;
+
 	/* TODO: Fill in appropriate EHT-MCS max Nss information */
 	oper->basic_eht_mcs_nss_set[0] = 0x11;
 	oper->basic_eht_mcs_nss_set[1] = 0x00;
@@ -235,7 +238,7 @@ u8 * hostapd_eid_eht_operation(struct hostapd_data *hapd, u8 *eid)
 	if (!eht_oper_info_present)
 		return pos + elen;
 
-	oper->oper_params = EHT_OPER_INFO_PRESENT;
+	oper->oper_params |= EHT_OPER_INFO_PRESENT;
 	seg0 = hostapd_get_oper_centr_freq_seg0_idx(conf);
 
 	switch (chwidth) {
-- 
2.17.1




More information about the Hostap mailing list