WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hmac_alg_notify.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2020. All rights reserved.
3 * Description: header file of hmac_alg_notify.c.
4 * Create: 2020-7-5
5 */
6
7#ifndef __HMAC_ALG_NOTIFY_H__
8#define __HMAC_ALG_NOTIFY_H__
9
10/*****************************************************************************
11 1 其他头文件包含
12*****************************************************************************/
13#include "hmac_alg_if.h"
14#include "dmac_ext_if_hcm.h"
15#include "hmac_main.h"
16#include "hmac_vap.h"
17#ifdef _PRE_WLAN_FEATURE_SMPS
18#include "hmac_smps.h"
19#endif
20#include "hmac_thruput_test.h"
21#ifdef __cplusplus
22#if __cplusplus
23extern "C" {
24#endif
25#endif
26
27/*****************************************************************************
28 2 宏定义
29*****************************************************************************/
30/*****************************************************************************
31 7 STRUCT定义
32*****************************************************************************/
33/*****************************************************************************
34 4 全局变量声明
35*****************************************************************************/
36/*****************************************************************************
37 10 函数声明
38*****************************************************************************/
40
42
46 oal_netbuf_stru *buf);
48 const oal_netbuf_stru *buf);
49
53#ifdef _PRE_WLAN_FEATURE_ANTI_INTERF
54osal_u32 hmac_alg_anti_intf_switch(hal_to_dmac_device_stru *hal_device, oal_bool_enum_uint8 alg_enable);
55#endif
57
58#ifdef _PRE_WLAN_FEATURE_DBAC
59osal_s32 hmac_alg_dbac_pause(hmac_vap_stru *hmac_vap);
60osal_s32 hmac_alg_dbac_send_disassoc(hmac_vap_stru *hmac_vap, osal_u8 is_send);
61osal_s32 hmac_alg_dbac_resume(hal_to_dmac_device_stru *hal_device, oal_bool_enum_uint8 is_resume_channel);
62oal_bool_enum_uint8 hmac_alg_dbac_is_pause(hal_to_dmac_device_stru *hal_device);
63osal_s32 hmac_alg_update_dbac_fcs_config(hmac_vap_stru *hmac_vap);
64#endif
66
67/*****************************************************************************
68 函 数 名 : hmac_alg_tx_schedule_notify
69 功能描述 : 调用挂接到TX COMPLETE流程上的算法钩子
70*****************************************************************************/
71static INLINE__ osal_u32 hmac_alg_tx_schedule_notify(const hal_to_dmac_device_stru *hal_device, osal_u8 ac_num,
73{
74 hmac_alg_stru *alg_stru = OSAL_NULL;
75 if (osal_unlikely(hal_device == OSAL_NULL || sch_output == OSAL_NULL)) {
77 }
79 if (osal_unlikely(alg_stru->tx_schedule_func == OSAL_NULL)) {
81 }
82
83 if (ac_num >= HAL_TX_QUEUE_NUM) {
84 return OAL_FAIL;
85 }
86
87 return alg_stru->tx_schedule_func(hal_device, ac_num, sch_output);
88}
89/*****************************************************************************
90 函 数 名 : hmac_alg_tx_schedule_timer_notify
91 功能描述 : 通知调度算法更新调度灌包timer
92*****************************************************************************/
93static INLINE__ osal_u32 hmac_alg_tx_schedule_timer_notify(const hal_to_dmac_device_stru *hal_device)
94{
95 hmac_alg_stru *alg_stru = OSAL_NULL;
96 if (osal_unlikely(hal_device == OSAL_NULL)) {
98 }
102 }
103
104 return alg_stru->tx_schedule_timer_func(hal_device);
105}
106/*****************************************************************************
107 函 数 名 : hmac_alg_user_info_update_notify
108 功能描述 : 更新user info 时回调算法
109*****************************************************************************/
110static INLINE__ osal_u32 hmac_alg_user_info_update_notify(const hal_to_dmac_device_stru *hal_device,
111 hmac_user_stru *hmac_user, mac_tid_schedule_output_stru schedule_ouput, osal_u8 device_mpdu_full)
112{
113 hmac_alg_stru *alg_stru = OSAL_NULL;
114 if (osal_unlikely(hal_device == OSAL_NULL || hmac_user == OSAL_NULL)) {
116 }
118 if (osal_unlikely(alg_stru->tid_update_func == OSAL_NULL)) {
120 }
121
122 return alg_stru->user_info_update_func(hal_device, hmac_user, schedule_ouput, device_mpdu_full);
123}
124/*****************************************************************************
125 函 数 名 : hmac_alg_tid_update_notify
126 功能描述 : 更新TID队列时回调算法
127*****************************************************************************/
128static INLINE__ osal_u32 hmac_alg_tid_update_notify(hmac_tid_stru *tid, osal_u8 in_mpdu_num)
129{
130 hmac_alg_stru *alg_stru = OSAL_NULL;
131 if (osal_unlikely(tid == OSAL_NULL)) {
133 }
135 if (osal_unlikely(alg_stru->tid_update_func == OSAL_NULL)) {
137 }
138
139 return alg_stru->tid_update_func(tid, in_mpdu_num);
140}
141
142#ifdef _PRE_WLAN_FEATURE_SMPS
143/*****************************************************************************
144 函 数 名 : hmac_tx_check_mimo_rate
145 功能描述 : 更新发送描述符中的"phy tx mode 1"
146*****************************************************************************/
147static INLINE__ oal_bool_enum_uint8 hmac_tx_check_mimo_rate(osal_u8 protocol_mode, const hal_tx_txop_alg_stru *txop_alg,
148 osal_u8 data_idx)
149{
151 osal_u8 daterate = WLAN_HT_MCS_BUTT;
152 if (protocol_mode == WLAN_HT_PHY_PROTOCOL_MODE) {
153 daterate = hal_txop_alg_get_tx_dscr(txop_alg)[data_idx].nss_rate.ht_rate.ht_mcs;
154 if ((daterate >= WLAN_HT_MCS8) && (daterate < WLAN_HT_MCS_BUTT)) {
155 mimo_rate = OSAL_TRUE;
156 }
157 } else if (protocol_mode == WLAN_VHT_PHY_PROTOCOL_MODE) {
158 daterate = hal_txop_alg_get_tx_dscr(txop_alg)[data_idx].nss_rate.vht_nss_mcs.vht_mcs;
159 if (daterate > WLAN_SINGLE_NSS) {
160 mimo_rate = OSAL_TRUE;
161 }
162 } else {
163 /* 暂时不做处理 */
164 }
165
166 return mimo_rate;
167}
168
169/*****************************************************************************
170 函 数 名 : hmac_tx_update_smps_txop_alg
171 功能描述 : 更新发送描述符中的"phy tx mode 1"
172*****************************************************************************/
173static INLINE__ osal_void hmac_tx_update_smps_txop_alg(hmac_vap_stru *hmac_vap, const hmac_user_stru *hmac_user,
174 hal_tx_txop_alg_stru *txop_alg)
175{
176 osal_u8 smps = 0;
177 osal_u8 protocol_mode = 0;
178 osal_u8 mimo_rate = 0;
179 osal_u8 index = 0;
180 hal_cfg_rts_tx_param_stru hal_rts_tx_param;
181
182 smps = hmac_user_get_smps_mode(hmac_vap, hmac_user);
183
184 if (smps >= WLAN_MIB_MIMO_POWER_SAVE_MIMO) {
185 return;
186 }
187
188 if (hmac_vap->vap_mode != WLAN_VAP_MODE_BSS_AP) {
189 return;
190 }
191
192 for (index = 0; index < HAL_TX_RATE_MAX_NUM; index++) {
193 protocol_mode = hal_txop_alg_get_tx_dscr(txop_alg)[index].protocol_mode;
194 mimo_rate = hmac_tx_check_mimo_rate(protocol_mode, txop_alg, index);
195
196 if (mimo_rate == OSAL_FALSE) {
197 continue;
198 }
199
201 hal_txop_alg_get_tx_dscr(txop_alg)[index].rts_cts_protect_mode = OSAL_TRUE;
202
203 /* 设置RTS速率对应的频带 */
204 hal_rts_tx_param.band = hmac_vap->channel.band;
205
206 /* RTS[0~2]设为24Mbps */
208 hal_rts_tx_param.rate[0] = WLAN_LEGACY_OFDM_24M_BPS;
210 hal_rts_tx_param.rate[1] = WLAN_LEGACY_OFDM_24M_BPS;
212 hal_rts_tx_param.rate[2] = WLAN_LEGACY_OFDM_24M_BPS;
213
214 /* 2G的RTS[3]设为1Mbps */
215 if (hal_rts_tx_param.band == WLAN_BAND_2G) {
216 hal_rts_tx_param.protocol_mode[3] = WLAN_11B_PHY_PROTOCOL_MODE;
217 hal_rts_tx_param.rate[3] = WLAN_LONG_11B_1M_BPS;
218 }
219 /* 5G的RTS[3]设为24Mbps */
220 else {
222 hal_rts_tx_param.rate[3] = WLAN_LEGACY_OFDM_24M_BPS;
223 }
224
225 } else if (smps == WLAN_MIB_MIMO_POWER_SAVE_STATIC) {
226 hal_txop_alg_get_tx_dscr(txop_alg)[index].nss_rate.ht_rate.ht_mcs = WLAN_HT_MCS0;
227 }
228 }
229}
230#endif
231
232/*****************************************************************************
233 函 数 名 : hmac_alg_rx_notify
234 功能描述 : 调用挂接到RX流程上的算法钩子
235*****************************************************************************/
236static INLINE__ osal_void hmac_alg_rx_notify(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, oal_netbuf_stru *buf,
237 hal_rx_statistic_stru *rx_stats)
238{
239 hmac_alg_stru *alg_stru;
240 osal_u32 index;
241 if (osal_unlikely((hmac_vap == OSAL_NULL) || (hmac_user == OSAL_NULL) ||
242 (buf == OSAL_NULL) || (rx_stats == OSAL_NULL))) {
243 return;
244 }
246
247 /* 检查是否有算法注册 */
248 if (osal_unlikely(alg_stru->alg_bitmap == 0)) {
249 return;
250 }
251
253 return;
254 }
255
256 /* 调用钩子函数 */
257 for (index = HMAC_ALG_RX_START; index < HMAC_ALG_RX_NOTIFY_BUTT; index++) {
258 if (alg_stru->pa_rx_notify_func[index] != OSAL_NULL) {
259 alg_stru->pa_rx_notify_func[index](hmac_vap, hmac_user, buf, rx_stats);
260 }
261 }
262
263 return;
264}
265
266/*****************************************************************************
267 函 数 名 : hmac_alg_vap_up_notify
268 功能描述 : vap up时调用算法钩子
269*****************************************************************************/
270static INLINE__ osal_u32 hmac_alg_vap_up_notify(hmac_vap_stru *hmac_vap)
271{
272 hmac_alg_stru *alg_stru;
273 osal_u32 index;
274 if (osal_unlikely(hmac_vap == OSAL_NULL)) {
276 }
279
280 /* 检查是否有算法注册 */
281 if (alg_stru->alg_bitmap == 0) {
282 return OAL_SUCC;
283 }
284
285 /* 调用钩子函数 */
286 for (index = HMAC_ALG_VAP_UP_START; index < HMAC_ALG_VAP_UP_BUTT; index++) {
287 if (alg_stru->pa_alg_vap_up_notify_func[index] != OSAL_NULL) {
288 alg_stru->pa_alg_vap_up_notify_func[index](hmac_vap);
289 }
290 }
291
292 return OAL_SUCC;
293}
294
295/*****************************************************************************
296 函 数 名 : hmac_alg_vap_down_notify
297 功能描述 : vap down时调用算法钩子
298*****************************************************************************/
299static INLINE__ osal_u32 hmac_alg_vap_down_notify(hmac_vap_stru *hmac_vap)
300{
301 hmac_alg_stru *alg_stru;
302 osal_u32 index;
303
304 if (osal_unlikely(hmac_vap == OSAL_NULL)) {
306 }
308
309 /* 检查是否有算法注册 */
310 if (alg_stru->alg_bitmap == 0) {
311 return OAL_SUCC;
312 }
313
314 /* 调用钩子函数 */
315 for (index = HMAC_ALG_VAP_DOWN_START; index < HMAC_ALG_VAP_DOWN_BUTT; index++) {
316 if (alg_stru->pa_alg_vap_down_notify_func[index] != OSAL_NULL) {
317 alg_stru->pa_alg_vap_down_notify_func[index](hmac_vap);
318 }
319 }
320
321 return OAL_SUCC;
322}
323
324/*****************************************************************************
325 功能描述 : 算法参数同步通知,入参由调用者保证有效性
326*****************************************************************************/
327static INLINE__ osal_u32 hmac_alg_para_sync_notify(alg_param_sync_stru *para)
328{
329 osal_u32 index;
331
332 /* 检查是否有算法注册 */
333 if (alg_stru->alg_bitmap == 0) {
334 return OAL_SUCC;
335 }
336 if (osal_unlikely(para == OSAL_NULL)) {
337 return OAL_FAIL;
338 }
339
340 /* 调用钩子函数 */
341 for (index = 0; index < ALG_PARAM_SYNC_NOTIFY_BUTT; index++) {
342 if (alg_stru->alg_para_sync_notify_func[index] != OSAL_NULL) {
343 alg_stru->alg_para_sync_notify_func[index](para);
344 }
345 }
346
347 return OAL_SUCC;
348}
349
350/*****************************************************************************
351 功能描述 : 算法参数同步通知,入参由调用者保证有效性
352*****************************************************************************/
353static INLINE__ osal_u32 hmac_alg_para_cfg_notify(hmac_vap_stru *hmac_vap, frw_msg *msg)
354{
355 osal_u32 index;
356 frw_msg alg_msg = {0};
358
359 /* 检查是否有算法注册 */
360 if (alg_stru->alg_bitmap == 0) {
361 return OAL_SUCC;
362 }
363 if (osal_unlikely((hmac_vap == OSAL_NULL) || (msg == OSAL_NULL))) {
364 return OAL_FAIL;
365 }
366 cfg_msg_init(msg->data, msg->data_len, msg->rsp, msg->rsp_buf_len, &alg_msg);
367
368 /* 调用钩子函数 */
369 for (index = 0; index < ALG_PARAM_CFG_NOTIFY_BUTT; index++) {
370 if (alg_stru->alg_para_cfg_notify_func[index] != OSAL_NULL) {
371 alg_stru->alg_para_cfg_notify_func[index](hmac_vap, &alg_msg);
372 }
373 }
374
375 return OAL_SUCC;
376}
377
378/*****************************************************************************
379 功能描述 : bfee report帧速率或用户距离信息改变通知tpc算法更新功率,入参由调用者保证有效性
380*****************************************************************************/
381static INLINE__ osal_u32 hmac_bfee_report_pow_adjust_notify(hal_to_dmac_device_stru *hal_device)
382{
384
385 /* 检查是否有算法注册 */
386 if (alg_stru->alg_bitmap == 0) {
387 return OAL_SUCC;
388 }
389 if (osal_unlikely(hal_device == OSAL_NULL)) {
390 return OAL_FAIL;
391 }
392
393 /* 检查钩子函数是否注册 */
394 if (alg_stru->bfee_report_pow_adjust_notify != OSAL_NULL) {
395 alg_stru->bfee_report_pow_adjust_notify(hal_device);
396 return OAL_FAIL;
397 }
398
399 return OAL_SUCC;
400}
401
402/*****************************************************************************
403 功能描述 : 功率表更新通知TPC更新参数,入参由调用者保证有效性
404*****************************************************************************/
405static INLINE__ osal_u32 hmac_alg_pow_table_refresh_notify(hmac_vap_stru *hmac_vap)
406{
408
409 /* 检查是否有算法注册 */
410 if (alg_stru->alg_bitmap == 0) {
411 return OAL_SUCC;
412 }
413 if (osal_unlikely(hmac_vap == OSAL_NULL)) {
414 return OAL_FAIL;
415 }
416
417 /* 检查钩子函数是否注册 */
419 alg_stru->alg_pow_table_refresh_notify_func(hmac_vap);
420 return OAL_FAIL;
421 }
422
423 return OAL_SUCC;
424}
425
426/*****************************************************************************
427 功能描述 : cb更新 通知tpc算法更新cb->rssi_level,入参由调用者保证有效性
428*****************************************************************************/
429static INLINE__ osal_u32 hmac_alg_update_rssi_level_notify(hmac_vap_stru *hmac_vap, mac_tx_ctl_stru *cb,
430 hmac_user_stru *hmac_user)
431{
433
434 /* 检查是否有算法注册 */
435 if (alg_stru->alg_bitmap == 0) {
436 return OAL_SUCC;
437 }
438 if (osal_unlikely((hmac_vap == OSAL_NULL) || (cb == OSAL_NULL))) {
439 return OAL_FAIL;
440 }
441
442 /* 检查钩子函数是否注册 */
444 alg_stru->alg_update_cb_rssi_level_notify_func(hmac_vap, cb, hmac_user);
445 return OAL_SUCC;
446 }
447
448 return OAL_FAIL;
449}
450#ifdef __cplusplus
451#if __cplusplus
452}
453#endif
454#endif
455
456#endif /* end of hmac_alg_notify.h */
osal_u8 mac_alg_channel_bw_chg_type_uint8
Definition alg_common_macros_rom.h:164
@ ALG_PARAM_SYNC_NOTIFY_BUTT
Definition alg_common_macros_rom.h:455
@ OAL_FAIL
Definition common_error_code_rom.h:570
@ OAL_SUCC
Definition common_error_code_rom.h:18
@ OAL_ERR_CODE_PTR_NULL
Definition common_error_code_rom.h:34
@ THRUPUT_ALG_BYPASS
Definition dmac_ext_if_hcm.h:277
#define osal_unlikely(x)
Definition dmac_misc_type.h:12
osal_void cfg_msg_init(osal_u8 *data, osal_u32 data_len, osal_u8 *rsp, osal_u32 rsp_buf_len, frw_msg *cfg_info)
#define hal_txop_alg_get_tx_dscr(txop_alg)
Definition hal_common_ops.h:42
@ HMAC_ALG_VAP_DOWN_BUTT
Definition hmac_alg_if_struct_define.h:91
@ HMAC_ALG_VAP_DOWN_START
Definition hmac_alg_if_struct_define.h:88
@ HMAC_ALG_VAP_UP_BUTT
Definition hmac_alg_if_struct_define.h:83
@ HMAC_ALG_VAP_UP_START
Definition hmac_alg_if_struct_define.h:79
@ ALG_PARAM_CFG_NOTIFY_BUTT
Definition hmac_alg_if_struct_define.h:193
@ HMAC_ALG_RX_NOTIFY_BUTT
Definition hmac_alg_if_struct_define.h:122
@ HMAC_ALG_RX_START
Definition hmac_alg_if_struct_define.h:112
osal_u8 hmac_alg_bt_aggr_time_uint8
Definition hmac_alg_if_struct_define.h:212
osal_void hmac_alg_vap_up_hmac_to_dmac(hmac_vap_stru *mac_vap)
osal_u32 hmac_alg_cfg_btcoex_state_notify(hal_to_dmac_device_stru *hal_device, hmac_alg_bt_aggr_time_uint8 type)
osal_void * hmac_alg_get_algorithm_main(osal_void)
osal_u32 hmac_alg_del_assoc_user_notify(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user)
osal_u32 hmac_alg_rx_mgmt_notify(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, oal_netbuf_stru *buf)
osal_u32 hmac_alg_cfg_channel_notify(hmac_vap_stru *hmac_vap, mac_alg_channel_bw_chg_type_uint8 type)
osal_u32 hmac_alg_anti_intf_tbtt_handler(hmac_vap_stru *hmac_vap, hal_to_dmac_device_stru *hal_device)
osal_u32 hmac_alg_rx_cntl_notify(const hmac_vap_stru *hmac_vap, const hmac_user_stru *hmac_user, const oal_netbuf_stru *buf)
osal_u32 hmac_alg_add_assoc_user_notify(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user)
osal_u32 hmac_alg_scan_ch_complete_notify(osal_void *param)
osal_u32 hmac_scan_param_sync(const mac_scan_req_stru *scan_req_params)
osal_u8 hmac_is_thruput_enable(osal_u8 type)
osal_u8 type
Definition oal_net.h:0
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
#define INLINE__
Definition osal_list.h:25
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
#define OSAL_FALSE
Definition osal_types.h:56
#define OSAL_NULL
Definition osal_types.h:65
void osal_void
Definition osal_types.h:29
#define OSAL_TRUE
Definition osal_types.h:57
unsigned int osal_u32
Definition osal_types.h:13
Definition alg_common_rom.h:411
Definition frw_msg_rom.h:74
osal_u16 rsp_buf_len
Definition frw_msg_rom.h:80
osal_u8 * rsp
Definition frw_msg_rom.h:76
osal_u8 * data
Definition frw_msg_rom.h:75
osal_u16 data_len
Definition frw_msg_rom.h:79
Definition hal_ops_common_rom.h:330
wlan_channel_band_enum_uint8 band
Definition hal_ops_common_rom.h:335
wlan_phy_protocol_enum_uint8 protocol_mode[HAL_TX_RATE_MAX_NUM]
Definition hal_ops_common_rom.h:334
wlan_legacy_rate_value_enum_uint8 rate[HAL_TX_RATE_MAX_NUM]
Definition hal_ops_common_rom.h:331
Definition hal_common_ops_device_rom.h:886
Definition hal_ops_common_rom.h:240
Definition hmac_alg_if_struct_define.h:318
p_alg_rx_notify_func pa_rx_notify_func[HMAC_ALG_RX_NOTIFY_BUTT]
Definition hmac_alg_if_struct_define.h:321
p_alg_bfee_report_pow_adjust_notify bfee_report_pow_adjust_notify
Definition hmac_alg_if_struct_define.h:339
p_alg_tx_schedule_timer_func tx_schedule_timer_func
Definition hmac_alg_if_struct_define.h:325
p_alg_vap_up_notify_func pa_alg_vap_up_notify_func[HMAC_ALG_VAP_UP_BUTT]
Definition hmac_alg_if_struct_define.h:333
p_alg_update_cb_rssi_level_notify_func alg_update_cb_rssi_level_notify_func
Definition hmac_alg_if_struct_define.h:341
p_alg_update_tid_notify_func tid_update_func
Definition hmac_alg_if_struct_define.h:322
p_alg_tx_schedule_func tx_schedule_func
Definition hmac_alg_if_struct_define.h:324
p_alg_pow_table_refresh_notify_func alg_pow_table_refresh_notify_func
Definition hmac_alg_if_struct_define.h:340
osal_u32 alg_bitmap
Definition hmac_alg_if_struct_define.h:319
p_alg_para_sync_notify_func alg_para_sync_notify_func[ALG_PARAM_SYNC_NOTIFY_BUTT]
Definition hmac_alg_if_struct_define.h:349
p_alg_para_cfg_notify_func alg_para_cfg_notify_func[ALG_PARAM_CFG_NOTIFY_BUTT]
Definition hmac_alg_if_struct_define.h:350
p_alg_update_user_info_notify_func user_info_update_func
Definition hmac_alg_if_struct_define.h:323
p_alg_vap_down_notify_func pa_alg_vap_down_notify_func[HMAC_ALG_VAP_DOWN_BUTT]
Definition hmac_alg_if_struct_define.h:334
Definition mac_user_ext.h:463
Definition mac_user_ext.h:519
Definition mac_vap_ext.h:2019
mac_channel_stru channel
Definition mac_vap_ext.h:2032
wlan_vap_mode_enum_uint8 vap_mode
Definition mac_vap_ext.h:2056
wlan_channel_band_enum_uint8 band
Definition wlan_types_base_rom.h:260
Definition mac_device_ext.h:682
Definition dmac_ext_if_type_rom.h:195
Definition dmac_ext_if_device_rom.h:98
Definition oal_skbuff.h:82
Definition hal_ops_common_rom.h:529
@ WLAN_MIB_MIMO_POWER_SAVE_STATIC
Definition wlan_mib_type.h:242
@ WLAN_MIB_MIMO_POWER_SAVE_MIMO
Definition wlan_mib_type.h:244
@ WLAN_MIB_MIMO_POWER_SAVE_DYNAMIC
Definition wlan_mib_type.h:243
#define HAL_TX_QUEUE_NUM
Definition wlan_spec_hh503_rom.h:51
#define HAL_TX_RATE_MAX_NUM
Definition wlan_spec_hh503_rom.h:40
@ WLAN_HT_PHY_PROTOCOL_MODE
Definition wlan_spec_type_rom.h:25
@ WLAN_11B_PHY_PROTOCOL_MODE
Definition wlan_spec_type_rom.h:23
@ WLAN_VHT_PHY_PROTOCOL_MODE
Definition wlan_spec_type_rom.h:26
@ WLAN_LEGACY_OFDM_PHY_PROTOCOL_MODE
Definition wlan_spec_type_rom.h:24
@ WLAN_HT_MCS0
Definition wlan_types.h:537
@ WLAN_HT_MCS_BUTT
Definition wlan_types.h:559
#define WLAN_SINGLE_NSS
Definition wlan_types.h:24
@ WLAN_BAND_2G
Definition wlan_types_base_rom.h:92
@ WLAN_VAP_MODE_BSS_AP
Definition wlan_types_base_rom.h:82
@ WLAN_LONG_11B_1M_BPS
Definition wlan_types_base_rom.h:201
@ WLAN_LEGACY_OFDM_24M_BPS
Definition wlan_types_base_rom.h:207