• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  * Description: Header files shared by wlan_types.h and wlan_types_rom.h.
15  * Author:
16  * Create: 2021-09-18
17  */
18 
19 #ifndef __WLAN_TYPES_COMMON_H__
20 #define __WLAN_TYPES_COMMON_H__
21 
22 #include "wlan_types.h"
23 #include "oal_types_device.h"
24 #ifdef __cplusplus
25 #if __cplusplus
26 extern "C" {
27 #endif
28 #endif
29 
30 /*****************************************************************************
31     枚举定义
32 *****************************************************************************/
33 /*****************************************************************************
34   3.1 基本枚举类型
35 *****************************************************************************/
36 
37 /* 认证的transaction number */
38 typedef enum {
39     WLAN_AUTH_TRASACTION_NUM_ONE    = 0x0001,
40     WLAN_AUTH_TRASACTION_NUM_TWO    = 0x0002,
41     WLAN_AUTH_TRASACTION_NUM_THREE  = 0x0003,
42     WLAN_AUTH_TRASACTION_NUM_FOUR   = 0x0004,
43 
44     WLAN_AUTH_TRASACTION_NUM_BUTT
45 } wlan_auth_transaction_number_enum;
46 typedef osal_u16 wlan_auth_transaction_number_enum_uint16;
47 
48 
49 /* Protection mode for MAC */
50 typedef enum {
51     WLAN_PROT_NO,           /* Do not use any protection       */
52     WLAN_PROT_ERP,          /* Protect all ERP frame exchanges */
53     WLAN_PROT_HT,           /* Protect all HT frame exchanges  */
54     WLAN_PROT_GF,           /* Protect all GF frame exchanges  */
55 
56     WLAN_PROT_BUTT
57 } wlan_prot_mode_enum;
58 typedef osal_u8 wlan_prot_mode_enum_uint8;
59 
60 typedef enum {
61     WLAN_RTS_RATE_MODE_REG,     /* 0: RTS速率 = PROT_DATARATE的配置                           */
62     WLAN_RTS_RATE_MODE_DESC,    /* 1: RTS速率 = 硬件根据TX描述符计算出的值                    */
63     WLAN_RTS_RATE_MODE_MIN,     /* 2: RTS速率 = min(PROT_DATARATE,硬件根据TX描述符计算出的值) */
64     WLAN_RTS_RATE_MODE_MAX,     /* 3: RTS速率 = max(PROT_DATARATE,硬件根据TX描述符计算出的值) */
65     WLAN_RTS_RATE_SELECT_MODE_BUTT
66 } wlan_rts_rate_select_mode_enum;
67 
68 typedef enum {
69     NARROW_BW_10M = 0x80,
70     NARROW_BW_5M = 0x81,
71     NARROW_BW_1M = 0x82,
72     NARROW_BW_BUTT
73 } mac_narrow_bw_enum;
74 typedef osal_u8 mac_narrow_bw_enum_uint8;
75 
76 typedef enum {
77     WLAN_ADDBA_MODE_AUTO,
78     WLAN_ADDBA_MODE_MANUAL,
79 
80     WLAN_ADDBA_MODE_BUTT
81 } wlan_addba_mode_enum;
82 typedef osal_u8 wlan_addba_mode_enum_uint8;
83 
84 
85 /* 频带能力枚举 */
86 typedef enum {
87     WLAN_BAND_CAP_2G,        /* 只支持2G */
88     WLAN_BAND_CAP_5G,        /* 只支持5G */
89     WLAN_BAND_CAP_2G_5G,     /* 支持2G 5G */
90 
91     WLAN_BAND_CAP_BUTT
92 } wlan_band_cap_enum;
93 typedef osal_u8 wlan_band_cap_enum_uint8;
94 
95 /* WIFI协议类型定义 */
96 /* 重要:代表VAP的preamble协议能力的使用该枚举,0表示long preamble; 1表示short preamble */
97 typedef enum {
98     WLAN_LEGACY_11B_MIB_LONG_PREAMBLE    = 0,
99     WLAN_LEGACY_11B_MIB_SHORT_PREAMBLE   = 1
100 } wlan_11b_mib_preamble_enum;
101 typedef osal_u8 wlan_11b_mib_preamble_enum_uint8;
102 
103 /*****************************************************************************
104   3.3 HT枚举类型
105 *****************************************************************************/
106 
107 typedef enum {
108     WLAN_CH_SWITCH_DONE     = 0,   /* 信道切换已经完成,AP在新信道运行 */
109     WLAN_CH_SWITCH_STATUS_1 = 1,   /* AP还在当前信道,准备进行信道切换(发送CSA帧/IE) */
110 
111     WLAN_CH_SWITCH_BUTT
112 } wlan_ch_switch_status_enum;
113 typedef osal_u8 wlan_ch_switch_status_enum_uint8;
114 
115 typedef enum {
116     WLAN_BW_SWITCH_DONE     = 0,    /* 频宽切换已完成 */
117     WLAN_BW_SWITCH_40_TO_20 = 1,    /* 从40MHz带宽切换至20MHz带宽 */
118     WLAN_BW_SWITCH_20_TO_40 = 2,    /* 从20MHz带宽切换至40MHz带宽 */
119 
120     /* 后续添加 */
121     WLAN_BW_SWITCH_BUTT
122 } wlan_bw_switch_status_enum;
123 typedef osal_u8 wlan_bw_switch_status_enum_uint8;
124 
125 typedef enum {
126     WLAN_HT_MIXED_PREAMBLE          = 0,
127     WLAN_HT_GF_PREAMBLE             = 1,
128 
129     WLAN_HT_PREAMBLE_BUTT
130 } wlan_ht_preamble_enum;
131 typedef osal_u8 wlan_ht_preamble_enum_uint8;
132 
133 /*****************************************************************************
134   3.4 算法宏,枚举类型
135 *****************************************************************************/
136 typedef enum {
137     WLAN_NON_TXBF                   = 0,
138     WLAN_EXPLICIT_TXBF              = 1,
139     WLAN_LEGACY_TXBF                = 2,
140 
141     WLAN_TXBF_BUTT
142 } wlan_txbf_enum;
143 typedef osal_u8 wlan_txbf_enum_uint8;
144 
145 /* Trig帧帧子类型 */
146 typedef enum {
147     WLAN_HE_BASIC_TRIG              = 0,
148     WLAN_BEAM_REPORT_POLL           = 1,
149     WLAN_MU_BAR                     = 2,
150     WLAN_MU_RTS                     = 3,
151     WLAN_BUFFER_STATUS_REPORT_POLL  = 4,
152     WLAN_GCR_MU_BAR                 = 5,
153     WLAN_BW_QUERY_REPORT_POLL       = 6,
154     WLAN_NDP_FEEDBACK_REPORT_POLL   = 7,
155 
156     WLAN_HE_TRIG_TYPE_BUTT
157 } wlan_frame_trig_type_enum;
158 
159 /* Android P 增加,是否启动并发扫描标志位 */
160 typedef enum {
161     WLAN_SCAN_FLAG_LOW_PRIORITY  = 0,
162     WLAN_SCAN_FLAG_LOW_FLUSH     = 1,
163     WLAN_SCAN_FLAG_AP            = 2,
164     WLAN_SCAN_FLAG_RANDOM_ADDR   = 3,
165     WLAN_SCAN_FLAG_LOW_SPAN      = 4, /* 并发扫描 */
166     WLAN_SCAN_FLAG_LOW_POWER     = 5,
167     WLAN_SCAN_FLAG_HIFH_ACCURACY = 6, /* 顺序扫描,非并发 */
168     WLAN_SCAN_FLAG_BUTT
169 } wlan_scan_flag_enum;
170 
171 /* 内核定义 flag标志位 */
172 typedef enum {
173     WLAN_NL80211_SCAN_FLAG_BIT_LOW_PRIORITY   = 0,
174     WLAN_NL80211_SCAN_FLAG_BIT_FLUSH          = 1,
175     WLAN_NL80211_SCAN_FLAG_BIT_AP             = 2,
176     WLAN_NL80211_SCAN_FLAG_BIT_RANDOM_ADDR    = 3,
177     WLAN_NL80211_SCAN_FLAG_BIT_LOW_SPAN       = 8,
178     WLAN_NL80211_SCAN_FLAG_BIT_LOW_POWER      = 9,
179     WLAN_NL80211_SCAN_FLAG_BIT_HIGH_ACCURACY  = 10,
180     WLAN_NL80211_SCAN_FLAG_BIT_BUTT
181 } wlan_nl80211_scan_flag_bit_enum;
182 
183 /* 扫描结果枚举 */
184 typedef enum {
185     WLAN_SCAN_EVENT_COMPLETE    = 0,
186     WLAN_SCAN_EVENT_FAILED,
187     WLAN_SCAN_EVENT_ABORT,  /* 强制终止,比如卸载 */
188     WLAN_SCAN_EVENT_TIMEOUT,
189     WLAN_SCAN_EVENT_BUTT
190 } dmac_scan_event_enum;
191 typedef osal_u8 wlan_scan_event_enum_uint8;
192 
193 /*****************************************************************************
194   3.7 加密枚举
195 *****************************************************************************/
196 
197 /* pmf的能力 */
198 typedef enum {
199     MAC_PMF_DISABLED  = 0, /* 不支持pmf能力 */
200     MAC_PMF_ENABLED,       /* 支持pmf能力,且不强制 */
201     MAC_PMF_REQUIRED,       /* 严格执行pmf能力 */
202 
203     MAC_PMF_BUTT
204 } wlan_pmf_cap_status;
205 typedef osal_u8 wlan_pmf_cap_status_uint8;
206 
207 /*****************************************************************************
208   3.8 linkloss场景枚举
209 *****************************************************************************/
210 
211 /* linkloss场景枚举 */
212 typedef enum {
213     WLAN_LINKLOSS_MODE_BT = 0,
214     WLAN_LINKLOSS_MODE_DBAC,
215     WLAN_LINKLOSS_MODE_NORMAL,
216 
217     WLAN_LINKLOSS_MODE_BUTT
218 } wlan_linkloss_mode_enum;
219 typedef osal_u8 wlan_linkloss_mode_enum_uint8;
220 
221 typedef enum {
222     WALN_LINKLOSS_SCAN_SWITCH_CHAN_DISABLE = 0,
223     WALN_LINKLOSS_SCAN_SWITCH_CHAN_EN      = 1,
224 
225     WALN_LINKLOSS_SCAN_SWITCH_CHAN_BUTT
226 } wlan_linkloss_scan_switch_chan_enum;
227 typedef osal_u8 wlan_linkloss_scan_switch_chan_enum_uint8;
228 
229 /*****************************************************************************
230   3.9 roc场景枚举
231 *****************************************************************************/
232 
233 typedef enum {
234     IEEE80211_ROC_TYPE_NORMAL  = 0,
235     IEEE80211_ROC_TYPE_MGMT_TX,
236     IEEE80211_ROC_TYPE_BUTT
237 } wlan_ieee80211_roc_type;
238 typedef osal_u8 wlan_ieee80211_roc_type_uint8;
239 
240 /*****************************************************************************
241   3.10 roam场景枚举
242 *****************************************************************************/
243 /* 漫游切换状态 */
244 typedef enum {
245     WLAN_ROAM_MAIN_BAND_STATE_2TO2          = 0,
246     WLAN_ROAM_MAIN_BAND_STATE_5TO2          = 1,
247     WLAN_ROAM_MAIN_BAND_STATE_2TO5          = 2,
248     WLAN_ROAM_MAIN_BAND_STATE_5TO5          = 3,
249 
250     WLAN_ROAM_MAIN_BAND_STATE_BUTT
251 } wlan_roam_main_band_state_enum;
252 typedef osal_u8  wlan_roam_main_band_state_enum_uint8;
253 
254 /*****************************************************************************
255   3.11 m2s切换枚举
256 *****************************************************************************/
257 typedef enum {
258     WLAN_SPECIAL_FRM_RTS,
259     WLAN_SPECIAL_FRM_ONE_PKT,
260     WLAN_SPECIAL_FRM_ABORT_SELFCTS,
261     WLAN_SPECIAL_FRM_ABORT_CFEND,
262     WLAN_SPECIAL_FRM_CFEND,
263     WLAN_SPECIAL_FRM_NDP,
264     WLAN_SPECIAL_FRM_VHT_REPORT,
265     WLAN_SPECIAL_FRM_ABORT_NULL_DATA,
266     WLAN_SPECIAL_FRM_BUTT
267 } wlan_special_frm_enum;
268 typedef osal_u8 wlan_special_frm_enum_uint8;
269 
270 /*****************************************************************************
271     STRUCT定义
272 *****************************************************************************/
273 
274 #ifdef __cplusplus
275 #if __cplusplus
276 }
277 #endif
278 #endif
279 
280 #endif /* end of wlan_types_common.h */
281