AP: Add configuration options for 6 GHz TPE Tx power
Add configuration options for setting the Tx Power value in the Transmit Power Envelope for 6 GHz: - The Tx power value for default client where the transmit power interpretation is "Regulatory Client EIRP PSD" - The Tx power value for subordinate client where the transmit power interpretation is "Regulatory Client EIRP PSD" Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
ada9083ac4
commit
7065e5242a
5 changed files with 26 additions and 2 deletions
|
@ -3681,6 +3681,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
|
||||||
line);
|
line);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
} else if (os_strcmp(buf, "reg_def_cli_eirp_psd") == 0) {
|
||||||
|
conf->reg_def_cli_eirp_psd = atoi(pos);
|
||||||
|
} else if (os_strcmp(buf, "reg_sub_cli_eirp_psd") == 0) {
|
||||||
|
conf->reg_sub_cli_eirp_psd = atoi(pos);
|
||||||
} else if (os_strcmp(buf, "he_oper_chwidth") == 0) {
|
} else if (os_strcmp(buf, "he_oper_chwidth") == 0) {
|
||||||
conf->he_oper_chwidth = atoi(pos);
|
conf->he_oper_chwidth = atoi(pos);
|
||||||
} else if (os_strcmp(buf, "he_oper_centr_freq_seg0_idx") == 0) {
|
} else if (os_strcmp(buf, "he_oper_centr_freq_seg0_idx") == 0) {
|
||||||
|
|
|
@ -989,6 +989,13 @@ wmm_ac_vo_acm=0
|
||||||
# See IEEE P802.11-REVme/D4.0, Table E-12 (Regulatory Info subfield encoding)
|
# See IEEE P802.11-REVme/D4.0, Table E-12 (Regulatory Info subfield encoding)
|
||||||
# for more details.
|
# for more details.
|
||||||
#he_6ghz_reg_pwr_type=0
|
#he_6ghz_reg_pwr_type=0
|
||||||
|
#
|
||||||
|
# 6 GHz Maximum Tx Power used in Transmit Power Envelope elements, where the
|
||||||
|
# "Transmit Power Interpretation" is set to "Regulatory client EIRP PSD".
|
||||||
|
# For Maximum Transmit Power Category subfield encoding set to default (0):
|
||||||
|
#reg_def_cli_eirp_psd=-1
|
||||||
|
# For Maximum Transmit Power Category subfield encoding set to subordinate (1):
|
||||||
|
#reg_sub_cli_eirp_psd=-1
|
||||||
|
|
||||||
# Unsolicited broadcast Probe Response transmission settings
|
# Unsolicited broadcast Probe Response transmission settings
|
||||||
# This is for the 6 GHz band only. If the interval is set to a non-zero value,
|
# This is for the 6 GHz band only. If the interval is set to a non-zero value,
|
||||||
|
|
|
@ -282,6 +282,8 @@ struct hostapd_config * hostapd_config_defaults(void)
|
||||||
conf->he_6ghz_rx_ant_pat = 1;
|
conf->he_6ghz_rx_ant_pat = 1;
|
||||||
conf->he_6ghz_tx_ant_pat = 1;
|
conf->he_6ghz_tx_ant_pat = 1;
|
||||||
conf->he_6ghz_reg_pwr_type = HE_REG_INFO_6GHZ_AP_TYPE_VLP;
|
conf->he_6ghz_reg_pwr_type = HE_REG_INFO_6GHZ_AP_TYPE_VLP;
|
||||||
|
conf->reg_def_cli_eirp_psd = -1;
|
||||||
|
conf->reg_sub_cli_eirp_psd = -1;
|
||||||
#endif /* CONFIG_IEEE80211AX */
|
#endif /* CONFIG_IEEE80211AX */
|
||||||
|
|
||||||
/* The third octet of the country string uses an ASCII space character
|
/* The third octet of the country string uses an ASCII space character
|
||||||
|
|
|
@ -1149,6 +1149,10 @@ struct hostapd_config {
|
||||||
u8 he_6ghz_rx_ant_pat;
|
u8 he_6ghz_rx_ant_pat;
|
||||||
u8 he_6ghz_tx_ant_pat;
|
u8 he_6ghz_tx_ant_pat;
|
||||||
u8 he_6ghz_reg_pwr_type;
|
u8 he_6ghz_reg_pwr_type;
|
||||||
|
|
||||||
|
int reg_def_cli_eirp_psd;
|
||||||
|
int reg_sub_cli_eirp_psd;
|
||||||
|
|
||||||
bool require_he;
|
bool require_he;
|
||||||
#endif /* CONFIG_IEEE80211AX */
|
#endif /* CONFIG_IEEE80211AX */
|
||||||
|
|
||||||
|
|
|
@ -7067,7 +7067,11 @@ u8 * hostapd_eid_txpower_envelope(struct hostapd_data *hapd, u8 *eid)
|
||||||
tx_pwr_intrpn = REGULATORY_CLIENT_EIRP_PSD;
|
tx_pwr_intrpn = REGULATORY_CLIENT_EIRP_PSD;
|
||||||
|
|
||||||
/* Default Transmit Power Envelope for Global Operating Class */
|
/* Default Transmit Power Envelope for Global Operating Class */
|
||||||
|
if (hapd->iconf->reg_def_cli_eirp_psd != -1)
|
||||||
|
tx_pwr = hapd->iconf->reg_def_cli_eirp_psd;
|
||||||
|
else
|
||||||
tx_pwr = REG_PSD_MAX_TXPOWER_FOR_DEFAULT_CLIENT * 2;
|
tx_pwr = REG_PSD_MAX_TXPOWER_FOR_DEFAULT_CLIENT * 2;
|
||||||
|
|
||||||
eid = hostapd_add_tpe_info(eid, tx_pwr_count, tx_pwr_intrpn,
|
eid = hostapd_add_tpe_info(eid, tx_pwr_count, tx_pwr_intrpn,
|
||||||
REG_DEFAULT_CLIENT, tx_pwr);
|
REG_DEFAULT_CLIENT, tx_pwr);
|
||||||
|
|
||||||
|
@ -7076,6 +7080,9 @@ u8 * hostapd_eid_txpower_envelope(struct hostapd_data *hapd, u8 *eid)
|
||||||
if (iconf->he_6ghz_reg_pwr_type ==
|
if (iconf->he_6ghz_reg_pwr_type ==
|
||||||
HE_REG_INFO_6GHZ_AP_TYPE_INDOOR) {
|
HE_REG_INFO_6GHZ_AP_TYPE_INDOOR) {
|
||||||
/* TODO: Extract PSD limits from channel data */
|
/* TODO: Extract PSD limits from channel data */
|
||||||
|
if (hapd->iconf->reg_sub_cli_eirp_psd != -1)
|
||||||
|
tx_pwr = hapd->iconf->reg_sub_cli_eirp_psd;
|
||||||
|
else
|
||||||
tx_pwr = REG_PSD_MAX_TXPOWER_FOR_SUBORDINATE_CLIENT * 2;
|
tx_pwr = REG_PSD_MAX_TXPOWER_FOR_SUBORDINATE_CLIENT * 2;
|
||||||
eid = hostapd_add_tpe_info(eid, tx_pwr_count,
|
eid = hostapd_add_tpe_info(eid, tx_pwr_count,
|
||||||
tx_pwr_intrpn,
|
tx_pwr_intrpn,
|
||||||
|
|
Loading…
Reference in a new issue