WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
dmac_ext_if_device_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_DEVICE_ROM_H__
7#define __DMAC_EXT_IF_DEVICE_ROM_H__
8
9/*****************************************************************************
10 1 其他头文件包含
11*****************************************************************************/
12#include "osal_types.h"
15#include "wlan_types.h"
18
19#ifdef __cplusplus
20#if __cplusplus
21extern "C" {
22#endif
23#endif
24
25/*****************************************************************************
26 2 宏定义
27*****************************************************************************/
28#define DMAC_BA_SEQNO_MASK 0x0FFF /* max sequece number */
29#define DMAC_BA_MAX_SEQNO_BY_TWO 2048
30#define DMAC_BA_BMP_SIZE 64
31
32/*****************************************************************************
33 3 枚举定义
34*****************************************************************************/
35/* Type of Tx Descriptor status */
36typedef enum {
37 DMAC_TX_INVALID = 0, /* 无效 */
38 DMAC_TX_SUCC, /* 成功 */
39 DMAC_TX_FAIL, /* 发送失败(超过重传限制:接收响应帧超时) */
40 DMAC_TX_TIMEOUT, /* lifetime超时(没法送出去) */
41 DMAC_TX_RTS_FAIL, /* RTS 发送失败(超出重传限制:接收cts超时) */
42 DMAC_TX_NOT_COMPRASS_BA, /* 收到的BA是非压缩块确认 */
43 DMAC_TX_TID_MISMATCH, /* 收到的BA中TID与发送时填写在描述符中的TID不一致 */
44 DMAC_TX_KEY_SEARCH_FAIL, /* Key search failed */
45 DMAC_TX_AMPDU_MISMATCH, /* 描述符异常 */
46 DMAC_TX_PENDING, /* 02:没有中断均为pending;03:发送过程中为pending */
48 DMAC_TX_FAIL_BW_TOO_BIG, /* 带宽超过PHY的最大工作带宽或流数超过最大天线数, 软件回收该帧 */
49 DMAC_TX_FAIL_ABORT, /* 发送失败(因为abort) */
50 DMAC_TX_FAIL_STATEMACHINE_PHY_ERROR, /* MAC发送该帧异常结束(状态机超时、phy提前结束等原因) */
51 DMAC_TX_SOFT_PSM_BACK, /* 软件节能回退 */
52 DMAC_TX_AMPDU_BITMAP_MISMATCH /* 硬件解析bitmap,当前mpdu未被确认 */
55
56/* cb字段action帧子类型枚举定义 */
57typedef enum {
58 WLAN_ACTION_BA_ADDBA_REQ = 0, /* 聚合action */
61 WLAN_ACTION_SMPS_FRAME_SUBTYPE, /* SMPS节能action */
62 WLAN_ACTION_OPMODE_FRAME_SUBTYPE, /* 工作模式通知action */
63 WLAN_ACTION_P2PGO_FRAME_SUBTYPE, /* host发送的P2P go帧,主要是discoverability request */
67
68#ifdef _PRE_WLAN_FEATURE_WUR_TX
69 WLAN_ACTION_WUR_MODE_SETUP, /* WUR Mode Setup帧 */
70 WLAN_ACTION_WUR_MODE_TEARDOWN, /* WUR Mode Teardown帧 */
71#endif
72
76
78
79/* DMAC模块接收流程控制信息结构,存放于对应的netbuf的CB字段中,最大值为48字节,
80 如果修改,一定要通知sdt同步修改,否则解析会有错误!!!!!!!!!!!!!!!!!!!!!!!!! */
81typedef struct {
82 hal_rx_ctl_stru rx_info; /* dmac需要传给hmac的数据信息 20 bytes */
83 hal_rx_status_stru rx_status; /* 保存加密类型及帧长信息 4 bytes */
84 hal_rx_statistic_stru rx_statistic; /* 保存接收描述符的统计信息 8 bytes */
86
87/* 1字节对齐 */
88#pragma pack(push, 1)
89typedef struct {
91 osal_u16 seqnum; /* SN */
92 wlan_frame_type_enum_uint8 frame_type; /* 管理帧/控制帧/数据帧 */
96
97/* 裸系统cb字段 只有20字节可用, 当前使用19字节; HCC[8]+PAD[1]+CB[19]+MAC HEAD[36] */
98struct mac_tx_ctl {
99 /* byte1-2 */
102 /* byte3 */
103 osal_u8 mpdu_num : 7; /* ampdu中包含的MPDU个数,实际描述符填写的值为此值-1 */
104 osal_u8 netbuf_num : 1; /* 每个MPDU占用的netbuff数目,在每个MPDU的第一个NETBUF中有效 */
105 /* byte4-5 */
106 osal_u16 mpdu_payload_len; /* 每个MPDU的长度不包括mac header length */
107 /* byte6 */
108 osal_u8 frame_header_length : 6; /* 51四地址32,该MPDU的802.11头长度 */
109 osal_u8 is_amsdu : 1; /* 是否AMSDU: HI_FALSE不是,HI_TRUE是 */
110 osal_u8 is_first_msdu : 1; /* 是否是第一个子帧,HI_FALSE不是 HI_TRUE是 */
111 /* byte7 */
112 osal_u8 tid : 4; /* dmac tx 到 tx complete 传递的user结构体,目标用户地址 */
114 osal_u8 ismcast : 1; /* 该MPDU是单播还是多播:HI_FALSE单播,HI_TRUE多播 */
115 /* byte8 */
116 osal_u8 retried_num : 4; /* 重传次数 */
117 osal_u8 mgmt_frame_id : 4; /* wpas 发送管理帧的frame id */
118 /* byte9 */
119 osal_u8 tx_user_idx : 6; /* 比描述符中userindex多一个bit用于标识无效index */
120 osal_u8 roam_data : 1; /* 漫游期间帧发送标记 */
121 osal_u8 is_get_from_ps_queue : 1; /* 节能特性用,标识一个MPDU是否从节能队列中取出来的 */
122 /* byte10 */
123 osal_u8 tx_vap_index : 3; /* dmac_vap id */
126 osal_u8 need_rsp : 1; /* WPAS send mgmt,need dmac response tx status */
127 /* byte11 */
128 osal_u8 is_eapol_key_ptk : 1; /* 4 次握手过程中设置单播密钥EAPOL KEY 帧标识 */
129 osal_u8 is_m2u_data : 1; /* 是否是组播转单播的数据 */
130 osal_u8 is_large_skb_amsdu : 1; /* 是否是多子帧大包聚合 */
131 osal_u8 ether_head_including : 1; /* offload下netbuf头部LLC之前是否有etherhead */
132 osal_u8 use_4_addr : 1; /* 是否使用4地址,由WDS特性决定 */
134 /* byte12-13 */
135 osal_u8 alg_pktno; /* 算法用到的字段,唯一标示该报文 */
136 osal_u8 alg_frame_tag; /* 用于算法对帧进行标记 */
137 /* byte14 */
139 osal_u8 is_tcp_ack : 1; /* 用于标记tcp ack */
141 osal_u8 is_wur : 3; /* 标记是否是WUR帧和具体类型 */
142 osal_u8 is_fake_buffer : 1; /* 标记报文是否从fake队列中来 */
143 /* byte15 */
144 osal_u8 msdu_num; /* lowdelay 当前layer的总包数 */
145 /* byte16 ~ byte19 */
146 osal_u32 latency_timestamp_us : 24; /* 时延耗时统计时间戳,单位1us精度 */
147 osal_u32 latency_index : 8; /* 时延耗时统计报文标识 */
148 /* byte20 ~ byte23 */
160 is_custom_rts : 1, /* 是否为自定义RTS报文 */
161 is_custom : 1, /* 是否为自定义任意报文 */
163 /* byte24 ~ byte27 */
164 osal_u8 cipher_key_type; /* 密钥ID/类型 */
168 /* byte28 ~ byte31 */
175 osal_u8 rssi_level : 2, /* tpc */
176 tpc_code_is_valid : 1, /* 判断tpc_code是否有效 */
177 probe_data_type : 4, /* 是否探测帧 */
179 osal_u8 tpc_code; /* 目前用于设置wifi aware action帧功率 */
180
181 /* byte32 */
182 osal_u8 al_rx_tid_type; /* 常收模式tid类型 */
183
184 /* byte33 ~ byte40, expand_cb只在HMAC侧用,不传输到DMAC侧 */
186};
188#pragma pack(pop)
189
190#ifdef __cplusplus
191#if __cplusplus
192}
193#endif
194#endif
195
196#endif /* end of dmac_ext_if_device.h */
osal_u8 wlan_cb_frame_subtype_enum_uint8
Definition dmac_ext_if_device_rom.h:75
wlan_cb_action_subtype_enum
Definition dmac_ext_if_device_rom.h:57
@ WLAN_ACTION_BA_ADDBA_RSP
Definition dmac_ext_if_device_rom.h:59
@ WLAN_ACTION_P2PGO_FRAME_SUBTYPE
Definition dmac_ext_if_device_rom.h:63
@ WLAN_ACTION_BA_DELBA
Definition dmac_ext_if_device_rom.h:60
@ WLAN_FRAME_TYPE_ACTION_BUTT
Definition dmac_ext_if_device_rom.h:73
@ WLAN_ACTION_OPMODE_FRAME_SUBTYPE
Definition dmac_ext_if_device_rom.h:62
@ WLAN_ACTION_TWT_INFORMATION_REQ
Definition dmac_ext_if_device_rom.h:66
@ WLAN_ACTION_SMPS_FRAME_SUBTYPE
Definition dmac_ext_if_device_rom.h:61
@ WLAN_ACTION_BA_ADDBA_REQ
Definition dmac_ext_if_device_rom.h:58
@ WLAN_ACTION_TWT_TEARDOWN_REQ
Definition dmac_ext_if_device_rom.h:65
@ WLAN_ACTION_TWT_SETUP_REQ
Definition dmac_ext_if_device_rom.h:64
osal_u8 dmac_tx_dscr_status_enum_uint8
Definition dmac_ext_if_device_rom.h:54
dmac_tx_dscr_status_enum
Definition dmac_ext_if_device_rom.h:36
@ DMAC_TX_AMPDU_BITMAP_MISMATCH
Definition dmac_ext_if_device_rom.h:52
@ DMAC_TX_FAIL_BW_TOO_BIG
Definition dmac_ext_if_device_rom.h:48
@ DMAC_TX_TID_MISMATCH
Definition dmac_ext_if_device_rom.h:43
@ DMAC_TX_SUCC
Definition dmac_ext_if_device_rom.h:38
@ DMAC_TX_KEY_SEARCH_FAIL
Definition dmac_ext_if_device_rom.h:44
@ DMAC_TX_TIMEOUT
Definition dmac_ext_if_device_rom.h:40
@ DMAC_TX_FAIL
Definition dmac_ext_if_device_rom.h:39
@ DMAC_TX_SOFT_PSM_BACK
Definition dmac_ext_if_device_rom.h:51
@ DMAC_TX_FAIL_ABORT
Definition dmac_ext_if_device_rom.h:49
@ DMAC_TX_INVALID
Definition dmac_ext_if_device_rom.h:37
@ DMAC_TX_AMPDU_MISMATCH
Definition dmac_ext_if_device_rom.h:45
@ DMAC_TX_RTS_FAIL
Definition dmac_ext_if_device_rom.h:41
@ DMAC_TX_NOT_COMPRASS_BA
Definition dmac_ext_if_device_rom.h:42
@ DMAC_TX_FAIL_RESV
Definition dmac_ext_if_device_rom.h:47
@ DMAC_TX_FAIL_STATEMACHINE_PHY_ERROR
Definition dmac_ext_if_device_rom.h:50
@ DMAC_TX_PENDING
Definition dmac_ext_if_device_rom.h:46
hal_rx_ctl_stru mac_rx_ctl_stru
Definition dmac_ext_if_device_rom.h:77
osal_u8 wlan_cb_frame_type_enum_uint8
Definition dmac_ext_if_type_rom.h:119
unsigned char osal_u8
Definition osal_types.h:11
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition dmac_ext_if_device_rom.h:81
hal_rx_ctl_stru rx_info
Definition dmac_ext_if_device_rom.h:82
hal_rx_status_stru rx_status
Definition dmac_ext_if_device_rom.h:83
hal_rx_statistic_stru rx_statistic
Definition dmac_ext_if_device_rom.h:84
Definition hal_common_ops_device_rom.h:886
Definition hal_common_ops_device_rom.h:1052
Definition mac_frame_common_rom.h:575
Definition hal_common_ops_device_rom.h:978
Definition dmac_ext_if_device_rom.h:98
osal_u16 partial_aid
Definition dmac_ext_if_device_rom.h:149
osal_u8 frame_header_length
Definition dmac_ext_if_device_rom.h:108
osal_u8 tx_pn_hw_bypass
Definition dmac_ext_if_device_rom.h:159
wlan_wme_ac_type_enum_uint8 ac
Definition dmac_ext_if_device_rom.h:113
osal_u16 ax_bss_color
Definition dmac_ext_if_device_rom.h:150
osal_u8 is_m2u_data
Definition dmac_ext_if_device_rom.h:129
osal_u8 tx_vap_index
Definition dmac_ext_if_device_rom.h:123
osal_u16 txop_ps_not_allowed
Definition dmac_ext_if_device_rom.h:151
osal_u8 resrv_2
Definition dmac_ext_if_device_rom.h:162
osal_u8 roam_data
Definition dmac_ext_if_device_rom.h:120
osal_u8 ftm_cali_en
Definition dmac_ext_if_device_rom.h:171
osal_u8 is_custom
Definition dmac_ext_if_device_rom.h:161
osal_u8 slp_frame_id
Definition dmac_ext_if_device_rom.h:155
osal_u8 cipher_protocol_type
Definition dmac_ext_if_device_rom.h:165
mac_tx_expand_cb_stru expand_cb
Definition dmac_ext_if_device_rom.h:185
osal_u8 is_eapol_key_ptk
Definition dmac_ext_if_device_rom.h:128
osal_u8 al_rx_tid_type
Definition dmac_ext_if_device_rom.h:182
osal_u8 tx_user_idx
Definition dmac_ext_if_device_rom.h:119
osal_u8 mgmt_frame_id
Definition dmac_ext_if_device_rom.h:117
osal_u8 rssi_level
Definition dmac_ext_if_device_rom.h:175
osal_u8 tx_hal_vap_index
Definition dmac_ext_if_device_rom.h:152
osal_u8 netbuf_num
Definition dmac_ext_if_device_rom.h:104
osal_u8 duration_hw_bypass
Definition dmac_ext_if_device_rom.h:157
osal_u8 timestamp_hw_bypass
Definition dmac_ext_if_device_rom.h:158
osal_u8 align_padding_offset
Definition dmac_ext_if_device_rom.h:138
osal_u8 is_fake_buffer
Definition dmac_ext_if_device_rom.h:142
osal_u8 is_get_from_ps_queue
Definition dmac_ext_if_device_rom.h:121
osal_u8 tx_tuple_opt_meet
Definition dmac_ext_if_device_rom.h:178
osal_u8 mpdu_num
Definition dmac_ext_if_device_rom.h:103
osal_u8 ftm_protocol_mode
Definition dmac_ext_if_device_rom.h:169
osal_u8 ftm_chain
Definition dmac_ext_if_device_rom.h:173
osal_u8 retry_flag_hw_bypass
Definition dmac_ext_if_device_rom.h:156
osal_u8 tid
Definition dmac_ext_if_device_rom.h:112
wlan_cb_frame_type_enum_uint8 frame_type
Definition dmac_ext_if_device_rom.h:100
osal_u8 ra_lut_index
Definition dmac_ext_if_device_rom.h:153
osal_u8 ftm_bandwidth
Definition dmac_ext_if_device_rom.h:170
osal_u8 ether_head_including
Definition dmac_ext_if_device_rom.h:131
osal_u8 tpc_code
Definition dmac_ext_if_device_rom.h:179
osal_u8 is_first_msdu
Definition dmac_ext_if_device_rom.h:110
osal_u16 mpdu_payload_len
Definition dmac_ext_if_device_rom.h:106
osal_u8 cipher_key_type
Definition dmac_ext_if_device_rom.h:164
osal_u8 resrv_6
Definition dmac_ext_if_device_rom.h:133
osal_u8 lsig_txop
Definition dmac_ext_if_device_rom.h:154
osal_u32 latency_timestamp_us
Definition dmac_ext_if_device_rom.h:146
osal_u8 is_large_skb_amsdu
Definition dmac_ext_if_device_rom.h:130
osal_u8 is_bcast
Definition dmac_ext_if_device_rom.h:140
osal_u8 msdu_num
Definition dmac_ext_if_device_rom.h:144
osal_u8 resrv_4
Definition dmac_ext_if_device_rom.h:174
osal_u8 is_amsdu
Definition dmac_ext_if_device_rom.h:109
osal_u8 ismcast
Definition dmac_ext_if_device_rom.h:114
osal_u8 alg_pktno
Definition dmac_ext_if_device_rom.h:135
osal_u8 is_ftm
Definition dmac_ext_if_device_rom.h:172
osal_u8 is_tcp_ack
Definition dmac_ext_if_device_rom.h:139
osal_u8 tpc_code_is_valid
Definition dmac_ext_if_device_rom.h:176
osal_u8 need_rsp
Definition dmac_ext_if_device_rom.h:126
osal_u8 is_custom_rts
Definition dmac_ext_if_device_rom.h:160
osal_u8 is_wur
Definition dmac_ext_if_device_rom.h:141
osal_u8 retried_num
Definition dmac_ext_if_device_rom.h:116
osal_u8 use_4_addr
Definition dmac_ext_if_device_rom.h:132
wlan_cb_frame_subtype_enum_uint8 frame_subtype
Definition dmac_ext_if_device_rom.h:101
osal_u8 cipher_key_id
Definition dmac_ext_if_device_rom.h:166
osal_u8 alg_frame_tag
Definition dmac_ext_if_device_rom.h:136
osal_u32 latency_index
Definition dmac_ext_if_device_rom.h:147
osal_u8 is_needretry
Definition dmac_ext_if_device_rom.h:125
wlan_tx_ack_policy_enum_uint8 ack_policy
Definition dmac_ext_if_device_rom.h:124
osal_u8 probe_data_type
Definition dmac_ext_if_device_rom.h:177
osal_u8 resrv_3
Definition dmac_ext_if_device_rom.h:167
Definition dmac_ext_if_device_rom.h:89
osal_u8 res
Definition dmac_ext_if_device_rom.h:94
mac_ieee80211_frame_stru * frame_header
Definition dmac_ext_if_device_rom.h:90
wlan_frame_type_enum_uint8 frame_type
Definition dmac_ext_if_device_rom.h:92
osal_u16 seqnum
Definition dmac_ext_if_device_rom.h:91
osal_u8 mac_head_type_80211
Definition dmac_ext_if_device_rom.h:93
osal_u8 wlan_tx_ack_policy_enum_uint8
Definition wlan_types_base_rom.h:354
osal_u8 wlan_frame_type_enum_uint8
Definition wlan_types_base_rom.h:300
osal_u8 wlan_wme_ac_type_enum_uint8
Definition wlan_types_base_rom.h:59