1 /* 2 * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates 3 * 4 * Copyright (C) 2020, Broadcom. 5 * 6 * Unless you and Broadcom execute a separate written software license 7 * agreement governing use of this software, this software is licensed to you 8 * under the terms of the GNU General Public License version 2 (the "GPL"), 9 * available at http://www.broadcom.com/licenses/GPLv2.php, with the 10 * following added to such license: 11 * 12 * As a special exception, the copyright holders of this software give you 13 * permission to link this software with independent modules, and to copy and 14 * distribute the resulting executable under terms of your choice, provided that 15 * you also meet, for each linked independent module, the terms and conditions of 16 * the license of that module. An independent module is a module which is not 17 * derived from this software. The special exception does not apply to any 18 * modifications of the software. 19 * 20 * 21 * <<Broadcom-WL-IPTag/Dual:>> 22 */ 23 24 #ifndef _bcmwifi_rates_h_ 25 #define _bcmwifi_rates_h_ 26 27 #include <typedefs.h> 28 29 #ifdef __cplusplus 30 extern "C" { 31 #endif /* __cplusplus */ 32 33 #define WL_RATESET_SZ_DSSS 4 34 #define WL_RATESET_SZ_OFDM 8 35 #if defined(WLPROPRIETARY_11N_RATES) 36 #define WL_RATESET_SZ_HT_MCS 10 37 #else 38 #define WL_RATESET_SZ_HT_MCS 8 39 #endif 40 #define WL_RATESET_SZ_VHT_MCS 10 41 #define WL_RATESET_SZ_VHT_MCS_P 12 /* 10 VHT rates + 2 proprietary rates */ 42 #define WL_RATESET_SZ_HE_MCS 12 /* 12 HE rates (mcs 0-11) */ 43 #define WL_RATESET_SZ_EHT_MCS 14u /* 14 EHT rates (mcs 0-13) */ 44 45 #define WL_RATESET_SZ_HT_IOCTL 8 /* MAC histogram, compatibility with wl utility */ 46 47 #define WL_TX_CHAINS_MAX 4 48 49 #define WL_RATE_DISABLED (-128) /* Power value corresponding to unsupported rate */ 50 51 /* Transmit channel bandwidths */ 52 typedef enum wl_tx_bw { 53 WL_TX_BW_20, 54 WL_TX_BW_40, 55 WL_TX_BW_80, 56 WL_TX_BW_20IN40, 57 WL_TX_BW_20IN80, 58 WL_TX_BW_40IN80, 59 WL_TX_BW_160, 60 WL_TX_BW_20IN160, 61 WL_TX_BW_40IN160, 62 WL_TX_BW_80IN160, 63 WL_TX_BW_240, 64 WL_TX_BW_20IN240, 65 WL_TX_BW_40IN240, 66 WL_TX_BW_80IN240, 67 WL_TX_BW_160IN240, 68 WL_TX_BW_320, 69 WL_TX_BW_20IN320, 70 WL_TX_BW_40IN320, 71 WL_TX_BW_80IN320, 72 WL_TX_BW_160IN320, 73 WL_TX_BW_ALL 74 } wl_tx_bw_t; 75 76 /* 77 * Transmit modes. 78 * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed 79 */ 80 typedef enum wl_tx_mode { 81 WL_TX_MODE_NONE, 82 WL_TX_MODE_STBC, 83 WL_TX_MODE_CDD, 84 WL_TX_MODE_TXBF, 85 WL_NUM_TX_MODES 86 } wl_tx_mode_t; 87 88 /* Number of transmit chains */ 89 typedef enum wl_tx_chains { 90 WL_TX_CHAINS_1 = 1, 91 WL_TX_CHAINS_2, 92 WL_TX_CHAINS_3, 93 WL_TX_CHAINS_4 94 } wl_tx_chains_t; 95 96 /* Number of transmit streams */ 97 typedef enum wl_tx_nss { 98 WL_TX_NSS_1 = 1, 99 WL_TX_NSS_2, 100 WL_TX_NSS_3, 101 WL_TX_NSS_4 102 } wl_tx_nss_t; 103 104 /* 802.11ax rate types */ 105 typedef enum wl_he_rate_type { 106 WL_HE_RT_SU = 0, 107 WL_HE_RT_RU26 = 1, 108 WL_HE_RT_RU52 = 2, 109 WL_HE_RT_RU106 = 3, 110 WL_HE_RT_UB = 4, 111 WL_HE_RT_LUB = 5, 112 WL_HE_RT_RU242 = 6, 113 WL_HE_RT_RU484 = 7, 114 WL_HE_RT_RU996 = 8 115 } wl_he_rate_type_t; 116 117 #define WL_NUM_HE_RT 9u 118 119 /* This enum maps each rate to a CLM index 120 * 802.11ax OFDMA (RU) rates are in separate enum 121 */ 122 123 typedef enum clm_rates { 124 /************ 125 * 1 chain * 126 ************ 127 */ 128 129 /* 1 Stream */ 130 WL_RATE_1X1_DSSS_1 = 0, 131 WL_RATE_1X1_DSSS_2 = 1, 132 WL_RATE_1X1_DSSS_5_5 = 2, 133 WL_RATE_1X1_DSSS_11 = 3, 134 135 WL_RATE_1X1_OFDM_6 = 4, 136 WL_RATE_1X1_OFDM_9 = 5, 137 WL_RATE_1X1_OFDM_12 = 6, 138 WL_RATE_1X1_OFDM_18 = 7, 139 WL_RATE_1X1_OFDM_24 = 8, 140 WL_RATE_1X1_OFDM_36 = 9, 141 WL_RATE_1X1_OFDM_48 = 10, 142 WL_RATE_1X1_OFDM_54 = 11, 143 144 WL_RATE_1X1_MCS0 = 12, 145 WL_RATE_1X1_MCS1 = 13, 146 WL_RATE_1X1_MCS2 = 14, 147 WL_RATE_1X1_MCS3 = 15, 148 WL_RATE_1X1_MCS4 = 16, 149 WL_RATE_1X1_MCS5 = 17, 150 WL_RATE_1X1_MCS6 = 18, 151 WL_RATE_1X1_MCS7 = 19, 152 WL_RATE_P_1X1_MCS87 = 20, 153 WL_RATE_P_1X1_MCS88 = 21, 154 155 WL_RATE_1X1_VHT0SS1 = 12, 156 WL_RATE_1X1_VHT1SS1 = 13, 157 WL_RATE_1X1_VHT2SS1 = 14, 158 WL_RATE_1X1_VHT3SS1 = 15, 159 WL_RATE_1X1_VHT4SS1 = 16, 160 WL_RATE_1X1_VHT5SS1 = 17, 161 WL_RATE_1X1_VHT6SS1 = 18, 162 WL_RATE_1X1_VHT7SS1 = 19, 163 WL_RATE_1X1_VHT8SS1 = 20, 164 WL_RATE_1X1_VHT9SS1 = 21, 165 WL_RATE_P_1X1_VHT10SS1 = 22, 166 WL_RATE_P_1X1_VHT11SS1 = 23, 167 168 WL_RATE_1X1_HE0SS1 = 24, 169 WL_RATE_1X1_HE1SS1 = 25, 170 WL_RATE_1X1_HE2SS1 = 26, 171 WL_RATE_1X1_HE3SS1 = 27, 172 WL_RATE_1X1_HE4SS1 = 28, 173 WL_RATE_1X1_HE5SS1 = 29, 174 WL_RATE_1X1_HE6SS1 = 30, 175 WL_RATE_1X1_HE7SS1 = 31, 176 WL_RATE_1X1_HE8SS1 = 32, 177 WL_RATE_1X1_HE9SS1 = 33, 178 WL_RATE_1X1_HE10SS1 = 34, 179 WL_RATE_1X1_HE11SS1 = 35, 180 181 /************ 182 * 2 chains * 183 ************ 184 */ 185 186 /* 1 Stream expanded + 1 */ 187 WL_RATE_1X2_DSSS_1 = 36, 188 WL_RATE_1X2_DSSS_2 = 37, 189 WL_RATE_1X2_DSSS_5_5 = 38, 190 WL_RATE_1X2_DSSS_11 = 39, 191 192 WL_RATE_1X2_CDD_OFDM_6 = 40, 193 WL_RATE_1X2_CDD_OFDM_9 = 41, 194 WL_RATE_1X2_CDD_OFDM_12 = 42, 195 WL_RATE_1X2_CDD_OFDM_18 = 43, 196 WL_RATE_1X2_CDD_OFDM_24 = 44, 197 WL_RATE_1X2_CDD_OFDM_36 = 45, 198 WL_RATE_1X2_CDD_OFDM_48 = 46, 199 WL_RATE_1X2_CDD_OFDM_54 = 47, 200 201 WL_RATE_1X2_CDD_MCS0 = 48, 202 WL_RATE_1X2_CDD_MCS1 = 49, 203 WL_RATE_1X2_CDD_MCS2 = 50, 204 WL_RATE_1X2_CDD_MCS3 = 51, 205 WL_RATE_1X2_CDD_MCS4 = 52, 206 WL_RATE_1X2_CDD_MCS5 = 53, 207 WL_RATE_1X2_CDD_MCS6 = 54, 208 WL_RATE_1X2_CDD_MCS7 = 55, 209 WL_RATE_P_1X2_CDD_MCS87 = 56, 210 WL_RATE_P_1X2_CDD_MCS88 = 57, 211 212 WL_RATE_1X2_VHT0SS1 = 48, 213 WL_RATE_1X2_VHT1SS1 = 49, 214 WL_RATE_1X2_VHT2SS1 = 50, 215 WL_RATE_1X2_VHT3SS1 = 51, 216 WL_RATE_1X2_VHT4SS1 = 52, 217 WL_RATE_1X2_VHT5SS1 = 53, 218 WL_RATE_1X2_VHT6SS1 = 54, 219 WL_RATE_1X2_VHT7SS1 = 55, 220 WL_RATE_1X2_VHT8SS1 = 56, 221 WL_RATE_1X2_VHT9SS1 = 57, 222 WL_RATE_P_1X2_VHT10SS1 = 58, 223 WL_RATE_P_1X2_VHT11SS1 = 59, 224 225 WL_RATE_1X2_HE0SS1 = 60, 226 WL_RATE_1X2_HE1SS1 = 61, 227 WL_RATE_1X2_HE2SS1 = 62, 228 WL_RATE_1X2_HE3SS1 = 63, 229 WL_RATE_1X2_HE4SS1 = 64, 230 WL_RATE_1X2_HE5SS1 = 65, 231 WL_RATE_1X2_HE6SS1 = 66, 232 WL_RATE_1X2_HE7SS1 = 67, 233 WL_RATE_1X2_HE8SS1 = 68, 234 WL_RATE_1X2_HE9SS1 = 69, 235 WL_RATE_1X2_HE10SS1 = 70, 236 WL_RATE_1X2_HE11SS1 = 71, 237 238 /* 2 Streams */ 239 WL_RATE_2X2_STBC_MCS0 = 72, 240 WL_RATE_2X2_STBC_MCS1 = 73, 241 WL_RATE_2X2_STBC_MCS2 = 74, 242 WL_RATE_2X2_STBC_MCS3 = 75, 243 WL_RATE_2X2_STBC_MCS4 = 76, 244 WL_RATE_2X2_STBC_MCS5 = 77, 245 WL_RATE_2X2_STBC_MCS6 = 78, 246 WL_RATE_2X2_STBC_MCS7 = 79, 247 WL_RATE_P_2X2_STBC_MCS87 = 80, 248 WL_RATE_P_2X2_STBC_MCS88 = 81, 249 250 WL_RATE_2X2_STBC_VHT0SS1 = 72, 251 WL_RATE_2X2_STBC_VHT1SS1 = 73, 252 WL_RATE_2X2_STBC_VHT2SS1 = 74, 253 WL_RATE_2X2_STBC_VHT3SS1 = 75, 254 WL_RATE_2X2_STBC_VHT4SS1 = 76, 255 WL_RATE_2X2_STBC_VHT5SS1 = 77, 256 WL_RATE_2X2_STBC_VHT6SS1 = 78, 257 WL_RATE_2X2_STBC_VHT7SS1 = 79, 258 WL_RATE_2X2_STBC_VHT8SS1 = 80, 259 WL_RATE_2X2_STBC_VHT9SS1 = 81, 260 WL_RATE_P_2X2_STBC_VHT10SS1 = 82, 261 WL_RATE_P_2X2_STBC_VHT11SS1 = 83, 262 263 WL_RATE_2X2_SDM_MCS8 = 84, 264 WL_RATE_2X2_SDM_MCS9 = 85, 265 WL_RATE_2X2_SDM_MCS10 = 86, 266 WL_RATE_2X2_SDM_MCS11 = 87, 267 WL_RATE_2X2_SDM_MCS12 = 88, 268 WL_RATE_2X2_SDM_MCS13 = 89, 269 WL_RATE_2X2_SDM_MCS14 = 90, 270 WL_RATE_2X2_SDM_MCS15 = 91, 271 WL_RATE_P_2X2_SDM_MCS99 = 92, 272 WL_RATE_P_2X2_SDM_MCS100 = 93, 273 274 WL_RATE_2X2_VHT0SS2 = 84, 275 WL_RATE_2X2_VHT1SS2 = 85, 276 WL_RATE_2X2_VHT2SS2 = 86, 277 WL_RATE_2X2_VHT3SS2 = 87, 278 WL_RATE_2X2_VHT4SS2 = 88, 279 WL_RATE_2X2_VHT5SS2 = 89, 280 WL_RATE_2X2_VHT6SS2 = 90, 281 WL_RATE_2X2_VHT7SS2 = 91, 282 WL_RATE_2X2_VHT8SS2 = 92, 283 WL_RATE_2X2_VHT9SS2 = 93, 284 WL_RATE_P_2X2_VHT10SS2 = 94, 285 WL_RATE_P_2X2_VHT11SS2 = 95, 286 287 WL_RATE_2X2_HE0SS2 = 96, 288 WL_RATE_2X2_HE1SS2 = 97, 289 WL_RATE_2X2_HE2SS2 = 98, 290 WL_RATE_2X2_HE3SS2 = 99, 291 WL_RATE_2X2_HE4SS2 = 100, 292 WL_RATE_2X2_HE5SS2 = 101, 293 WL_RATE_2X2_HE6SS2 = 102, 294 WL_RATE_2X2_HE7SS2 = 103, 295 WL_RATE_2X2_HE8SS2 = 104, 296 WL_RATE_2X2_HE9SS2 = 105, 297 WL_RATE_2X2_HE10SS2 = 106, 298 WL_RATE_2X2_HE11SS2 = 107, 299 300 /**************************** 301 * TX Beamforming, 2 chains * 302 **************************** 303 */ 304 305 /* 1 Stream expanded + 1 */ 306 WL_RATE_1X2_TXBF_OFDM_6 = 108, 307 WL_RATE_1X2_TXBF_OFDM_9 = 109, 308 WL_RATE_1X2_TXBF_OFDM_12 = 110, 309 WL_RATE_1X2_TXBF_OFDM_18 = 111, 310 WL_RATE_1X2_TXBF_OFDM_24 = 112, 311 WL_RATE_1X2_TXBF_OFDM_36 = 113, 312 WL_RATE_1X2_TXBF_OFDM_48 = 114, 313 WL_RATE_1X2_TXBF_OFDM_54 = 115, 314 315 WL_RATE_1X2_TXBF_MCS0 = 116, 316 WL_RATE_1X2_TXBF_MCS1 = 117, 317 WL_RATE_1X2_TXBF_MCS2 = 118, 318 WL_RATE_1X2_TXBF_MCS3 = 119, 319 WL_RATE_1X2_TXBF_MCS4 = 120, 320 WL_RATE_1X2_TXBF_MCS5 = 121, 321 WL_RATE_1X2_TXBF_MCS6 = 122, 322 WL_RATE_1X2_TXBF_MCS7 = 123, 323 WL_RATE_P_1X2_TXBF_MCS87 = 124, 324 WL_RATE_P_1X2_TXBF_MCS88 = 125, 325 326 WL_RATE_1X2_TXBF_VHT0SS1 = 116, 327 WL_RATE_1X2_TXBF_VHT1SS1 = 117, 328 WL_RATE_1X2_TXBF_VHT2SS1 = 118, 329 WL_RATE_1X2_TXBF_VHT3SS1 = 119, 330 WL_RATE_1X2_TXBF_VHT4SS1 = 120, 331 WL_RATE_1X2_TXBF_VHT5SS1 = 121, 332 WL_RATE_1X2_TXBF_VHT6SS1 = 122, 333 WL_RATE_1X2_TXBF_VHT7SS1 = 123, 334 WL_RATE_1X2_TXBF_VHT8SS1 = 124, 335 WL_RATE_1X2_TXBF_VHT9SS1 = 125, 336 WL_RATE_P_1X2_TXBF_VHT10SS1 = 126, 337 WL_RATE_P_1X2_TXBF_VHT11SS1 = 127, 338 339 WL_RATE_1X2_TXBF_HE0SS1 = 128, 340 WL_RATE_1X2_TXBF_HE1SS1 = 129, 341 WL_RATE_1X2_TXBF_HE2SS1 = 130, 342 WL_RATE_1X2_TXBF_HE3SS1 = 131, 343 WL_RATE_1X2_TXBF_HE4SS1 = 132, 344 WL_RATE_1X2_TXBF_HE5SS1 = 133, 345 WL_RATE_1X2_TXBF_HE6SS1 = 134, 346 WL_RATE_1X2_TXBF_HE7SS1 = 135, 347 WL_RATE_1X2_TXBF_HE8SS1 = 136, 348 WL_RATE_1X2_TXBF_HE9SS1 = 137, 349 WL_RATE_1X2_TXBF_HE10SS1 = 138, 350 WL_RATE_1X2_TXBF_HE11SS1 = 139, 351 352 /* 2 Streams */ 353 WL_RATE_2X2_TXBF_SDM_MCS8 = 140, 354 WL_RATE_2X2_TXBF_SDM_MCS9 = 141, 355 WL_RATE_2X2_TXBF_SDM_MCS10 = 142, 356 WL_RATE_2X2_TXBF_SDM_MCS11 = 143, 357 WL_RATE_2X2_TXBF_SDM_MCS12 = 144, 358 WL_RATE_2X2_TXBF_SDM_MCS13 = 145, 359 WL_RATE_2X2_TXBF_SDM_MCS14 = 146, 360 WL_RATE_2X2_TXBF_SDM_MCS15 = 147, 361 WL_RATE_P_2X2_TXBF_SDM_MCS99 = 148, 362 WL_RATE_P_2X2_TXBF_SDM_MCS100 = 149, 363 364 WL_RATE_2X2_TXBF_VHT0SS2 = 140, 365 WL_RATE_2X2_TXBF_VHT1SS2 = 141, 366 WL_RATE_2X2_TXBF_VHT2SS2 = 142, 367 WL_RATE_2X2_TXBF_VHT3SS2 = 143, 368 WL_RATE_2X2_TXBF_VHT4SS2 = 144, 369 WL_RATE_2X2_TXBF_VHT5SS2 = 145, 370 WL_RATE_2X2_TXBF_VHT6SS2 = 146, 371 WL_RATE_2X2_TXBF_VHT7SS2 = 147, 372 WL_RATE_2X2_TXBF_VHT8SS2 = 148, 373 WL_RATE_2X2_TXBF_VHT9SS2 = 149, 374 WL_RATE_P_2X2_TXBF_VHT10SS2 = 150, 375 WL_RATE_P_2X2_TXBF_VHT11SS2 = 151, 376 377 WL_RATE_2X2_TXBF_HE0SS2 = 152, 378 WL_RATE_2X2_TXBF_HE1SS2 = 153, 379 WL_RATE_2X2_TXBF_HE2SS2 = 154, 380 WL_RATE_2X2_TXBF_HE3SS2 = 155, 381 WL_RATE_2X2_TXBF_HE4SS2 = 156, 382 WL_RATE_2X2_TXBF_HE5SS2 = 157, 383 WL_RATE_2X2_TXBF_HE6SS2 = 158, 384 WL_RATE_2X2_TXBF_HE7SS2 = 159, 385 WL_RATE_2X2_TXBF_HE8SS2 = 160, 386 WL_RATE_2X2_TXBF_HE9SS2 = 161, 387 WL_RATE_2X2_TXBF_HE10SS2 = 162, 388 WL_RATE_2X2_TXBF_HE11SS2 = 163, 389 390 /************ 391 * 3 chains * 392 ************ 393 */ 394 395 /* 1 Stream expanded + 2 */ 396 WL_RATE_1X3_DSSS_1 = 164, 397 WL_RATE_1X3_DSSS_2 = 165, 398 WL_RATE_1X3_DSSS_5_5 = 166, 399 WL_RATE_1X3_DSSS_11 = 167, 400 401 WL_RATE_1X3_CDD_OFDM_6 = 168, 402 WL_RATE_1X3_CDD_OFDM_9 = 169, 403 WL_RATE_1X3_CDD_OFDM_12 = 170, 404 WL_RATE_1X3_CDD_OFDM_18 = 171, 405 WL_RATE_1X3_CDD_OFDM_24 = 172, 406 WL_RATE_1X3_CDD_OFDM_36 = 173, 407 WL_RATE_1X3_CDD_OFDM_48 = 174, 408 WL_RATE_1X3_CDD_OFDM_54 = 175, 409 410 WL_RATE_1X3_CDD_MCS0 = 176, 411 WL_RATE_1X3_CDD_MCS1 = 177, 412 WL_RATE_1X3_CDD_MCS2 = 178, 413 WL_RATE_1X3_CDD_MCS3 = 179, 414 WL_RATE_1X3_CDD_MCS4 = 180, 415 WL_RATE_1X3_CDD_MCS5 = 181, 416 WL_RATE_1X3_CDD_MCS6 = 182, 417 WL_RATE_1X3_CDD_MCS7 = 183, 418 WL_RATE_P_1X3_CDD_MCS87 = 184, 419 WL_RATE_P_1X3_CDD_MCS88 = 185, 420 421 WL_RATE_1X3_VHT0SS1 = 176, 422 WL_RATE_1X3_VHT1SS1 = 177, 423 WL_RATE_1X3_VHT2SS1 = 178, 424 WL_RATE_1X3_VHT3SS1 = 179, 425 WL_RATE_1X3_VHT4SS1 = 180, 426 WL_RATE_1X3_VHT5SS1 = 181, 427 WL_RATE_1X3_VHT6SS1 = 182, 428 WL_RATE_1X3_VHT7SS1 = 183, 429 WL_RATE_1X3_VHT8SS1 = 184, 430 WL_RATE_1X3_VHT9SS1 = 185, 431 WL_RATE_P_1X3_VHT10SS1 = 186, 432 WL_RATE_P_1X3_VHT11SS1 = 187, 433 434 WL_RATE_1X3_HE0SS1 = 188, 435 WL_RATE_1X3_HE1SS1 = 189, 436 WL_RATE_1X3_HE2SS1 = 190, 437 WL_RATE_1X3_HE3SS1 = 191, 438 WL_RATE_1X3_HE4SS1 = 192, 439 WL_RATE_1X3_HE5SS1 = 193, 440 WL_RATE_1X3_HE6SS1 = 194, 441 WL_RATE_1X3_HE7SS1 = 195, 442 WL_RATE_1X3_HE8SS1 = 196, 443 WL_RATE_1X3_HE9SS1 = 197, 444 WL_RATE_1X3_HE10SS1 = 198, 445 WL_RATE_1X3_HE11SS1 = 199, 446 447 /* 2 Streams expanded + 1 */ 448 WL_RATE_2X3_STBC_MCS0 = 200, 449 WL_RATE_2X3_STBC_MCS1 = 201, 450 WL_RATE_2X3_STBC_MCS2 = 202, 451 WL_RATE_2X3_STBC_MCS3 = 203, 452 WL_RATE_2X3_STBC_MCS4 = 204, 453 WL_RATE_2X3_STBC_MCS5 = 205, 454 WL_RATE_2X3_STBC_MCS6 = 206, 455 WL_RATE_2X3_STBC_MCS7 = 207, 456 WL_RATE_P_2X3_STBC_MCS87 = 208, 457 WL_RATE_P_2X3_STBC_MCS88 = 209, 458 459 WL_RATE_2X3_STBC_VHT0SS1 = 200, 460 WL_RATE_2X3_STBC_VHT1SS1 = 201, 461 WL_RATE_2X3_STBC_VHT2SS1 = 202, 462 WL_RATE_2X3_STBC_VHT3SS1 = 203, 463 WL_RATE_2X3_STBC_VHT4SS1 = 204, 464 WL_RATE_2X3_STBC_VHT5SS1 = 205, 465 WL_RATE_2X3_STBC_VHT6SS1 = 206, 466 WL_RATE_2X3_STBC_VHT7SS1 = 207, 467 WL_RATE_2X3_STBC_VHT8SS1 = 208, 468 WL_RATE_2X3_STBC_VHT9SS1 = 209, 469 WL_RATE_P_2X3_STBC_VHT10SS1 = 210, 470 WL_RATE_P_2X3_STBC_VHT11SS1 = 211, 471 472 WL_RATE_2X3_SDM_MCS8 = 212, 473 WL_RATE_2X3_SDM_MCS9 = 213, 474 WL_RATE_2X3_SDM_MCS10 = 214, 475 WL_RATE_2X3_SDM_MCS11 = 215, 476 WL_RATE_2X3_SDM_MCS12 = 216, 477 WL_RATE_2X3_SDM_MCS13 = 217, 478 WL_RATE_2X3_SDM_MCS14 = 218, 479 WL_RATE_2X3_SDM_MCS15 = 219, 480 WL_RATE_P_2X3_SDM_MCS99 = 220, 481 WL_RATE_P_2X3_SDM_MCS100 = 221, 482 483 WL_RATE_2X3_VHT0SS2 = 212, 484 WL_RATE_2X3_VHT1SS2 = 213, 485 WL_RATE_2X3_VHT2SS2 = 214, 486 WL_RATE_2X3_VHT3SS2 = 215, 487 WL_RATE_2X3_VHT4SS2 = 216, 488 WL_RATE_2X3_VHT5SS2 = 217, 489 WL_RATE_2X3_VHT6SS2 = 218, 490 WL_RATE_2X3_VHT7SS2 = 219, 491 WL_RATE_2X3_VHT8SS2 = 220, 492 WL_RATE_2X3_VHT9SS2 = 221, 493 WL_RATE_P_2X3_VHT10SS2 = 222, 494 WL_RATE_P_2X3_VHT11SS2 = 223, 495 496 WL_RATE_2X3_HE0SS2 = 224, 497 WL_RATE_2X3_HE1SS2 = 225, 498 WL_RATE_2X3_HE2SS2 = 226, 499 WL_RATE_2X3_HE3SS2 = 227, 500 WL_RATE_2X3_HE4SS2 = 228, 501 WL_RATE_2X3_HE5SS2 = 229, 502 WL_RATE_2X3_HE6SS2 = 230, 503 WL_RATE_2X3_HE7SS2 = 231, 504 WL_RATE_2X3_HE8SS2 = 232, 505 WL_RATE_2X3_HE9SS2 = 233, 506 WL_RATE_2X3_HE10SS2 = 234, 507 WL_RATE_2X3_HE11SS2 = 235, 508 509 /* 3 Streams */ 510 WL_RATE_3X3_SDM_MCS16 = 236, 511 WL_RATE_3X3_SDM_MCS17 = 237, 512 WL_RATE_3X3_SDM_MCS18 = 238, 513 WL_RATE_3X3_SDM_MCS19 = 239, 514 WL_RATE_3X3_SDM_MCS20 = 240, 515 WL_RATE_3X3_SDM_MCS21 = 241, 516 WL_RATE_3X3_SDM_MCS22 = 242, 517 WL_RATE_3X3_SDM_MCS23 = 243, 518 WL_RATE_P_3X3_SDM_MCS101 = 244, 519 WL_RATE_P_3X3_SDM_MCS102 = 245, 520 521 WL_RATE_3X3_VHT0SS3 = 236, 522 WL_RATE_3X3_VHT1SS3 = 237, 523 WL_RATE_3X3_VHT2SS3 = 238, 524 WL_RATE_3X3_VHT3SS3 = 239, 525 WL_RATE_3X3_VHT4SS3 = 240, 526 WL_RATE_3X3_VHT5SS3 = 241, 527 WL_RATE_3X3_VHT6SS3 = 242, 528 WL_RATE_3X3_VHT7SS3 = 243, 529 WL_RATE_3X3_VHT8SS3 = 244, 530 WL_RATE_3X3_VHT9SS3 = 245, 531 WL_RATE_P_3X3_VHT10SS3 = 246, 532 WL_RATE_P_3X3_VHT11SS3 = 247, 533 534 WL_RATE_3X3_HE0SS3 = 248, 535 WL_RATE_3X3_HE1SS3 = 249, 536 WL_RATE_3X3_HE2SS3 = 250, 537 WL_RATE_3X3_HE3SS3 = 251, 538 WL_RATE_3X3_HE4SS3 = 252, 539 WL_RATE_3X3_HE5SS3 = 253, 540 WL_RATE_3X3_HE6SS3 = 254, 541 WL_RATE_3X3_HE7SS3 = 255, 542 WL_RATE_3X3_HE8SS3 = 256, 543 WL_RATE_3X3_HE9SS3 = 257, 544 WL_RATE_3X3_HE10SS3 = 258, 545 WL_RATE_3X3_HE11SS3 = 259, 546 547 /**************************** 548 * TX Beamforming, 3 chains * 549 **************************** 550 */ 551 552 /* 1 Stream expanded + 2 */ 553 WL_RATE_1X3_TXBF_OFDM_6 = 260, 554 WL_RATE_1X3_TXBF_OFDM_9 = 261, 555 WL_RATE_1X3_TXBF_OFDM_12 = 262, 556 WL_RATE_1X3_TXBF_OFDM_18 = 263, 557 WL_RATE_1X3_TXBF_OFDM_24 = 264, 558 WL_RATE_1X3_TXBF_OFDM_36 = 265, 559 WL_RATE_1X3_TXBF_OFDM_48 = 266, 560 WL_RATE_1X3_TXBF_OFDM_54 = 267, 561 562 WL_RATE_1X3_TXBF_MCS0 = 268, 563 WL_RATE_1X3_TXBF_MCS1 = 269, 564 WL_RATE_1X3_TXBF_MCS2 = 270, 565 WL_RATE_1X3_TXBF_MCS3 = 271, 566 WL_RATE_1X3_TXBF_MCS4 = 272, 567 WL_RATE_1X3_TXBF_MCS5 = 273, 568 WL_RATE_1X3_TXBF_MCS6 = 274, 569 WL_RATE_1X3_TXBF_MCS7 = 275, 570 WL_RATE_P_1X3_TXBF_MCS87 = 276, 571 WL_RATE_P_1X3_TXBF_MCS88 = 277, 572 573 WL_RATE_1X3_TXBF_VHT0SS1 = 268, 574 WL_RATE_1X3_TXBF_VHT1SS1 = 269, 575 WL_RATE_1X3_TXBF_VHT2SS1 = 270, 576 WL_RATE_1X3_TXBF_VHT3SS1 = 271, 577 WL_RATE_1X3_TXBF_VHT4SS1 = 272, 578 WL_RATE_1X3_TXBF_VHT5SS1 = 273, 579 WL_RATE_1X3_TXBF_VHT6SS1 = 274, 580 WL_RATE_1X3_TXBF_VHT7SS1 = 275, 581 WL_RATE_1X3_TXBF_VHT8SS1 = 276, 582 WL_RATE_1X3_TXBF_VHT9SS1 = 277, 583 WL_RATE_P_1X3_TXBF_VHT10SS1 = 278, 584 WL_RATE_P_1X3_TXBF_VHT11SS1 = 279, 585 586 WL_RATE_1X3_TXBF_HE0SS1 = 280, 587 WL_RATE_1X3_TXBF_HE1SS1 = 281, 588 WL_RATE_1X3_TXBF_HE2SS1 = 282, 589 WL_RATE_1X3_TXBF_HE3SS1 = 283, 590 WL_RATE_1X3_TXBF_HE4SS1 = 284, 591 WL_RATE_1X3_TXBF_HE5SS1 = 285, 592 WL_RATE_1X3_TXBF_HE6SS1 = 286, 593 WL_RATE_1X3_TXBF_HE7SS1 = 287, 594 WL_RATE_1X3_TXBF_HE8SS1 = 288, 595 WL_RATE_1X3_TXBF_HE9SS1 = 289, 596 WL_RATE_1X3_TXBF_HE10SS1 = 290, 597 WL_RATE_1X3_TXBF_HE11SS1 = 291, 598 599 /* 2 Streams expanded + 1 */ 600 WL_RATE_2X3_TXBF_SDM_MCS8 = 292, 601 WL_RATE_2X3_TXBF_SDM_MCS9 = 293, 602 WL_RATE_2X3_TXBF_SDM_MCS10 = 294, 603 WL_RATE_2X3_TXBF_SDM_MCS11 = 295, 604 WL_RATE_2X3_TXBF_SDM_MCS12 = 296, 605 WL_RATE_2X3_TXBF_SDM_MCS13 = 297, 606 WL_RATE_2X3_TXBF_SDM_MCS14 = 298, 607 WL_RATE_2X3_TXBF_SDM_MCS15 = 299, 608 WL_RATE_P_2X3_TXBF_SDM_MCS99 = 300, 609 WL_RATE_P_2X3_TXBF_SDM_MCS100 = 301, 610 611 WL_RATE_2X3_TXBF_VHT0SS2 = 292, 612 WL_RATE_2X3_TXBF_VHT1SS2 = 293, 613 WL_RATE_2X3_TXBF_VHT2SS2 = 294, 614 WL_RATE_2X3_TXBF_VHT3SS2 = 295, 615 WL_RATE_2X3_TXBF_VHT4SS2 = 296, 616 WL_RATE_2X3_TXBF_VHT5SS2 = 297, 617 WL_RATE_2X3_TXBF_VHT6SS2 = 298, 618 WL_RATE_2X3_TXBF_VHT7SS2 = 299, 619 WL_RATE_2X3_TXBF_VHT8SS2 = 300, 620 WL_RATE_2X3_TXBF_VHT9SS2 = 301, 621 WL_RATE_P_2X3_TXBF_VHT10SS2 = 302, 622 WL_RATE_P_2X3_TXBF_VHT11SS2 = 303, 623 624 WL_RATE_2X3_TXBF_HE0SS2 = 304, 625 WL_RATE_2X3_TXBF_HE1SS2 = 305, 626 WL_RATE_2X3_TXBF_HE2SS2 = 306, 627 WL_RATE_2X3_TXBF_HE3SS2 = 307, 628 WL_RATE_2X3_TXBF_HE4SS2 = 308, 629 WL_RATE_2X3_TXBF_HE5SS2 = 309, 630 WL_RATE_2X3_TXBF_HE6SS2 = 310, 631 WL_RATE_2X3_TXBF_HE7SS2 = 311, 632 WL_RATE_2X3_TXBF_HE8SS2 = 312, 633 WL_RATE_2X3_TXBF_HE9SS2 = 313, 634 WL_RATE_2X3_TXBF_HE10SS2 = 314, 635 WL_RATE_2X3_TXBF_HE11SS2 = 315, 636 637 /* 3 Streams */ 638 WL_RATE_3X3_TXBF_SDM_MCS16 = 316, 639 WL_RATE_3X3_TXBF_SDM_MCS17 = 317, 640 WL_RATE_3X3_TXBF_SDM_MCS18 = 318, 641 WL_RATE_3X3_TXBF_SDM_MCS19 = 319, 642 WL_RATE_3X3_TXBF_SDM_MCS20 = 320, 643 WL_RATE_3X3_TXBF_SDM_MCS21 = 321, 644 WL_RATE_3X3_TXBF_SDM_MCS22 = 322, 645 WL_RATE_3X3_TXBF_SDM_MCS23 = 323, 646 WL_RATE_P_3X3_TXBF_SDM_MCS101 = 324, 647 WL_RATE_P_3X3_TXBF_SDM_MCS102 = 325, 648 649 WL_RATE_3X3_TXBF_VHT0SS3 = 316, 650 WL_RATE_3X3_TXBF_VHT1SS3 = 317, 651 WL_RATE_3X3_TXBF_VHT2SS3 = 318, 652 WL_RATE_3X3_TXBF_VHT3SS3 = 319, 653 WL_RATE_3X3_TXBF_VHT4SS3 = 320, 654 WL_RATE_3X3_TXBF_VHT5SS3 = 321, 655 WL_RATE_3X3_TXBF_VHT6SS3 = 322, 656 WL_RATE_3X3_TXBF_VHT7SS3 = 323, 657 WL_RATE_3X3_TXBF_VHT8SS3 = 324, 658 WL_RATE_3X3_TXBF_VHT9SS3 = 325, 659 WL_RATE_P_3X3_TXBF_VHT10SS3 = 326, 660 WL_RATE_P_3X3_TXBF_VHT11SS3 = 327, 661 662 WL_RATE_3X3_TXBF_HE0SS3 = 328, 663 WL_RATE_3X3_TXBF_HE1SS3 = 329, 664 WL_RATE_3X3_TXBF_HE2SS3 = 330, 665 WL_RATE_3X3_TXBF_HE3SS3 = 331, 666 WL_RATE_3X3_TXBF_HE4SS3 = 332, 667 WL_RATE_3X3_TXBF_HE5SS3 = 333, 668 WL_RATE_3X3_TXBF_HE6SS3 = 334, 669 WL_RATE_3X3_TXBF_HE7SS3 = 335, 670 WL_RATE_3X3_TXBF_HE8SS3 = 336, 671 WL_RATE_3X3_TXBF_HE9SS3 = 337, 672 WL_RATE_3X3_TXBF_HE10SS3 = 338, 673 WL_RATE_3X3_TXBF_HE11SS3 = 339, 674 675 /************ 676 * 4 chains * 677 ************ 678 */ 679 680 /* 1 Stream expanded + 3 */ 681 WL_RATE_1X4_DSSS_1 = 340, 682 WL_RATE_1X4_DSSS_2 = 341, 683 WL_RATE_1X4_DSSS_5_5 = 342, 684 WL_RATE_1X4_DSSS_11 = 343, 685 686 WL_RATE_1X4_CDD_OFDM_6 = 344, 687 WL_RATE_1X4_CDD_OFDM_9 = 345, 688 WL_RATE_1X4_CDD_OFDM_12 = 346, 689 WL_RATE_1X4_CDD_OFDM_18 = 347, 690 WL_RATE_1X4_CDD_OFDM_24 = 348, 691 WL_RATE_1X4_CDD_OFDM_36 = 349, 692 WL_RATE_1X4_CDD_OFDM_48 = 350, 693 WL_RATE_1X4_CDD_OFDM_54 = 351, 694 695 WL_RATE_1X4_CDD_MCS0 = 352, 696 WL_RATE_1X4_CDD_MCS1 = 353, 697 WL_RATE_1X4_CDD_MCS2 = 354, 698 WL_RATE_1X4_CDD_MCS3 = 355, 699 WL_RATE_1X4_CDD_MCS4 = 356, 700 WL_RATE_1X4_CDD_MCS5 = 357, 701 WL_RATE_1X4_CDD_MCS6 = 358, 702 WL_RATE_1X4_CDD_MCS7 = 359, 703 WL_RATE_P_1X4_CDD_MCS87 = 360, 704 WL_RATE_P_1X4_CDD_MCS88 = 361, 705 706 WL_RATE_1X4_VHT0SS1 = 352, 707 WL_RATE_1X4_VHT1SS1 = 353, 708 WL_RATE_1X4_VHT2SS1 = 354, 709 WL_RATE_1X4_VHT3SS1 = 355, 710 WL_RATE_1X4_VHT4SS1 = 356, 711 WL_RATE_1X4_VHT5SS1 = 357, 712 WL_RATE_1X4_VHT6SS1 = 358, 713 WL_RATE_1X4_VHT7SS1 = 359, 714 WL_RATE_1X4_VHT8SS1 = 360, 715 WL_RATE_1X4_VHT9SS1 = 361, 716 WL_RATE_P_1X4_VHT10SS1 = 362, 717 WL_RATE_P_1X4_VHT11SS1 = 363, 718 719 WL_RATE_1X4_HE0SS1 = 364, 720 WL_RATE_1X4_HE1SS1 = 365, 721 WL_RATE_1X4_HE2SS1 = 366, 722 WL_RATE_1X4_HE3SS1 = 367, 723 WL_RATE_1X4_HE4SS1 = 368, 724 WL_RATE_1X4_HE5SS1 = 369, 725 WL_RATE_1X4_HE6SS1 = 370, 726 WL_RATE_1X4_HE7SS1 = 371, 727 WL_RATE_1X4_HE8SS1 = 372, 728 WL_RATE_1X4_HE9SS1 = 373, 729 WL_RATE_1X4_HE10SS1 = 374, 730 WL_RATE_1X4_HE11SS1 = 375, 731 732 /* 2 Streams expanded + 2 */ 733 WL_RATE_2X4_STBC_MCS0 = 376, 734 WL_RATE_2X4_STBC_MCS1 = 377, 735 WL_RATE_2X4_STBC_MCS2 = 378, 736 WL_RATE_2X4_STBC_MCS3 = 379, 737 WL_RATE_2X4_STBC_MCS4 = 380, 738 WL_RATE_2X4_STBC_MCS5 = 381, 739 WL_RATE_2X4_STBC_MCS6 = 382, 740 WL_RATE_2X4_STBC_MCS7 = 383, 741 WL_RATE_P_2X4_STBC_MCS87 = 384, 742 WL_RATE_P_2X4_STBC_MCS88 = 385, 743 744 WL_RATE_2X4_STBC_VHT0SS1 = 376, 745 WL_RATE_2X4_STBC_VHT1SS1 = 377, 746 WL_RATE_2X4_STBC_VHT2SS1 = 378, 747 WL_RATE_2X4_STBC_VHT3SS1 = 379, 748 WL_RATE_2X4_STBC_VHT4SS1 = 380, 749 WL_RATE_2X4_STBC_VHT5SS1 = 381, 750 WL_RATE_2X4_STBC_VHT6SS1 = 382, 751 WL_RATE_2X4_STBC_VHT7SS1 = 383, 752 WL_RATE_2X4_STBC_VHT8SS1 = 384, 753 WL_RATE_2X4_STBC_VHT9SS1 = 385, 754 WL_RATE_P_2X4_STBC_VHT10SS1 = 386, 755 WL_RATE_P_2X4_STBC_VHT11SS1 = 387, 756 757 WL_RATE_2X4_SDM_MCS8 = 388, 758 WL_RATE_2X4_SDM_MCS9 = 389, 759 WL_RATE_2X4_SDM_MCS10 = 390, 760 WL_RATE_2X4_SDM_MCS11 = 391, 761 WL_RATE_2X4_SDM_MCS12 = 392, 762 WL_RATE_2X4_SDM_MCS13 = 393, 763 WL_RATE_2X4_SDM_MCS14 = 394, 764 WL_RATE_2X4_SDM_MCS15 = 395, 765 WL_RATE_P_2X4_SDM_MCS99 = 396, 766 WL_RATE_P_2X4_SDM_MCS100 = 397, 767 768 WL_RATE_2X4_VHT0SS2 = 388, 769 WL_RATE_2X4_VHT1SS2 = 389, 770 WL_RATE_2X4_VHT2SS2 = 390, 771 WL_RATE_2X4_VHT3SS2 = 391, 772 WL_RATE_2X4_VHT4SS2 = 392, 773 WL_RATE_2X4_VHT5SS2 = 393, 774 WL_RATE_2X4_VHT6SS2 = 394, 775 WL_RATE_2X4_VHT7SS2 = 395, 776 WL_RATE_2X4_VHT8SS2 = 396, 777 WL_RATE_2X4_VHT9SS2 = 397, 778 WL_RATE_P_2X4_VHT10SS2 = 398, 779 WL_RATE_P_2X4_VHT11SS2 = 399, 780 781 WL_RATE_2X4_HE0SS2 = 400, 782 WL_RATE_2X4_HE1SS2 = 401, 783 WL_RATE_2X4_HE2SS2 = 402, 784 WL_RATE_2X4_HE3SS2 = 403, 785 WL_RATE_2X4_HE4SS2 = 404, 786 WL_RATE_2X4_HE5SS2 = 405, 787 WL_RATE_2X4_HE6SS2 = 406, 788 WL_RATE_2X4_HE7SS2 = 407, 789 WL_RATE_2X4_HE8SS2 = 408, 790 WL_RATE_2X4_HE9SS2 = 409, 791 WL_RATE_2X4_HE10SS2 = 410, 792 WL_RATE_2X4_HE11SS2 = 411, 793 794 /* 3 Streams expanded + 1 */ 795 WL_RATE_3X4_SDM_MCS16 = 412, 796 WL_RATE_3X4_SDM_MCS17 = 413, 797 WL_RATE_3X4_SDM_MCS18 = 414, 798 WL_RATE_3X4_SDM_MCS19 = 415, 799 WL_RATE_3X4_SDM_MCS20 = 416, 800 WL_RATE_3X4_SDM_MCS21 = 417, 801 WL_RATE_3X4_SDM_MCS22 = 418, 802 WL_RATE_3X4_SDM_MCS23 = 419, 803 WL_RATE_P_3X4_SDM_MCS101 = 420, 804 WL_RATE_P_3X4_SDM_MCS102 = 421, 805 806 WL_RATE_3X4_VHT0SS3 = 412, 807 WL_RATE_3X4_VHT1SS3 = 413, 808 WL_RATE_3X4_VHT2SS3 = 414, 809 WL_RATE_3X4_VHT3SS3 = 415, 810 WL_RATE_3X4_VHT4SS3 = 416, 811 WL_RATE_3X4_VHT5SS3 = 417, 812 WL_RATE_3X4_VHT6SS3 = 418, 813 WL_RATE_3X4_VHT7SS3 = 419, 814 WL_RATE_3X4_VHT8SS3 = 420, 815 WL_RATE_3X4_VHT9SS3 = 421, 816 WL_RATE_P_3X4_VHT10SS3 = 422, 817 WL_RATE_P_3X4_VHT11SS3 = 423, 818 819 WL_RATE_3X4_HE0SS3 = 424, 820 WL_RATE_3X4_HE1SS3 = 425, 821 WL_RATE_3X4_HE2SS3 = 426, 822 WL_RATE_3X4_HE3SS3 = 427, 823 WL_RATE_3X4_HE4SS3 = 428, 824 WL_RATE_3X4_HE5SS3 = 429, 825 WL_RATE_3X4_HE6SS3 = 430, 826 WL_RATE_3X4_HE7SS3 = 431, 827 WL_RATE_3X4_HE8SS3 = 432, 828 WL_RATE_3X4_HE9SS3 = 433, 829 WL_RATE_3X4_HE10SS3 = 434, 830 WL_RATE_3X4_HE11SS3 = 435, 831 832 /* 4 Streams */ 833 WL_RATE_4X4_SDM_MCS24 = 436, 834 WL_RATE_4X4_SDM_MCS25 = 437, 835 WL_RATE_4X4_SDM_MCS26 = 438, 836 WL_RATE_4X4_SDM_MCS27 = 439, 837 WL_RATE_4X4_SDM_MCS28 = 440, 838 WL_RATE_4X4_SDM_MCS29 = 441, 839 WL_RATE_4X4_SDM_MCS30 = 442, 840 WL_RATE_4X4_SDM_MCS31 = 443, 841 WL_RATE_P_4X4_SDM_MCS103 = 444, 842 WL_RATE_P_4X4_SDM_MCS104 = 445, 843 844 WL_RATE_4X4_VHT0SS4 = 436, 845 WL_RATE_4X4_VHT1SS4 = 437, 846 WL_RATE_4X4_VHT2SS4 = 438, 847 WL_RATE_4X4_VHT3SS4 = 439, 848 WL_RATE_4X4_VHT4SS4 = 440, 849 WL_RATE_4X4_VHT5SS4 = 441, 850 WL_RATE_4X4_VHT6SS4 = 442, 851 WL_RATE_4X4_VHT7SS4 = 443, 852 WL_RATE_4X4_VHT8SS4 = 444, 853 WL_RATE_4X4_VHT9SS4 = 445, 854 WL_RATE_P_4X4_VHT10SS4 = 446, 855 WL_RATE_P_4X4_VHT11SS4 = 447, 856 857 WL_RATE_4X4_HE0SS4 = 448, 858 WL_RATE_4X4_HE1SS4 = 449, 859 WL_RATE_4X4_HE2SS4 = 450, 860 WL_RATE_4X4_HE3SS4 = 451, 861 WL_RATE_4X4_HE4SS4 = 452, 862 WL_RATE_4X4_HE5SS4 = 453, 863 WL_RATE_4X4_HE6SS4 = 454, 864 WL_RATE_4X4_HE7SS4 = 455, 865 WL_RATE_4X4_HE8SS4 = 456, 866 WL_RATE_4X4_HE9SS4 = 457, 867 WL_RATE_4X4_HE10SS4 = 458, 868 WL_RATE_4X4_HE11SS4 = 459, 869 870 /**************************** 871 * TX Beamforming, 4 chains * 872 **************************** 873 */ 874 875 /* 1 Stream expanded + 3 */ 876 WL_RATE_1X4_TXBF_OFDM_6 = 460, 877 WL_RATE_1X4_TXBF_OFDM_9 = 461, 878 WL_RATE_1X4_TXBF_OFDM_12 = 462, 879 WL_RATE_1X4_TXBF_OFDM_18 = 463, 880 WL_RATE_1X4_TXBF_OFDM_24 = 464, 881 WL_RATE_1X4_TXBF_OFDM_36 = 465, 882 WL_RATE_1X4_TXBF_OFDM_48 = 466, 883 WL_RATE_1X4_TXBF_OFDM_54 = 467, 884 885 WL_RATE_1X4_TXBF_MCS0 = 468, 886 WL_RATE_1X4_TXBF_MCS1 = 469, 887 WL_RATE_1X4_TXBF_MCS2 = 470, 888 WL_RATE_1X4_TXBF_MCS3 = 471, 889 WL_RATE_1X4_TXBF_MCS4 = 472, 890 WL_RATE_1X4_TXBF_MCS5 = 473, 891 WL_RATE_1X4_TXBF_MCS6 = 474, 892 WL_RATE_1X4_TXBF_MCS7 = 475, 893 WL_RATE_P_1X4_TXBF_MCS87 = 476, 894 WL_RATE_P_1X4_TXBF_MCS88 = 477, 895 896 WL_RATE_1X4_TXBF_VHT0SS1 = 468, 897 WL_RATE_1X4_TXBF_VHT1SS1 = 469, 898 WL_RATE_1X4_TXBF_VHT2SS1 = 470, 899 WL_RATE_1X4_TXBF_VHT3SS1 = 471, 900 WL_RATE_1X4_TXBF_VHT4SS1 = 472, 901 WL_RATE_1X4_TXBF_VHT5SS1 = 473, 902 WL_RATE_1X4_TXBF_VHT6SS1 = 474, 903 WL_RATE_1X4_TXBF_VHT7SS1 = 475, 904 WL_RATE_1X4_TXBF_VHT8SS1 = 476, 905 WL_RATE_1X4_TXBF_VHT9SS1 = 477, 906 WL_RATE_P_1X4_TXBF_VHT10SS1 = 478, 907 WL_RATE_P_1X4_TXBF_VHT11SS1 = 479, 908 909 WL_RATE_1X4_TXBF_HE0SS1 = 480, 910 WL_RATE_1X4_TXBF_HE1SS1 = 481, 911 WL_RATE_1X4_TXBF_HE2SS1 = 482, 912 WL_RATE_1X4_TXBF_HE3SS1 = 483, 913 WL_RATE_1X4_TXBF_HE4SS1 = 484, 914 WL_RATE_1X4_TXBF_HE5SS1 = 485, 915 WL_RATE_1X4_TXBF_HE6SS1 = 486, 916 WL_RATE_1X4_TXBF_HE7SS1 = 487, 917 WL_RATE_1X4_TXBF_HE8SS1 = 488, 918 WL_RATE_1X4_TXBF_HE9SS1 = 489, 919 WL_RATE_1X4_TXBF_HE10SS1 = 490, 920 WL_RATE_1X4_TXBF_HE11SS1 = 491, 921 922 /* 2 Streams expanded + 2 */ 923 WL_RATE_2X4_TXBF_SDM_MCS8 = 492, 924 WL_RATE_2X4_TXBF_SDM_MCS9 = 493, 925 WL_RATE_2X4_TXBF_SDM_MCS10 = 494, 926 WL_RATE_2X4_TXBF_SDM_MCS11 = 495, 927 WL_RATE_2X4_TXBF_SDM_MCS12 = 496, 928 WL_RATE_2X4_TXBF_SDM_MCS13 = 497, 929 WL_RATE_2X4_TXBF_SDM_MCS14 = 498, 930 WL_RATE_2X4_TXBF_SDM_MCS15 = 499, 931 WL_RATE_P_2X4_TXBF_SDM_MCS99 = 500, 932 WL_RATE_P_2X4_TXBF_SDM_MCS100 = 501, 933 934 WL_RATE_2X4_TXBF_VHT0SS2 = 492, 935 WL_RATE_2X4_TXBF_VHT1SS2 = 493, 936 WL_RATE_2X4_TXBF_VHT2SS2 = 494, 937 WL_RATE_2X4_TXBF_VHT3SS2 = 495, 938 WL_RATE_2X4_TXBF_VHT4SS2 = 496, 939 WL_RATE_2X4_TXBF_VHT5SS2 = 497, 940 WL_RATE_2X4_TXBF_VHT6SS2 = 498, 941 WL_RATE_2X4_TXBF_VHT7SS2 = 499, 942 WL_RATE_2X4_TXBF_VHT8SS2 = 500, 943 WL_RATE_2X4_TXBF_VHT9SS2 = 501, 944 WL_RATE_P_2X4_TXBF_VHT10SS2 = 502, 945 WL_RATE_P_2X4_TXBF_VHT11SS2 = 503, 946 947 WL_RATE_2X4_TXBF_HE0SS2 = 504, 948 WL_RATE_2X4_TXBF_HE1SS2 = 505, 949 WL_RATE_2X4_TXBF_HE2SS2 = 506, 950 WL_RATE_2X4_TXBF_HE3SS2 = 507, 951 WL_RATE_2X4_TXBF_HE4SS2 = 508, 952 WL_RATE_2X4_TXBF_HE5SS2 = 509, 953 WL_RATE_2X4_TXBF_HE6SS2 = 510, 954 WL_RATE_2X4_TXBF_HE7SS2 = 511, 955 WL_RATE_2X4_TXBF_HE8SS2 = 512, 956 WL_RATE_2X4_TXBF_HE9SS2 = 513, 957 WL_RATE_2X4_TXBF_HE10SS2 = 514, 958 WL_RATE_2X4_TXBF_HE11SS2 = 515, 959 960 /* 3 Streams expanded + 1 */ 961 WL_RATE_3X4_TXBF_SDM_MCS16 = 516, 962 WL_RATE_3X4_TXBF_SDM_MCS17 = 517, 963 WL_RATE_3X4_TXBF_SDM_MCS18 = 518, 964 WL_RATE_3X4_TXBF_SDM_MCS19 = 519, 965 WL_RATE_3X4_TXBF_SDM_MCS20 = 520, 966 WL_RATE_3X4_TXBF_SDM_MCS21 = 521, 967 WL_RATE_3X4_TXBF_SDM_MCS22 = 522, 968 WL_RATE_3X4_TXBF_SDM_MCS23 = 523, 969 WL_RATE_P_3X4_TXBF_SDM_MCS101 = 524, 970 WL_RATE_P_3X4_TXBF_SDM_MCS102 = 525, 971 972 WL_RATE_3X4_TXBF_VHT0SS3 = 516, 973 WL_RATE_3X4_TXBF_VHT1SS3 = 517, 974 WL_RATE_3X4_TXBF_VHT2SS3 = 518, 975 WL_RATE_3X4_TXBF_VHT3SS3 = 519, 976 WL_RATE_3X4_TXBF_VHT4SS3 = 520, 977 WL_RATE_3X4_TXBF_VHT5SS3 = 521, 978 WL_RATE_3X4_TXBF_VHT6SS3 = 522, 979 WL_RATE_3X4_TXBF_VHT7SS3 = 523, 980 WL_RATE_P_3X4_TXBF_VHT8SS3 = 524, 981 WL_RATE_P_3X4_TXBF_VHT9SS3 = 525, 982 WL_RATE_P_3X4_TXBF_VHT10SS3 = 526, 983 WL_RATE_P_3X4_TXBF_VHT11SS3 = 527, 984 985 WL_RATE_3X4_TXBF_HE0SS3 = 528, 986 WL_RATE_3X4_TXBF_HE1SS3 = 529, 987 WL_RATE_3X4_TXBF_HE2SS3 = 530, 988 WL_RATE_3X4_TXBF_HE3SS3 = 531, 989 WL_RATE_3X4_TXBF_HE4SS3 = 532, 990 WL_RATE_3X4_TXBF_HE5SS3 = 533, 991 WL_RATE_3X4_TXBF_HE6SS3 = 534, 992 WL_RATE_3X4_TXBF_HE7SS3 = 535, 993 WL_RATE_3X4_TXBF_HE8SS3 = 536, 994 WL_RATE_3X4_TXBF_HE9SS3 = 537, 995 WL_RATE_3X4_TXBF_HE10SS3 = 538, 996 WL_RATE_3X4_TXBF_HE11SS3 = 539, 997 998 /* 4 Streams */ 999 WL_RATE_4X4_TXBF_SDM_MCS24 = 540, 1000 WL_RATE_4X4_TXBF_SDM_MCS25 = 541, 1001 WL_RATE_4X4_TXBF_SDM_MCS26 = 542, 1002 WL_RATE_4X4_TXBF_SDM_MCS27 = 543, 1003 WL_RATE_4X4_TXBF_SDM_MCS28 = 544, 1004 WL_RATE_4X4_TXBF_SDM_MCS29 = 545, 1005 WL_RATE_4X4_TXBF_SDM_MCS30 = 546, 1006 WL_RATE_4X4_TXBF_SDM_MCS31 = 547, 1007 WL_RATE_P_4X4_TXBF_SDM_MCS103 = 548, 1008 WL_RATE_P_4X4_TXBF_SDM_MCS104 = 549, 1009 1010 WL_RATE_4X4_TXBF_VHT0SS4 = 540, 1011 WL_RATE_4X4_TXBF_VHT1SS4 = 541, 1012 WL_RATE_4X4_TXBF_VHT2SS4 = 542, 1013 WL_RATE_4X4_TXBF_VHT3SS4 = 543, 1014 WL_RATE_4X4_TXBF_VHT4SS4 = 544, 1015 WL_RATE_4X4_TXBF_VHT5SS4 = 545, 1016 WL_RATE_4X4_TXBF_VHT6SS4 = 546, 1017 WL_RATE_4X4_TXBF_VHT7SS4 = 547, 1018 WL_RATE_P_4X4_TXBF_VHT8SS4 = 548, 1019 WL_RATE_P_4X4_TXBF_VHT9SS4 = 549, 1020 WL_RATE_P_4X4_TXBF_VHT10SS4 = 550, 1021 WL_RATE_P_4X4_TXBF_VHT11SS4 = 551, 1022 1023 WL_RATE_4X4_TXBF_HE0SS4 = 552, 1024 WL_RATE_4X4_TXBF_HE1SS4 = 553, 1025 WL_RATE_4X4_TXBF_HE2SS4 = 554, 1026 WL_RATE_4X4_TXBF_HE3SS4 = 555, 1027 WL_RATE_4X4_TXBF_HE4SS4 = 556, 1028 WL_RATE_4X4_TXBF_HE5SS4 = 557, 1029 WL_RATE_4X4_TXBF_HE6SS4 = 558, 1030 WL_RATE_4X4_TXBF_HE7SS4 = 559, 1031 WL_RATE_4X4_TXBF_HE8SS4 = 560, 1032 WL_RATE_4X4_TXBF_HE9SS4 = 561, 1033 WL_RATE_4X4_TXBF_HE10SS4 = 562, 1034 WL_RATE_4X4_TXBF_HE11SS4 = 563 1035 } clm_rates_t; 1036 1037 /* Number of rate codes */ 1038 #define WL_NUMRATES 564 1039 1040 /* This enum maps 802.11ax OFDMA (RU) 'rates' to a CLM index */ 1041 1042 typedef enum clm_ru_rates { 1043 /* RU26 OFDMA UL rates */ 1044 WL_RU_RATE_1X1_26SS1 = 0, 1045 WL_RU_RATE_1X2_26SS1 = 1, 1046 WL_RU_RATE_2X2_26SS2 = 2, 1047 WL_RU_RATE_1X2_TXBF_26SS1 = 3, 1048 WL_RU_RATE_2X2_TXBF_26SS2 = 4, 1049 WL_RU_RATE_1X3_26SS1 = 5, 1050 WL_RU_RATE_2X3_26SS2 = 6, 1051 WL_RU_RATE_3X3_26SS3 = 7, 1052 WL_RU_RATE_1X3_TXBF_26SS1 = 8, 1053 WL_RU_RATE_2X3_TXBF_26SS2 = 9, 1054 WL_RU_RATE_3X3_TXBF_26SS3 = 10, 1055 WL_RU_RATE_1X4_26SS1 = 11, 1056 WL_RU_RATE_2X4_26SS2 = 12, 1057 WL_RU_RATE_3X4_26SS3 = 13, 1058 WL_RU_RATE_4X4_26SS4 = 14, 1059 WL_RU_RATE_1X4_TXBF_26SS1 = 15, 1060 WL_RU_RATE_2X4_TXBF_26SS2 = 16, 1061 WL_RU_RATE_3X4_TXBF_26SS3 = 17, 1062 WL_RU_RATE_4X4_TXBF_26SS4 = 18, 1063 1064 /* RU52 OFDMA UL rates */ 1065 WL_RU_RATE_1X1_52SS1 = 19, 1066 WL_RU_RATE_1X2_52SS1 = 20, 1067 WL_RU_RATE_2X2_52SS2 = 21, 1068 WL_RU_RATE_1X2_TXBF_52SS1 = 22, 1069 WL_RU_RATE_2X2_TXBF_52SS2 = 23, 1070 WL_RU_RATE_1X3_52SS1 = 24, 1071 WL_RU_RATE_2X3_52SS2 = 25, 1072 WL_RU_RATE_3X3_52SS3 = 26, 1073 WL_RU_RATE_1X3_TXBF_52SS1 = 27, 1074 WL_RU_RATE_2X3_TXBF_52SS2 = 28, 1075 WL_RU_RATE_3X3_TXBF_52SS3 = 29, 1076 WL_RU_RATE_1X4_52SS1 = 30, 1077 WL_RU_RATE_2X4_52SS2 = 31, 1078 WL_RU_RATE_3X4_52SS3 = 32, 1079 WL_RU_RATE_4X4_52SS4 = 33, 1080 WL_RU_RATE_1X4_TXBF_52SS1 = 34, 1081 WL_RU_RATE_2X4_TXBF_52SS2 = 35, 1082 WL_RU_RATE_3X4_TXBF_52SS3 = 36, 1083 WL_RU_RATE_4X4_TXBF_52SS4 = 37, 1084 1085 /* RU106 OFDMA UL rates */ 1086 WL_RU_RATE_1X1_106SS1 = 38, 1087 WL_RU_RATE_1X2_106SS1 = 39, 1088 WL_RU_RATE_2X2_106SS2 = 40, 1089 WL_RU_RATE_1X2_TXBF_106SS1 = 41, 1090 WL_RU_RATE_2X2_TXBF_106SS2 = 42, 1091 WL_RU_RATE_1X3_106SS1 = 43, 1092 WL_RU_RATE_2X3_106SS2 = 44, 1093 WL_RU_RATE_3X3_106SS3 = 45, 1094 WL_RU_RATE_1X3_TXBF_106SS1 = 46, 1095 WL_RU_RATE_2X3_TXBF_106SS2 = 47, 1096 WL_RU_RATE_3X3_TXBF_106SS3 = 48, 1097 WL_RU_RATE_1X4_106SS1 = 49, 1098 WL_RU_RATE_2X4_106SS2 = 50, 1099 WL_RU_RATE_3X4_106SS3 = 51, 1100 WL_RU_RATE_4X4_106SS4 = 52, 1101 WL_RU_RATE_1X4_TXBF_106SS1 = 53, 1102 WL_RU_RATE_2X4_TXBF_106SS2 = 54, 1103 WL_RU_RATE_3X4_TXBF_106SS3 = 55, 1104 WL_RU_RATE_4X4_TXBF_106SS4 = 56, 1105 1106 /* Upper Bound OFDMA DL 'rates' */ 1107 WL_RU_RATE_1X1_UBSS1 = 57, 1108 WL_RU_RATE_1X2_UBSS1 = 58, 1109 WL_RU_RATE_2X2_UBSS2 = 59, 1110 WL_RU_RATE_1X2_TXBF_UBSS1 = 60, 1111 WL_RU_RATE_2X2_TXBF_UBSS2 = 61, 1112 WL_RU_RATE_1X3_UBSS1 = 62, 1113 WL_RU_RATE_2X3_UBSS2 = 63, 1114 WL_RU_RATE_3X3_UBSS3 = 64, 1115 WL_RU_RATE_1X3_TXBF_UBSS1 = 65, 1116 WL_RU_RATE_2X3_TXBF_UBSS2 = 66, 1117 WL_RU_RATE_3X3_TXBF_UBSS3 = 67, 1118 WL_RU_RATE_1X4_UBSS1 = 68, 1119 WL_RU_RATE_2X4_UBSS2 = 69, 1120 WL_RU_RATE_3X4_UBSS3 = 70, 1121 WL_RU_RATE_4X4_UBSS4 = 71, 1122 WL_RU_RATE_1X4_TXBF_UBSS1 = 72, 1123 WL_RU_RATE_2X4_TXBF_UBSS2 = 73, 1124 WL_RU_RATE_3X4_TXBF_UBSS3 = 74, 1125 WL_RU_RATE_4X4_TXBF_UBSS4 = 75, 1126 1127 /* Less Upper Bound OFDMA DL 'rates' */ 1128 WL_RU_RATE_1X1_LUBSS1 = 76, 1129 WL_RU_RATE_1X2_LUBSS1 = 77, 1130 WL_RU_RATE_2X2_LUBSS2 = 78, 1131 WL_RU_RATE_1X2_TXBF_LUBSS1 = 79, 1132 WL_RU_RATE_2X2_TXBF_LUBSS2 = 80, 1133 WL_RU_RATE_1X3_LUBSS1 = 81, 1134 WL_RU_RATE_2X3_LUBSS2 = 82, 1135 WL_RU_RATE_3X3_LUBSS3 = 83, 1136 WL_RU_RATE_1X3_TXBF_LUBSS1 = 84, 1137 WL_RU_RATE_2X3_TXBF_LUBSS2 = 85, 1138 WL_RU_RATE_3X3_TXBF_LUBSS3 = 86, 1139 WL_RU_RATE_1X4_LUBSS1 = 87, 1140 WL_RU_RATE_2X4_LUBSS2 = 88, 1141 WL_RU_RATE_3X4_LUBSS3 = 89, 1142 WL_RU_RATE_4X4_LUBSS4 = 90, 1143 WL_RU_RATE_1X4_TXBF_LUBSS1 = 91, 1144 WL_RU_RATE_2X4_TXBF_LUBSS2 = 92, 1145 WL_RU_RATE_3X4_TXBF_LUBSS3 = 93, 1146 WL_RU_RATE_4X4_TXBF_LUBSS4 = 94, 1147 1148 /* RU242 OFDMA UL rates */ 1149 WL_RU_RATE_1X1_242SS1 = 95, 1150 WL_RU_RATE_1X2_242SS1 = 96, 1151 WL_RU_RATE_2X2_242SS2 = 97, 1152 WL_RU_RATE_1X2_TXBF_242SS1 = 98, 1153 WL_RU_RATE_2X2_TXBF_242SS2 = 99, 1154 WL_RU_RATE_1X3_242SS1 = 100, 1155 WL_RU_RATE_2X3_242SS2 = 101, 1156 WL_RU_RATE_3X3_242SS3 = 102, 1157 WL_RU_RATE_1X3_TXBF_242SS1 = 103, 1158 WL_RU_RATE_2X3_TXBF_242SS2 = 104, 1159 WL_RU_RATE_3X3_TXBF_242SS3 = 105, 1160 WL_RU_RATE_1X4_242SS1 = 106, 1161 WL_RU_RATE_2X4_242SS2 = 107, 1162 WL_RU_RATE_3X4_242SS3 = 108, 1163 WL_RU_RATE_4X4_242SS4 = 109, 1164 WL_RU_RATE_1X4_TXBF_242SS1 = 110, 1165 WL_RU_RATE_2X4_TXBF_242SS2 = 111, 1166 WL_RU_RATE_3X4_TXBF_242SS3 = 112, 1167 WL_RU_RATE_4X4_TXBF_242SS4 = 113, 1168 1169 /* RU484 OFDMA UL rates */ 1170 WL_RU_RATE_1X1_484SS1 = 114, 1171 WL_RU_RATE_1X2_484SS1 = 115, 1172 WL_RU_RATE_2X2_484SS2 = 116, 1173 WL_RU_RATE_1X2_TXBF_484SS1 = 117, 1174 WL_RU_RATE_2X2_TXBF_484SS2 = 118, 1175 WL_RU_RATE_1X3_484SS1 = 119, 1176 WL_RU_RATE_2X3_484SS2 = 120, 1177 WL_RU_RATE_3X3_484SS3 = 121, 1178 WL_RU_RATE_1X3_TXBF_484SS1 = 122, 1179 WL_RU_RATE_2X3_TXBF_484SS2 = 123, 1180 WL_RU_RATE_3X3_TXBF_484SS3 = 124, 1181 WL_RU_RATE_1X4_484SS1 = 125, 1182 WL_RU_RATE_2X4_484SS2 = 126, 1183 WL_RU_RATE_3X4_484SS3 = 127, 1184 WL_RU_RATE_4X4_484SS4 = 128, 1185 WL_RU_RATE_1X4_TXBF_484SS1 = 129, 1186 WL_RU_RATE_2X4_TXBF_484SS2 = 130, 1187 WL_RU_RATE_3X4_TXBF_484SS3 = 131, 1188 WL_RU_RATE_4X4_TXBF_484SS4 = 132, 1189 1190 /* RU996 OFDMA UL rates */ 1191 WL_RU_RATE_1X1_996SS1 = 133, 1192 WL_RU_RATE_1X2_996SS1 = 134, 1193 WL_RU_RATE_2X2_996SS2 = 135, 1194 WL_RU_RATE_1X2_TXBF_996SS1 = 136, 1195 WL_RU_RATE_2X2_TXBF_996SS2 = 137, 1196 WL_RU_RATE_1X3_996SS1 = 138, 1197 WL_RU_RATE_2X3_996SS2 = 139, 1198 WL_RU_RATE_3X3_996SS3 = 140, 1199 WL_RU_RATE_1X3_TXBF_996SS1 = 141, 1200 WL_RU_RATE_2X3_TXBF_996SS2 = 142, 1201 WL_RU_RATE_3X3_TXBF_996SS3 = 143, 1202 WL_RU_RATE_1X4_996SS1 = 144, 1203 WL_RU_RATE_2X4_996SS2 = 145, 1204 WL_RU_RATE_3X4_996SS3 = 146, 1205 WL_RU_RATE_4X4_996SS4 = 147, 1206 WL_RU_RATE_1X4_TXBF_996SS1 = 148, 1207 WL_RU_RATE_2X4_TXBF_996SS2 = 149, 1208 WL_RU_RATE_3X4_TXBF_996SS3 = 150, 1209 WL_RU_RATE_4X4_TXBF_996SS4 = 151 1210 } clm_ru_rates_t; 1211 1212 /* Number of OFDMA rate codes */ 1213 #define WL_RU_NUMRATES 152 1214 1215 /* MCS rates */ 1216 #define WLC_MAX_VHT_MCS 11 /**< Std VHT MCS 0-9 plus prop VHT MCS 10-11 */ 1217 #define WLC_MAX_HE_MCS 11 /**< Std HE MCS 0-11 */ 1218 #define WLC_MAX_EHT_MCS 13 /**< Std EHT MCS 0-13 */ 1219 1220 /* Convert encoded rate value in plcp header to numerical rates in 500 KHz increments */ 1221 #define OFDM_PHY2MAC_RATE(rlpt) plcp_ofdm_rate_tbl[(rlpt) & 0x7] 1222 #define CCK_PHY2MAC_RATE(signal) ((signal)/5) 1223 1224 /* 'proprietary' string should not exist in open source(OEM_ANDROID) */ 1225 /* given a proprietary MCS, get number of spatial streams */ 1226 #define GET_PROPRIETARY_11N_MCS_NSS(mcs) (1 + ((mcs) - 85) / 8) 1227 1228 #define GET_11N_MCS_NSS(mcs) ((mcs) < 32 ? (1 + ((mcs) / 8)) : \ 1229 ((mcs) == 32 ? 1 : GET_PROPRIETARY_11N_MCS_NSS(mcs))) 1230 1231 #if defined(WLPROPRIETARY_11N_RATES) /* Broadcom proprietary rate support for 11n */ 1232 #define IS_PROPRIETARY_11N_MCS(mcs) \ 1233 ((mcs) == 87 || (mcs) == 88 || (mcs) == 99 || (mcs) == 100 || (mcs) == 101 || (mcs) == 102) 1234 #define IS_PROPRIETARY_11N_SS_MCS(mcs) \ 1235 ((mcs) == 87 || (mcs) == 88) 1236 #else 1237 #define IS_PROPRIETARY_11N_MCS(mcs) FALSE 1238 #define IS_PROPRIETARY_11N_SS_MCS(mcs) FALSE /**< is proprietary HT single stream MCS */ 1239 #endif /* WLPROPRIETARY_11N_RATES */ 1240 1241 extern const uint8 plcp_ofdm_rate_tbl[]; 1242 1243 uint8 wf_get_single_stream_mcs(uint mcs); 1244 1245 /* extract NSS:MCS portions of the rspec */ 1246 #define WF_NON_HT_MCS 0x80 1247 uint8 wf_vht_plcp_to_rate(uint8 *plcp); 1248 uint8 wf_he_plcp_to_rate(uint8 *plcp, bool is_mu); 1249 uint8 wf_eht_plcp_to_rate(uint8 *plcp, bool is_mu); 1250 1251 /* convert rate from mcs to Kbps */ 1252 uint wf_mcs_to_rate(uint mcs, uint nss, uint bw, int sgi); 1253 uint wf_he_mcs_to_rate(uint mcs, uint nss, uint bw, uint gi, bool dcm); 1254 1255 uint wf_mcs_to_Ndbps(uint mcs, uint nss, uint bw); 1256 uint wf_he_mcs_to_Ndbps(uint mcs, uint nss, uint bw, bool dcm); 1257 uint32 wf_he_mcs_ru_to_ndbps(uint8 mcs, uint8 nss, bool dcm, uint8 ru_index); 1258 1259 #ifdef __cplusplus 1260 } 1261 #endif /* __cplusplus */ 1262 #endif /* _bcmwifi_rates_h_ */ 1263