EHT: Add configuration for the EHT default PE duration

Add a new configuration parameter for the duration of PE field in EHT TB
PPDU.

Signed-off-by: Jurijs Soloveckis <jsoloveckis@maxlinear.com>
This commit is contained in:
Jurijs Soloveckis 2023-12-06 08:55:22 +00:00 committed by Jouni Malinen
parent e8121c52f4
commit f0cb823512
4 changed files with 12 additions and 1 deletions

View file

@ -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) {

View file

@ -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
# 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

View file

@ -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 */

View file

@ -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) {