6 GHz: Change 6 GHz channels per IEEE P802.11ax/D6.1
The channel numbering/center frequencies was changed in IEEE P802.11ax/D6.1. The center frequencies of the channels were shifted by 10 MHz. Also, a new operating class 136 was defined with a single channel 2. Add required support to change the channelization as per IEEE P802.11ax/D6.1. Signed-off-by: Wu Gao<wugao@codeaurora.org> Signed-off-by: Vamsi Krishna <vamsin@codeaurora.org>
This commit is contained in:
parent
5908fedc10
commit
52a3257621
3 changed files with 34 additions and 17 deletions
|
@ -1029,9 +1029,9 @@ enum hostapd_hw_mode ieee80211_freq_to_channel_ext(unsigned int freq,
|
|||
return HOSTAPD_MODE_IEEE80211A;
|
||||
}
|
||||
|
||||
if (freq > 5940 && freq <= 7105) {
|
||||
if (freq > 5950 && freq <= 7115) {
|
||||
int bw;
|
||||
u8 idx = (freq - 5940) / 5;
|
||||
u8 idx = (freq - 5950) / 5;
|
||||
|
||||
bw = center_idx_to_bw_6ghz(idx);
|
||||
if (bw < 0)
|
||||
|
@ -1042,6 +1042,12 @@ enum hostapd_hw_mode ieee80211_freq_to_channel_ext(unsigned int freq,
|
|||
return HOSTAPD_MODE_IEEE80211A;
|
||||
}
|
||||
|
||||
if (freq == 5935) {
|
||||
*op_class = 136;
|
||||
*channel = (freq - 5925) / 5;
|
||||
return HOSTAPD_MODE_IEEE80211A;
|
||||
}
|
||||
|
||||
/* 56.16 GHz, channel 1..6 */
|
||||
if (freq >= 56160 + 2160 * 1 && freq <= 56160 + 2160 * 6) {
|
||||
if (sec_channel)
|
||||
|
@ -1418,7 +1424,11 @@ static int ieee80211_chan_to_freq_global(u8 op_class, u8 chan)
|
|||
case 135: /* UHB channels, 80+80 MHz: 7, 23, 39.. */
|
||||
if (chan < 1 || chan > 233)
|
||||
return -1;
|
||||
return 5940 + chan * 5;
|
||||
return 5950 + chan * 5;
|
||||
case 136: /* UHB channels, 20 MHz: 2 */
|
||||
if (chan == 2)
|
||||
return 5935;
|
||||
return -1;
|
||||
case 180: /* 60 GHz band, channels 1..8 */
|
||||
if (chan < 1 || chan > 8)
|
||||
return -1;
|
||||
|
@ -2208,10 +2218,13 @@ int center_idx_to_bw_6ghz(u8 idx)
|
|||
|
||||
int is_6ghz_freq(int freq)
|
||||
{
|
||||
if (freq < 5940 || freq > 7105)
|
||||
if (freq < 5935 || freq > 7115)
|
||||
return 0;
|
||||
|
||||
if (center_idx_to_bw_6ghz((freq - 5940) / 5) < 0)
|
||||
if (freq == 5935)
|
||||
return 1;
|
||||
|
||||
if (center_idx_to_bw_6ghz((freq - 5950) / 5) < 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
|
@ -2220,7 +2233,7 @@ int is_6ghz_freq(int freq)
|
|||
|
||||
int is_6ghz_op_class(u8 op_class)
|
||||
{
|
||||
return op_class >= 131 && op_class <= 135;
|
||||
return op_class >= 131 && op_class <= 136;
|
||||
}
|
||||
|
||||
|
||||
|
@ -2228,14 +2241,14 @@ int is_6ghz_psc_frequency(int freq)
|
|||
{
|
||||
int i;
|
||||
|
||||
if (!is_6ghz_freq(freq))
|
||||
if (!is_6ghz_freq(freq) || freq == 5935)
|
||||
return 0;
|
||||
if ((((freq - 5940) / 5) & 0x3) != 0x1)
|
||||
if ((((freq - 5950) / 5) & 0x3) != 0x1)
|
||||
return 0;
|
||||
|
||||
i = (freq - 5940 + 55) % 80;
|
||||
i = (freq - 5950 + 55) % 80;
|
||||
if (i == 0)
|
||||
i = (freq - 5940 + 55) / 80;
|
||||
i = (freq - 5950 + 55) / 80;
|
||||
|
||||
if (i >= 1 && i <= 15)
|
||||
return 1;
|
||||
|
@ -2471,6 +2484,8 @@ int op_class_to_bandwidth(u8 op_class)
|
|||
case 134: /* UHB channels, 160 MHz: 15, 47, 79.. */
|
||||
case 135: /* UHB channels, 80+80 MHz: 7, 23, 39.. */
|
||||
return 160;
|
||||
case 136: /* UHB channels, 20 MHz: 2 */
|
||||
return 20;
|
||||
case 180: /* 60 GHz band, channels 1..8 */
|
||||
return 2160;
|
||||
case 181: /* 60 GHz band, EDMG CB2, channels 9..15 */
|
||||
|
@ -2531,6 +2546,8 @@ int op_class_to_ch_width(u8 op_class)
|
|||
return CHANWIDTH_160MHZ;
|
||||
case 135: /* UHB channels, 80+80 MHz: 7, 23, 39.. */
|
||||
return CHANWIDTH_80P80MHZ;
|
||||
case 136: /* UHB channels, 20 MHz: 2 */
|
||||
return CHANWIDTH_USE_HT;
|
||||
case 180: /* 60 GHz band, channels 1..8 */
|
||||
return CHANWIDTH_2160MHZ;
|
||||
case 181: /* 60 GHz band, EDMG CB2, channels 9..15 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue