WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
dmac_ext_if_rom.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: Header file of the DMAC external public interface.
4 */
5
6#ifndef DMAC_EXT_IF_ROM_H
7#define DMAC_EXT_IF_ROM_H
8
9/*****************************************************************************
10 1 其他头文件包含
11*****************************************************************************/
12#include "wlan_types_rom.h"
14#include "hal_ext_if_rom.h"
15#include "wlan_mib_rom.h"
16#include "oal_ext_if_rom.h"
17#include "mac_frame_rom.h"
20
21#ifdef __cplusplus
22#if __cplusplus
23extern "C" {
24#endif
25#endif
26
27#undef THIS_FILE_ID
28#define THIS_FILE_ID OAM_FILE_ID_DMAC_EXT_IF_ROM_H
29
30/*****************************************************************************
31 2 宏定义
32*****************************************************************************/
33#define MAC_INVALID_RX_BA_LUT_INDEX HAL_MAX_RX_BA_LUT_SIZE
34
35/* 安全加密 : bss_info 中记录AP 能力标识, WPA or WPA2 */
36#define DMAC_WPA_802_11I BIT0
37#define DMAC_RSNA_802_11I BIT1
38
39#ifdef _PRE_PLAT_FEATURE_CUSTOMIZE
40#define CUSTOM_MSG_DATA_HDR_LEN (sizeof(custom_cfgid_enum_uint32) + sizeof(osal_u32)) /* 抛往dmac侧消息头的长度 */
41#endif // #ifdef _PRE_PLAT_FEATURE_CUSTOMIZE
42
43/* DMAC CB中用于不同算法对帧进行标记 */
44#define DMAC_SCAN_MAX_AP_NUM_TO_GNSS 32
45#define GNSS_DMAC_SCAN_RESULTS_VALID_MS 5000
46#define DMAC_TX_ONE_MPDU_AMSDU_NUM_MAX 4
47#define DMAC_DEF_AP_TBTT_OFFSET 10000 /* AP的tbtt提前量(单位us) */
48
49/*****************************************************************************
50 3 枚举定义
51*****************************************************************************/
52
53/*****************************************************************************
54 7 STRUCT定义
55*****************************************************************************/
56/* frame control字段结构体 */
57typedef struct {
58 osal_s16 signal; /* 驱动接收包记录的RSSI值 */
59 osal_u8 resv[2];
61
62/* Update join req 需要配置的速率集参数 */
63typedef struct {
64 union {
66 struct {
67 osal_u8 support_11b : 1; /* 该AP是否支持11b */
68 osal_u8 support_11ag : 1; /* 该AP是否支持11ag */
69 osal_u8 ht_capable : 1; /* 是否支持ht */
70 osal_u8 vht_capable : 1; /* 是否支持vht */
72 } capable; /* 与dmac层wlan_phy_protocol_enum对应 */
73 } capable_flag;
74 osal_u8 min_rate[2]; /* 第1个存储11b协议对应的速率,第2个存储11ag协议对应的速率 */
77
84
85#define MAC_VAP_INVAILD (0x0) /* 0为vap无效 */
86#define MAC_VAP_VAILD (0x2b)
87
88#ifdef _PRE_WLAN_FEATURE_BTCOEX
89typedef struct {
90 /* 字段参考hal_one_packet_cfg_stru 部分字段需要在device侧自行获取 */
93 osal_u16 resv : 2; /* 对应原protect_coex_pri移到device */
99
101 osal_u8 rsv[3]; /* 字节对齐 */
103#endif
104
105/* dmac vap */
106typedef struct dmac_vap_tag {
107 /* -->> Public Start */
108 osal_u8 bssid[WLAN_MAC_ADDR_LEN]; /* BSSID,非MAC地址,MAC地址是mib中的auc_dot11StationID */
109
110 osal_u8 init_flag; /* vap为静态资源,标记VAP有没有被申请。DMAC OFFLOAD模式VAP被删除后过滤缓冲的帧 */
111 osal_u8 vap_id; /* 即资源池索引值 */
112
113 wlan_dmac_mib_stru *mib_info; /* mib信息(当时配置vap时,可以直接将指针值为NULL,节省空间) */
115 mac_channel_stru channel; /* vap所在的信道 */
116
117 osal_u16 user_nums; /* VAP下已挂接的用户个数 */
119 osal_u8 voice_aggr : 1; /* 该vap是否针对VO业务支持聚合 */
120 osal_u8 use_rts_threshold : 1; /* 该vap的RTS策略是否使用协议规定的RTS门限 */
124
125 /* --------- Public STA成员 Start ----------------- */
127 osal_u16 sta_aid; /* VAP为STA模式时保存AP分配给STA的AID(从响应帧获取), 取值范围1~2007;VAP为AP模式时,不用此成员变量 */
128 osal_u16 assoc_vap_id; /* VAP为STA模式时保存user(ap)的资源池索引;VAP为AP模式时,不用此成员变量 */
129#ifdef _PRE_WLAN_FEATURE_MAC_PARSE_TIM
130 osal_u16 tim_pos;
131#endif
132 /* --------- Public STA成员 End ------------------- */
133
134 /* --------- Public AP成员 Start ------------------ */
135 osal_u16 multi_user_idx; /* 组播用户ID */
136 struct osal_list_head mac_user_list_head; /* 关联用户节点双向链表,使用USER结构内的DLIST */
137 /* --------- Public AP成员 End ------------------ */
138
139 /* -->> Public End */
140
141 /* -->> Private Start */
142 /* --------- Private STA成员 Start ------------------ */
144 osal_u8 beacon_timeout_times : 7; /* sta等待beacon超时计数 */
145 osal_u8 auth_received : 1; /* 接收了auth */
146 osal_u8 assoc_rsp_received : 1; /* 接收了assoc */
147 osal_u8 keepalive_en : 1; /* vap KeepAlive功能开关: 0-关闭, 1-开启 */
148 osal_u8 is_erp : 1; /* 从hmac同步当前是否处在erp保护模式中 */
149 osal_u8 is_sta_non_erp_num : 1; /* 从hmac同步是否sta_non_erp_num,1表示大于0 */
151 osal_u8 linkloss_rate; /* linkloss比例信息,同步至device侧供算法使用 */
153 /* --------- Private STA成员 End ------------------ */
154
155 /* -->> Private End */
156
157 /* -->> Features Start */
158 osal_u8 sta_pm_close_status; /* sta 低功耗状态, 包含多个模块的低功耗控制信息 */
159 osal_u8 bcn_tout_max_cnt; /* beacon连续收不到最大睡眠次数 */
164 osal_u16 beacon_timeout; /* beacon timeout配置值 */
165 osal_u8 psm_dtim_period; /* 实际采用的dtim period */
166 osal_u16 psm_listen_interval; /* 实际采用的listen_interval */
167 osal_u8 uapsd_cap : 1; /* 保存与STA关联的AP是否支持uapsd能力信息 */
168 osal_u8 al_tx_flag : 1; /* 常发标志 */
170 osal_u8 cfg_pm_mode : 3; /* 手动挡保存的低功耗模式 */
171 osal_u8 erp_mode : 1; /* 是否处于erp保护模式 */
172 osal_u8 nodata_retransmit_flag : 1; /* null_data报文重传标志位 */
174 mac_cfg_uapsd_sta_stru sta_uapsd_cfg; /* UAPSD的配置信息 */
175 osal_s16 signal; /* 驱动接收包记录的RSSI值 */
176 osal_u16 in_tbtt_offset; /* 内部tbtt offset配置值 */
178#ifdef _PRE_WLAN_FEATURE_BTCOEX
180#endif
181 /* -->> Features End */
182
183 mac_sta_pm_handler_stru sta_pm_handler; /* sta侧pm管理结构定义 */
184
186#ifdef _PRE_WLAN_FEATURE_CHBA
187 osal_u8 chba_mode;
188 osal_u8 resv_chba[3];
189#endif
190 /* -->> HAL Start */
191 hal_tx_txop_alg_stru txop; /* 单播数据帧发送参数 */
192 hal_to_dmac_vap_stru *hal_vap; /* hal vap结构 */
193 hal_to_dmac_device_stru *hal_device; /* hal device结构体以免二次获取 */
194 /* -->> HAL End */
195
196 /* -->> Forward Start */
198 hal_tx_dscr_queue_header_stru tx_dscr_queue[HAL_TX_QUEUE_BUTT]; /* 发送描述符链表, 不区分用户,只分AC队列 */
199 /* -->> Forward End */
200
201 uintptr_t *_rom; /* ROM化后资源扩展指针 */
203
204/* DMAC与HMAC模块共用的WLAN DRX事件结构体 */
205typedef struct {
206 oal_dmac_netbuf_stru *netbuf; /* netbuf链表一个元素 */
207 osal_u16 netbuf_num; /* netbuf链表的个数 */
208 osal_u8 resv[2]; /* 2字节对齐 */
210
211/* DMAC与HMAC模块共用的WLAN CRX事件结构体 */
212typedef struct {
213 oal_dmac_netbuf_stru *netbuf; /* 指向管理帧对应的netbuf */
214 // osal_u8 *chtxt; /* Shared Key认证用的challenge text */
216
217/*
218 (1)DMAC与HMAC模块共用的CTX子类型ACTION对应的事件的结构体
219 (2)当DMAC自身产生DELBA帧时,使用该结构体向HMAC模块抛事件
220*/
221
222/* WUR更新事件参数 */
223#ifdef _PRE_WLAN_FEATURE_WUR_TX
224typedef struct {
225 mac_wur_update_source_enum_uint8 update_source;
226 osal_u8 resv;
227 osal_u16 user_idx;
228 mac_wur_param_htd_stru wur_param_htd;
229 mac_user_wur_cap_ie_stru wur_cap_ie;
230} dmac_ctx_update_wur_stru;
231#endif
232
233/* HMAC到DMAC配置同步操作 */
234typedef struct {
236 osal_u8 resv[2]; /* 预留2字节对齐 */
237 osal_u32 (*set_func)(dmac_vap_stru *dmac_vap, osal_u8 len, const osal_u8 *param);
239
240typedef struct {
241 oal_bool_enum_uint8 in_use; /* 缓存BUF是否被使用 */
242 osal_u8 num_buf; /* MPDU对应的描述符的个数 */
243 osal_u16 seq_num; /* MPDU对应的序列号 */
244 oal_dmac_netbuf_head_stru netbuf_head; /* MPDU对应的描述符首地址 */
245 osal_u32 rx_time; /* 报文被缓存的时间戳 */
247
248/* 处理MPDU的MSDU的处理状态的结构体的定义 */
249typedef struct {
250 oal_dmac_netbuf_stru *curr_netbuf; /* 当前处理的netbuf指针 */
251 osal_u8 *curr_netbuf_data; /* 当前处理的netbuf的data指针 */
252 osal_u16 submsdu_offset; /* 当前处理的submsdu的偏移量, */
253 osal_u8 msdu_nums_in_netbuf; /* 当前netbuf包含的总的msdu数目 */
254 osal_u8 procd_msdu_in_netbuf; /* 当前netbuf中已处理的msdu数目 */
255 osal_u8 netbuf_nums_in_mpdu; /* 当前MPDU的中的总的netbuf的数目 */
256 osal_u8 procd_netbuf_nums; /* 当前MPDU中已处理的netbuf的数目 */
257 osal_u8 procd_msdu_nums_in_mpdu; /* 当前MPDU中已处理的MSDU数目 */
258
261
262/* 每一个MSDU包含的内容的结构体的定义 */
263typedef struct {
264 osal_u8 sa[WLAN_MAC_ADDR_LEN]; /* MSDU发送的源地址 */
265 osal_u8 da[WLAN_MAC_ADDR_LEN]; /* MSDU接收的目的地址 */
266 osal_u8 ta[WLAN_MAC_ADDR_LEN]; /* MSDU接收的发送地址 */
268 osal_u8 resv[1];
269
270 oal_dmac_netbuf_stru *netbuf; /* MSDU对应的netbuf指针(可以使clone的netbuf) */
272
273/*****************************************************************************
274 9 OTHERS定义
275*****************************************************************************/
276#define TIME_ONE_SEC_IN_US 1000000
277
278/*****************************************************************************
279 函 数 名 : dmac_get_cb_seq_num
280 功能描述 : 根据tx control block获取对应的序列号
281*****************************************************************************/
282static INLINE__ osal_u16 dmac_get_cb_seq_num(const mac_tx_ctl_stru *tx_ctl)
283{
284 return ((mac_ieee80211_frame_stru *)((osal_u8 *)tx_ctl + OAL_MAX_CB_LEN))->seq_num;
285}
286
287/*****************************************************************************
288 函 数 名 : dmac_get_cb_wlan_frame_type
289 功能描述 : 根据tx control block获取帧类型
290*****************************************************************************/
291static INLINE__ osal_u16 dmac_get_cb_wlan_frame_type(const mac_tx_ctl_stru *tx_ctl)
292{
293 return ((mac_ieee80211_frame_stru *)((osal_u8 *)tx_ctl + OAL_MAX_CB_LEN))->frame_control.type;
294}
295
296/*****************************************************************************
297 函 数 名 : dmac_get_cb_wlan_frame_subtype
298 功能描述 : 根据tx control block获取帧子类型
299*****************************************************************************/
300static INLINE__ osal_u16 dmac_get_cb_wlan_frame_subtype(const mac_tx_ctl_stru *tx_ctl)
301{
302 return ((mac_ieee80211_frame_stru *)((osal_u8 *)tx_ctl + OAL_MAX_CB_LEN))->frame_control.sub_type;
303}
304
305/*****************************************************************************
306 函 数 名 : dmac_get_cb_frame_header_addr
307 功能描述 : 根据tx control block获取对应的帧头地址
308*****************************************************************************/
309static INLINE__ mac_ieee80211_frame_stru *dmac_get_cb_frame_header_addr(const mac_tx_ctl_stru *tx_ctl)
310{
311 return (mac_ieee80211_frame_stru *)((osal_u8 *)tx_ctl + OAL_MAX_CB_LEN);
312}
313
314/*****************************************************************************
315 函 数 名 : dmac_get_rx_cb_mac_hdr
316 功能描述 : 获取mac头的值
317
318*****************************************************************************/
319static INLINE__ osal_u32 *dmac_get_rx_cb_mac_hdr(mac_rx_ctl_stru *cb_ctrl)
320{
321 return (osal_u32 *)((osal_u8 *)cb_ctrl + OAL_MAX_CB_LEN);
322}
323/*****************************************************************************
324 函 数 名 : dmac_ba_seq_add
325 功能描述 : 获取两数之和跟 DMAC_BA_SEQNO_MASK 的逻辑与的结果
326*****************************************************************************/
327static INLINE__ osal_u16 dmac_ba_seq_add(osal_u16 seq1, osal_u16 seq2)
328{
329 return ((seq1 + seq2) & DMAC_BA_SEQNO_MASK);
330}
331
332/*****************************************************************************
333 函 数 名 : dmac_ba_seq_sub
334 功能描述 : 获取两数之差跟 DMAC_BA_SEQNO_MASK 的逻辑与的结果
335*****************************************************************************/
336static INLINE__ osal_u16 dmac_ba_seq_sub(osal_u16 seq1, osal_u16 seq2)
337{
338 return ((seq1 - seq2) & DMAC_BA_SEQNO_MASK);
339}
340
341/*****************************************************************************
342 函 数 名 : dmac_get_cb_is_vipframe
343 功能描述 : 判断一个帧是否为数据帧中的VIP帧
344*****************************************************************************/
345static INLINE__ osal_u8 dmac_get_cb_is_vipframe(const mac_tx_ctl_stru *tx_ctrl)
346{
347 if ((tx_ctrl->frame_type == WLAN_CB_FRAME_TYPE_DATA) && (tx_ctrl->frame_subtype <= MAC_DATA_VIP_FRAME)) {
348 return OSAL_TRUE;
349 }
350 return OSAL_FALSE;
351}
352
353/*****************************************************************************
354 函 数 名 : dmac_get_cb_is_smps_frame
355 功能描述 : 判断一个帧是否为Action帧中的smps帧
356*****************************************************************************/
357static INLINE__ osal_u8 dmac_get_cb_is_smps_frame(const mac_tx_ctl_stru *tx_ctrl)
358{
359 if ((tx_ctrl->frame_type == WLAN_CB_FRAME_TYPE_ACTION) &&
361 return OSAL_TRUE;
362 }
363 return OSAL_FALSE;
364}
365
366/*****************************************************************************
367 函 数 名 : dmac_get_cb_is_opmode_frame
368 功能描述 : 判断一个帧是否为Action帧中的opmode帧
369*****************************************************************************/
370static INLINE__ osal_u8 dmac_get_cb_is_opmode_frame(const mac_tx_ctl_stru *tx_ctrl)
371{
372 if ((tx_ctrl->frame_type == WLAN_CB_FRAME_TYPE_ACTION) &&
374 return OSAL_TRUE;
375 }
376 return OSAL_FALSE;
377}
378
379/*****************************************************************************
380 函 数 名 : dmac_get_cb_is_p2pgo_frame
381 功能描述 : 判断一个帧是否为管理帧中的p2pgo帧
382*****************************************************************************/
383static INLINE__ osal_u8 dmac_get_cb_is_p2pgo_frame(const mac_tx_ctl_stru *tx_ctrl)
384{
385 if ((tx_ctrl->frame_type == WLAN_CB_FRAME_TYPE_MGMT) &&
387 return OSAL_TRUE;
388 }
389 return OSAL_FALSE;
390}
391
392/*****************************************************************************
393 函 数 名 : dmac_get_cb_is_data_frame
394 功能描述 : 判断一个帧是否为数据帧中的data帧或qos data帧
395*****************************************************************************/
396static INLINE__ osal_u8 dmac_get_cb_is_data_frame(const mac_tx_ctl_stru *tx_ctrl)
397{
398 if ((dmac_get_cb_wlan_frame_type(tx_ctrl) == WLAN_DATA_BASICTYPE) &&
399 (dmac_get_cb_wlan_frame_subtype(tx_ctrl) == WLAN_DATA ||
400 dmac_get_cb_wlan_frame_subtype(tx_ctrl) == WLAN_QOS_DATA)) {
401 return OSAL_TRUE;
402 }
403 return OSAL_FALSE;
404}
405
406/*****************************************************************************
407 函 数 名 : mac_get_cb_is_udata_frame
408 功能描述 : 判断一个帧是否为数据帧中单播的data帧或qos data帧
409*****************************************************************************/
410static INLINE__ osal_u8 mac_get_cb_is_udata_frame(const mac_tx_ctl_stru *tx_ctrl)
411{
412 if ((dmac_get_cb_is_data_frame(tx_ctrl) == OSAL_TRUE) && (dmac_get_cb_is_vipframe(tx_ctrl) == OSAL_FALSE) &&
413 (tx_ctrl->ismcast == OSAL_FALSE)) {
414 return OSAL_TRUE;
415 }
416 return OSAL_FALSE;
417}
418
419/*****************************************************************************
420 函 数 名 : dmac_get_cb_is_qos_data
421 功能描述 : 判断一个帧是否为数据帧中的qos data帧或qos null data帧
422*****************************************************************************/
423static INLINE__ osal_u8 dmac_get_cb_is_qos_data(const mac_tx_ctl_stru *tx_ctrl)
424{
425 if ((dmac_get_cb_wlan_frame_type(tx_ctrl) == WLAN_DATA_BASICTYPE) &&
426 (dmac_get_cb_wlan_frame_subtype(tx_ctrl) == WLAN_QOS_DATA ||
427 dmac_get_cb_wlan_frame_subtype(tx_ctrl) == WLAN_QOS_NULL_FRAME)) {
428 return OSAL_TRUE;
429 }
430 return OSAL_FALSE;
431}
432
433/*****************************************************************************
434 函 数 名 : dmac_get_cb_is_bar
435 功能描述 : 判断一个帧是否为控制帧中的block ack req帧
436*****************************************************************************/
437static INLINE__ osal_u8 dmac_get_cb_is_bar(const mac_tx_ctl_stru *tx_ctrl)
438{
439 if (dmac_get_cb_wlan_frame_type(tx_ctrl) == WLAN_CONTROL &&
440 dmac_get_cb_wlan_frame_subtype(tx_ctrl) == WLAN_BLOCKACK_REQ) {
441 return OSAL_TRUE;
442 }
443 return OSAL_FALSE;
444}
445
446/*****************************************************************************
447 函 数 名 : dmac_mib_set_dot11dtimperiod
448 功能描述 : 设置MIB项 dot11DTIMPeriod 的值
449
450*****************************************************************************/
451static INLINE__ osal_void dmac_mib_set_dot11dtimperiod(dmac_vap_stru *dmac_vap, osal_u32 val)
452{
453 if (val != 0) {
454 dmac_vap->mib_info->dot11_dtim_period = val;
455 }
456}
457
458/*****************************************************************************
459 函 数 名 : mac_mib_get_dot11dtimperiod
460 功能描述 : 获取MIB项 dot11DTIMPeriod 的值
461
462*****************************************************************************/
463static INLINE__ osal_u32 dmac_mib_get_dot11_dtim_period(const dmac_vap_stru *dmac_vap)
464{
465 return dmac_vap->mib_info->dot11_dtim_period;
466}
467
468/*****************************************************************************
469 函 数 名 : dmac_mib_set_powermanagementmode
470 功能描述 : 设置MIB项 dot11DTIMPeriod 的值
471
472*****************************************************************************/
473static INLINE__ osal_void dmac_mib_set_powermanagementmode(dmac_vap_stru *dmac_vap, osal_u8 val)
474{
475 if (val != 0) {
476 dmac_vap->mib_info->dot11_power_management_mode = val;
477 }
478}
479
480/*****************************************************************************
481 函 数 名 : dmac_mib_get_powermanagementmode
482 功能描述 : 获取MIB项 dot11DTIMPeriod 的值
483
484*****************************************************************************/
485static INLINE__ osal_u32 dmac_mib_get_powermanagementmode(const dmac_vap_stru *dmac_vap)
486{
487 return dmac_vap->mib_info->dot11_power_management_mode;
488}
489
490static INLINE__ osal_void dmac_mib_set_beacon_period(dmac_vap_stru *dmac_vap, osal_u32 val)
491{
492 if (val != 0) {
493 dmac_vap->mib_info->dot11_beacon_period = val;
494 }
495}
496
497static INLINE__ osal_u32 dmac_mib_get_beacon_period(const dmac_vap_stru *dmac_vap)
498{
499 return dmac_vap->mib_info->dot11_beacon_period;
500}
501
502/*****************************************************************************
503 功能描述 : 获取MIB项 dot11MgmtOptionMultiBSSIDImplemented 的值
504*****************************************************************************/
505static INLINE__ osal_u8 dmac_mib_get_multi_bssid_implement(dmac_vap_stru *dmac_vap)
506{
508}
509
510/*****************************************************************************
511 功能描述 : 设置MIB项 dot11MgmtOptionMultiBSSIDImplemented 的值
512*****************************************************************************/
513static INLINE__ osal_void dmac_mib_set_multi_bssid_implement(dmac_vap_stru *dmac_vap, osal_u8 val)
514{
516}
517
518/*****************************************************************************
519 功能描述 : 获取MIB项 dot11_heldpc_coding_in_payload 的值
520*****************************************************************************/
521static INLINE__ osal_u8 dmac_mib_get_heldpc_coding_in_payload(const dmac_vap_stru *dmac_vap)
522{
524}
525
526/*****************************************************************************
527 功能描述 : 设置MIB项 dot11_heldpc_coding_in_payload 的值
528*****************************************************************************/
529static INLINE__ osal_void dmac_mib_set_heldpc_coding_in_payload(dmac_vap_stru *dmac_vap, osal_u8 val)
530{
532}
533
534/*****************************************************************************
535 功能描述 : 获取MIB项 dot11_ldpc_coding_option_implemented 的值
536*****************************************************************************/
537static INLINE__ osal_u8 dmac_mib_get_ldpc_coding_option_implemented(const dmac_vap_stru *dmac_vap)
538{
540}
541
542/*****************************************************************************
543 功能描述 : 设置MIB项 dot11_ldpc_coding_option_implemented 的值
544*****************************************************************************/
545static INLINE__ osal_void dmac_mib_set_ldpc_coding_option_implemented(dmac_vap_stru *dmac_vap, osal_u8 val)
546{
548}
549
550/*****************************************************************************
551 功能描述 : 获取MIB项 dot11_ldpc_coding_option_activated 的值
552*****************************************************************************/
553static INLINE__ osal_u8 dmac_mib_get_ldpc_coding_option_activated(const dmac_vap_stru *dmac_vap)
554{
556}
557
558/*****************************************************************************
559 功能描述 : 设置MIB项 dot11_ldpc_coding_option_activated 的值
560*****************************************************************************/
561static INLINE__ osal_void dmac_mib_set_ldpc_coding_option_activated(dmac_vap_stru *dmac_vap, osal_u8 val)
562{
564}
565
566/*****************************************************************************
567 功能描述 : 获取MIB项 dot11_vhtldpc_coding_option_implemented 的值
568*****************************************************************************/
569static INLINE__ osal_u8 dmac_mib_get_vhtldpc_coding_option_implemented(const dmac_vap_stru *dmac_vap)
570{
572}
573
574/*****************************************************************************
575 功能描述 : 设置MIB项 dot11_vhtldpc_coding_option_implemented 的值
576*****************************************************************************/
577static INLINE__ osal_void dmac_mib_set_vhtldpc_coding_option_implemented(dmac_vap_stru *dmac_vap, osal_u8 val)
578{
580}
581
582/*****************************************************************************
583 函 数 名 : dmac_mib_get_station_id
584 功能描述 : 获取MIB项 dot11StationID 的值
585
586*****************************************************************************/
587static INLINE__ osal_u8 *dmac_mib_get_station_id(const dmac_vap_stru *dmac_vap)
588{
589 return dmac_vap->mib_info->dot11_station_id;
590}
591
592static INLINE__ osal_u8 dmac_is_p2p_go(const dmac_vap_stru *dmac_vap)
593{
594 return (dmac_vap->hal_vap->p2p_mode == WLAN_P2P_GO_MODE);
595}
596
597static INLINE__ osal_u8 dmac_is_p2p_noa_enabled(const dmac_vap_stru *dmac_vap)
598{
599 return (dmac_vap->p2p_noa_param.count != 0);
600}
601
602static INLINE__ osal_u8 dmac_is_p2p_cl(const dmac_vap_stru *dmac_vap)
603{
604 return (dmac_vap->hal_vap->p2p_mode == WLAN_P2P_CL_MODE);
605}
606
607static INLINE__ osal_u8 dmac_is_p2p_dev(const dmac_vap_stru *dmac_vap)
608{
609 return (dmac_vap->hal_vap->p2p_mode == WLAN_P2P_DEV_MODE);
610}
611
612static INLINE__ osal_u8 get_p2p_mode(const dmac_vap_stru *dmac_vap)
613{
614 return (dmac_vap->hal_vap->p2p_mode);
615}
616
617static INLINE__ osal_u8 dmac_is_legacy_vap(const dmac_vap_stru *dmac_vap)
618{
619 return (dmac_vap->hal_vap->p2p_mode == WLAN_LEGACY_VAP_MODE);
620}
621
622static INLINE__ osal_u8 dmac_is_legacy_sta(const dmac_vap_stru *dmac_vap)
623{
624 return ((dmac_vap->hal_vap->vap_mode == WLAN_VAP_MODE_BSS_STA) &&
625 (dmac_vap->hal_vap->p2p_mode == WLAN_LEGACY_VAP_MODE));
626}
627
628static INLINE__ osal_u8 dmac_is_legacy_ap(const dmac_vap_stru *dmac_vap)
629{
630 return ((dmac_vap->hal_vap->vap_mode == WLAN_VAP_MODE_BSS_AP) &&
631 (dmac_vap->hal_vap->p2p_mode == WLAN_LEGACY_VAP_MODE));
632}
633
634static INLINE__ osal_u8 dmac_is_up_vap(const dmac_vap_stru *dmac_vap)
635{
636 return ((dmac_vap->vap_state == MAC_VAP_STATE_UP) || (dmac_vap->vap_state == MAC_VAP_STATE_PAUSE) ||
637 (dmac_vap->vap_state == MAC_VAP_STATE_ROAMING));
638}
639
640osal_u32 *dmac_get_rx_cb_mac_hdr(mac_rx_ctl_stru *cb_ctrl);
642
643#ifdef __cplusplus
644#if __cplusplus
645}
646#endif
647#endif
648
649#endif /* end of dmac_ext_if_rom.h */
@ WLAN_ACTION_P2PGO_FRAME_SUBTYPE
Definition dmac_ext_if_device_rom.h:63
@ WLAN_ACTION_OPMODE_FRAME_SUBTYPE
Definition dmac_ext_if_device_rom.h:62
@ WLAN_ACTION_SMPS_FRAME_SUBTYPE
Definition dmac_ext_if_device_rom.h:61
#define DMAC_BA_SEQNO_MASK
Definition dmac_ext_if_device_rom.h:28
struct dmac_vap_tag dmac_vap_stru
osal_u32 mac_vap_set_cb_tx_user_idx(dmac_vap_stru *dmac_vap, mac_tx_ctl_stru *tx_ctl, const osal_u8 *data)
@ WLAN_CB_FRAME_TYPE_MGMT
Definition dmac_ext_if_type_rom.h:115
@ WLAN_CB_FRAME_TYPE_DATA
Definition dmac_ext_if_type_rom.h:114
@ WLAN_CB_FRAME_TYPE_ACTION
Definition dmac_ext_if_type_rom.h:113
osal_u8 hal_fcs_protect_type_enum_uint8
Definition hal_commom_ops_type_rom.h:70
@ HAL_TX_QUEUE_BUTT
Definition hal_commom_ops_type_rom.h:28
osal_u8 hal_fcs_protect_cnt_enum_uint8
Definition hal_commom_ops_type_rom.h:102
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
osal_u8 mac_twt_update_source_enum_uint8
Definition mac_frame_common_rom.h:142
osal_u8 rsv[3]
Definition oal_net.h:2
#define OAL_MAX_CB_LEN
Definition oal_netbuf_common_rom.h:23
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
#define INLINE__
Definition osal_list.h:25
unsigned char osal_u8
Definition osal_types.h:11
#define OSAL_FALSE
Definition osal_types.h:56
unsigned long long osal_u64
Definition osal_types.h:14
short osal_s16
Definition osal_types.h:18
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
unsigned short osal_u16
Definition osal_types.h:12
Definition wlan_resource_common_rom.h:69
Definition dmac_ext_if_rom.h:234
wlan_dmac_cfgid_enum_uint16 cfgid
Definition dmac_ext_if_rom.h:235
Definition dmac_ext_if_rom.h:78
mac_cfg_twt_stru twt_cfg
Definition dmac_ext_if_rom.h:82
mac_twt_update_source_enum_uint8 update_source
Definition dmac_ext_if_rom.h:79
osal_u16 user_idx
Definition dmac_ext_if_rom.h:80
osal_u8 resv
Definition dmac_ext_if_rom.h:81
Definition dmac_ext_if_rom.h:249
osal_u8 procd_msdu_nums_in_mpdu
Definition dmac_ext_if_rom.h:257
osal_u8 procd_netbuf_nums
Definition dmac_ext_if_rom.h:256
osal_u8 flag
Definition dmac_ext_if_rom.h:259
oal_dmac_netbuf_stru * curr_netbuf
Definition dmac_ext_if_rom.h:250
osal_u8 netbuf_nums_in_mpdu
Definition dmac_ext_if_rom.h:255
osal_u8 msdu_nums_in_netbuf
Definition dmac_ext_if_rom.h:253
osal_u8 procd_msdu_in_netbuf
Definition dmac_ext_if_rom.h:254
osal_u8 * curr_netbuf_data
Definition dmac_ext_if_rom.h:251
osal_u16 submsdu_offset
Definition dmac_ext_if_rom.h:252
Definition dmac_ext_if_rom.h:263
osal_u8 priority
Definition dmac_ext_if_rom.h:267
oal_dmac_netbuf_stru * netbuf
Definition dmac_ext_if_rom.h:270
Definition dmac_ext_if_rom.h:240
osal_u8 num_buf
Definition dmac_ext_if_rom.h:242
oal_bool_enum_uint8 in_use
Definition dmac_ext_if_rom.h:241
osal_u32 rx_time
Definition dmac_ext_if_rom.h:245
osal_u16 seq_num
Definition dmac_ext_if_rom.h:243
oal_dmac_netbuf_head_stru netbuf_head
Definition dmac_ext_if_rom.h:244
Definition dmac_ext_if_rom.h:63
osal_u8 value
Definition dmac_ext_if_rom.h:65
osal_u8 support_11b
Definition dmac_ext_if_rom.h:67
osal_u8 ht_capable
Definition dmac_ext_if_rom.h:69
osal_u8 vht_capable
Definition dmac_ext_if_rom.h:70
osal_u8 reserved
Definition dmac_ext_if_rom.h:71
osal_u8 support_11ag
Definition dmac_ext_if_rom.h:68
osal_u8 reserved1
Definition dmac_ext_if_rom.h:75
Definition dmac_ext_if_rom.h:89
osal_u16 cfg_one_pkt_tx_vap_index
Definition dmac_ext_if_rom.h:94
hal_fcs_protect_type_enum_uint8 protect_type
Definition dmac_ext_if_rom.h:91
hal_fcs_protect_cnt_enum_uint8 protect_cnt
Definition dmac_ext_if_rom.h:92
osal_u16 cfg_one_pkt_tx_peer_index
Definition dmac_ext_if_rom.h:95
osal_u32 tx_mode
Definition dmac_ext_if_rom.h:97
osal_u32 tx_data_rate
Definition dmac_ext_if_rom.h:98
osal_u16 bit_rsv
Definition dmac_ext_if_rom.h:96
osal_u8 is_valid
Definition dmac_ext_if_rom.h:100
osal_u16 resv
Definition dmac_ext_if_rom.h:93
Definition dmac_ext_if_rom.h:57
osal_s16 signal
Definition dmac_ext_if_rom.h:58
Definition dmac_ext_if_rom.h:106
dmac_vap_btcoex_info_stru vap_btcoex
Definition dmac_ext_if_rom.h:179
osal_u8 psm_dtim_period
Definition dmac_ext_if_rom.h:165
mac_cfg_p2p_noa_param_stru p2p_noa_param
Definition dmac_ext_if_rom.h:185
osal_u8 erp_mode
Definition dmac_ext_if_rom.h:171
hal_tx_dscr_queue_header_stru tx_dscr_queue_fake[HAL_TX_QUEUE_BUTT]
Definition dmac_ext_if_rom.h:197
osal_u8 nodata_retransmit_flag
Definition dmac_ext_if_rom.h:172
wlan_dmac_mib_stru * mib_info
Definition dmac_ext_if_rom.h:113
osal_u8 vap_id
Definition dmac_ext_if_rom.h:111
osal_u16 in_tbtt_offset
Definition dmac_ext_if_rom.h:176
osal_u16 psm_listen_interval
Definition dmac_ext_if_rom.h:166
osal_u8 * tim_bitmap
Definition dmac_ext_if_rom.h:123
osal_s16 signal
Definition dmac_ext_if_rom.h:175
mac_vap_state_enum_uint8 vap_state
Definition dmac_ext_if_rom.h:143
mac_scanned_all_bss_info all_bss_info
Definition dmac_ext_if_rom.h:114
osal_u8 init_flag
Definition dmac_ext_if_rom.h:110
osal_u16 user_nums
Definition dmac_ext_if_rom.h:117
osal_u8 hal_cap_11ax
Definition dmac_ext_if_rom.h:121
osal_u8 sta_pm_close_status
Definition dmac_ext_if_rom.h:158
osal_u8 auth_received
Definition dmac_ext_if_rom.h:145
osal_u8 protocol
Definition dmac_ext_if_rom.h:118
mac_cfg_uapsd_sta_stru sta_uapsd_cfg
Definition dmac_ext_if_rom.h:174
osal_u8 voice_aggr
Definition dmac_ext_if_rom.h:119
osal_u8 resv1
Definition dmac_ext_if_rom.h:150
osal_u16 beacon_timeout
Definition dmac_ext_if_rom.h:164
hal_tx_txop_alg_stru txop
Definition dmac_ext_if_rom.h:191
osal_u16 bandwidth_extended_range
Definition dmac_ext_if_rom.h:162
osal_u16 multi_user_idx
Definition dmac_ext_if_rom.h:135
mac_channel_stru channel
Definition dmac_ext_if_rom.h:115
hal_to_dmac_device_stru * hal_device
Definition dmac_ext_if_rom.h:193
osal_u8 use_rts_threshold
Definition dmac_ext_if_rom.h:120
osal_u8 al_tx_flag
Definition dmac_ext_if_rom.h:168
osal_u32 tb_aggr_bytes
Definition dmac_ext_if_rom.h:126
osal_u16 sta_aid
Definition dmac_ext_if_rom.h:127
osal_u16 assoc_vap_id
Definition dmac_ext_if_rom.h:128
osal_u8 tim_bitmap_len
Definition dmac_ext_if_rom.h:122
osal_u8 keepalive_en
Definition dmac_ext_if_rom.h:147
hal_to_dmac_vap_stru * hal_vap
Definition dmac_ext_if_rom.h:192
osal_u16 resv4
Definition dmac_ext_if_rom.h:163
mac_sta_pm_handler_stru sta_pm_handler
Definition dmac_ext_if_rom.h:183
osal_u8 assoc_rsp_received
Definition dmac_ext_if_rom.h:146
osal_u8 bssid[WLAN_MAC_ADDR_LEN]
Definition dmac_ext_if_rom.h:108
osal_u8 resv_feature0
Definition dmac_ext_if_rom.h:173
osal_u16 dcm_constellation_tx
Definition dmac_ext_if_rom.h:161
mac_cfg_twt_stru twt_cfg
Definition dmac_ext_if_rom.h:177
osal_u8 uapsd_cap
Definition dmac_ext_if_rom.h:167
uintptr_t * _rom
Definition dmac_ext_if_rom.h:201
osal_u64 sta_tbtt_tsf_time
Definition dmac_ext_if_rom.h:152
osal_u8 beacon_timeout_times
Definition dmac_ext_if_rom.h:144
osal_u8 is_erp
Definition dmac_ext_if_rom.h:148
osal_u16 er_su_disable
Definition dmac_ext_if_rom.h:160
osal_u8 mu_spacing_factor_flag
Definition dmac_ext_if_rom.h:169
osal_u8 cfg_pm_mode
Definition dmac_ext_if_rom.h:170
osal_u8 is_sta_non_erp_num
Definition dmac_ext_if_rom.h:149
osal_u8 bcn_tout_max_cnt
Definition dmac_ext_if_rom.h:159
osal_u8 linkloss_rate
Definition dmac_ext_if_rom.h:151
struct osal_list_head mac_user_list_head
Definition dmac_ext_if_rom.h:136
hal_tx_dscr_queue_header_stru tx_dscr_queue[HAL_TX_QUEUE_BUTT]
Definition dmac_ext_if_rom.h:198
Definition dmac_ext_if_rom.h:212
oal_dmac_netbuf_stru * netbuf
Definition dmac_ext_if_rom.h:213
Definition dmac_ext_if_rom.h:205
osal_u16 netbuf_num
Definition dmac_ext_if_rom.h:207
oal_dmac_netbuf_stru * netbuf
Definition dmac_ext_if_rom.h:206
Definition hal_ops_common_rom.h:67
Definition hal_ops_common_rom.h:240
Definition wlan_resource_common_rom.h:130
osal_u8 count
Definition wlan_resource_common_rom.h:134
Definition wlan_resource_common_rom.h:166
Definition wlan_resource_common_rom.h:139
Definition wlan_types_base_rom.h:258
Definition mac_frame_common_rom.h:575
Definition hal_common_ops_device_rom.h:978
Definition wlan_resource_common_rom.h:211
Definition dmac_ext_if_device_rom.h:98
wlan_cb_frame_type_enum_uint8 frame_type
Definition dmac_ext_if_device_rom.h:100
osal_u8 ismcast
Definition dmac_ext_if_device_rom.h:114
wlan_cb_frame_subtype_enum_uint8 frame_subtype
Definition dmac_ext_if_device_rom.h:101
Definition oal_net_pkt_rom.h:101
Definition oal_net_pkt_rom.h:83
Definition osal_list.h:39
Definition hal_ops_common_rom.h:529
Definition hal_common_ops_device_rom.h:870
wlan_vap_mode_enum_uint8 vap_mode
Definition hal_common_ops_device_rom.h:873
wlan_p2p_mode_enum_uint8 p2p_mode
Definition hal_common_ops_device_rom.h:874
Definition wlan_mib_rom.h:30
osal_u8 dot11_vhtldpc_coding_option_implemented
Definition wlan_mib_rom.h:38
osal_u8 dot11_ldpc_coding_option_implemented
Definition wlan_mib_rom.h:36
osal_u8 dot11_ldpc_coding_option_activated
Definition wlan_mib_rom.h:37
osal_u8 dot11_power_management_mode
Definition wlan_mib_rom.h:40
osal_u8 dot11_mgmt_option_multi_bssid_implemented
Definition wlan_mib_rom.h:34
osal_u32 dot11_dtim_period
Definition wlan_mib_rom.h:42
osal_u32 dot11_beacon_period
Definition wlan_mib_rom.h:41
osal_u8 dot11_station_id[WLAN_MAC_ADDR_LEN]
Definition wlan_mib_rom.h:31
osal_u8 dot11_heldpc_coding_in_payload
Definition wlan_mib_rom.h:35
unsigned int uintptr_t
Definition td_type.h:65
Definition hal_uart_v151_regs_def.h:38
osal_u16 wlan_dmac_cfgid_enum_uint16
Definition wlan_mib_rom.h:25
@ MAC_VAP_STATE_PAUSE
Definition wlan_resource_common_rom.h:47
@ MAC_VAP_STATE_UP
Definition wlan_resource_common_rom.h:46
@ MAC_VAP_STATE_ROAMING
Definition wlan_resource_common_rom.h:64
osal_u8 mac_vap_state_enum_uint8
Definition wlan_resource_common_rom.h:67
@ MAC_DATA_VIP_FRAME
Definition wlan_types.h:430
@ WLAN_P2P_GO_MODE
Definition wlan_types_base_rom.h:399
@ WLAN_LEGACY_VAP_MODE
Definition wlan_types_base_rom.h:398
@ WLAN_P2P_CL_MODE
Definition wlan_types_base_rom.h:401
@ WLAN_P2P_DEV_MODE
Definition wlan_types_base_rom.h:400
@ WLAN_BLOCKACK_REQ
Definition wlan_types_base_rom.h:311
@ WLAN_VAP_MODE_BSS_STA
Definition wlan_types_base_rom.h:81
@ WLAN_VAP_MODE_BSS_AP
Definition wlan_types_base_rom.h:82
@ WLAN_CONTROL
Definition wlan_types_base_rom.h:294
@ WLAN_DATA_BASICTYPE
Definition wlan_types_base_rom.h:295
@ WLAN_QOS_NULL_FRAME
Definition wlan_types_base_rom.h:337
@ WLAN_DATA
Definition wlan_types_base_rom.h:325
@ WLAN_QOS_DATA
Definition wlan_types_base_rom.h:333