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