hostapd: Update 160 MHz center freq calculation in 6 GHz
In the 6 GHz Operation Information field, the Channel Center Frequency Segment 0 field indicates the channel center frequency index for the 20 MHz, 40 MHz, 80 MHz, or 80+80 MHz channel on which the BSS operates in the 6 GHz band. If the BSS channel width is 160 MHz then the Channel Center Frequency Segment 0 field indicates the channel center frequency index of the primary 80 MHz. The Channel Center Frequency Segment 1 field indicates the channel center frequency index of the 160 MHz channel on which the BSS operates in the 6 GHz band or the channel center frequency of the secondary 80 MHz for the 80+80 MHz channel. Since Channel Center Frequency Segment 1 was 0 for 160 MHz, 6 GHz STA associated using 80 MHz. Update seg0 and seg1 fields per standard (IEEE P802.11ax/D8.0: 9.4.2.249 HE Operation element). Signed-off-by: P Praneesh <ppranees@codeaurora.org>
This commit is contained in:
parent
9c6b0a9416
commit
79e8f0c164
2 changed files with 21 additions and 1 deletions
|
@ -837,6 +837,11 @@ wmm_ac_vo_acm=0
|
||||||
#he_rts_threshold=0
|
#he_rts_threshold=0
|
||||||
|
|
||||||
# HE operating channel information; see matching vht_* parameters for details.
|
# HE operating channel information; see matching vht_* parameters for details.
|
||||||
|
# he_oper_centr_freq_seg0_idx field is used to indicate center frequency of 80
|
||||||
|
# and 160 MHz bandwidth operation. In 80+80 MHz operation, it is the center
|
||||||
|
# frequency of the lower frequency segment. he_oper_centr_freq_seg1_idx field
|
||||||
|
# is used only with 80+80 MHz bandwidth operation and it is used to transmit
|
||||||
|
# the center frequency of the second segment.
|
||||||
# On the 6 GHz band the center freq calculation starts from 5.950 GHz offset.
|
# On the 6 GHz band the center freq calculation starts from 5.950 GHz offset.
|
||||||
# For example idx=3 would result in 5965 MHz center frequency. In addition,
|
# For example idx=3 would result in 5965 MHz center frequency. In addition,
|
||||||
# he_oper_chwidth is ignored, and the channel width is derived from the
|
# he_oper_chwidth is ignored, and the channel width is derived from the
|
||||||
|
|
|
@ -216,7 +216,10 @@ u8 * hostapd_eid_he_operation(struct hostapd_data *hapd, u8 *eid)
|
||||||
|
|
||||||
params |= HE_OPERATION_6GHZ_OPER_INFO;
|
params |= HE_OPERATION_6GHZ_OPER_INFO;
|
||||||
|
|
||||||
/* 6 GHz Operation Information field */
|
/* 6 GHz Operation Information field
|
||||||
|
* IEEE P802.11ax/D8.0, 9.4.2.249 HE Operation element,
|
||||||
|
* Figure 9-788k
|
||||||
|
*/
|
||||||
*pos++ = hapd->iconf->channel; /* Primary Channel */
|
*pos++ = hapd->iconf->channel; /* Primary Channel */
|
||||||
|
|
||||||
/* Control: Channel Width */
|
/* Control: Channel Width */
|
||||||
|
@ -226,6 +229,18 @@ u8 * hostapd_eid_he_operation(struct hostapd_data *hapd, u8 *eid)
|
||||||
*pos++ = center_idx_to_bw_6ghz(seg0);
|
*pos++ = center_idx_to_bw_6ghz(seg0);
|
||||||
|
|
||||||
/* Channel Center Freq Seg0/Seg1 */
|
/* Channel Center Freq Seg0/Seg1 */
|
||||||
|
if (hapd->iconf->he_oper_chwidth == 2) {
|
||||||
|
/*
|
||||||
|
* Seg 0 indicates the channel center frequency index of
|
||||||
|
* the 160 MHz channel.
|
||||||
|
*/
|
||||||
|
seg1 = seg0;
|
||||||
|
if (hapd->iconf->channel < seg0)
|
||||||
|
seg0 -= 8;
|
||||||
|
else
|
||||||
|
seg0 += 8;
|
||||||
|
}
|
||||||
|
|
||||||
*pos++ = seg0;
|
*pos++ = seg0;
|
||||||
*pos++ = seg1;
|
*pos++ = seg1;
|
||||||
/* Minimum Rate */
|
/* Minimum Rate */
|
||||||
|
|
Loading…
Reference in a new issue