1 /* 2 * Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 */ 18 19 #ifndef __WLAN_SPEC_1131_H__ 20 #define __WLAN_SPEC_1131_H__ 21 22 /* **************************************************************************** 23 其他头文件包含 24 **************************************************************************** */ 25 #include "hi_types.h" 26 #include "oal_err_wifi.h" 27 28 #ifdef __cplusplus 29 #if __cplusplus 30 extern "C" { 31 #endif 32 #endif 33 34 /* **************************************************************************** 35 1 版本spec 36 **************************************************************************** */ 37 /* 待efuse实现后切换 TBD */ 38 #define WLAN_CHIP_VERSION_HI1131HV100 0x11310101 39 #define WLAN_COMPILE_VERSION PRODUCT_CFG_SOFT_VER_STR 40 41 /* **************************************************************************** 42 2 多Core对应spec 43 **************************************************************************** */ 44 #define WLAN_FRW_MAX_NUM_CORES 1 /* WiFi对应Linux系统CORE的数量 为1 */ 45 #define WLAN_AMSDU_MAX_NUM 12 /* 一个amsdu下允许拥有的msdu的最大个数 */ 46 /* **************************************************************************** 47 3 STA入网功能 48 **************************************************************************** */ 49 #define WLAN_ASSOC_AP_MAX_NUM 2 /* STA可同时关联的最大AP个数 */ 50 #define WLAN_JOIN_START_TIMEOUT 10000 51 #define WLAN_AUTH_TIMEOUT 512 52 #ifdef _PRE_WLAN_FEATURE_PMF 53 #define WLAN_ASSOC_REJECT_TIMEOUT 2000 54 #endif 55 #define WLAN_ASSOC_TIMEOUT 600 56 #define WLAN_SCAN_REQ_MAX_BSS 2 /* 一次可以扫描的BSS个数,PROBE REQ帧中最大可携带的BSSID SSID数量 */ 57 #define WLAN_MAX_SCAN_BSS_PER_CH 8 /* 一个信道下记录扫描到的最大BSS个数 */ 58 #define WLAN_SSID_MAX_LEN (32 + 1) /* SSID最大长度, +1为\0预留空间 */ 59 #define WLAN_MESHID_MAX_LEN (32 + 1) /* Mesh ID最大长度, +1为\0预留空间 */ 60 #define WLAN_BG_SCAN_CNT_PER_CHANNEL 1 /* 背景扫描每信道扫描次数 */ 61 #define WLAN_SCAN_REQ_CNT_PER_CHANNEL 1 /* 每次信道扫描发送probe req帧的次数 */ 62 #define WLAN_MAX_TIME_PER_SCAN 4500 /* 扫描的默认的最大执行时间ms,超过做超时处理 */ 63 #define WLAN_ACTIVE_SCAN_TIME 30 /* 主动扫描每个信道停留时间 时间结束后切信道 */ 64 #define WLAN_PASSIVE_SCAN_TIME 360 /* 被动扫描每个信道停留时间 时间结束后切信道 */ 65 #define WLAN_SCANRESULT_CLEAN_TIME 90000 /* 扫描结果老化时间90s */ 66 #ifdef _PRE_WLAN_FEATURE_MESH 67 #define WLAN_MESH_CHL_SCAN_TIME 40 /* Mesh指定信道扫描在信道的停留时间 */ 68 #define WLAN_MESH_SCAN_TIME 60 /* Mesh扫描每个信道停留时间 时间结束后切信道 */ 69 #endif 70 /* **************************************************************************** 71 4 热点入网功能 72 **************************************************************************** */ 73 #define WLAN_USER_ACTIVE_TRIGGER_TIME 1000 /* 活跃定时器触发周期 */ 74 #define WLAN_USER_AGING_TRIGGER_TIME 5000 /* 老化定时器触发周期 */ 75 #define WLAN_USER_ACTIVE_TO_INACTIVE_TIME 5000 /* 用户由活跃到非活跃的转化时间 ms */ 76 #define WLAN_AP_USER_AGING_TIME (300 * 1000) /* AP 用户老化时间 300S */ 77 #define WLAN_P2PGO_USER_AGING_TIME (60 * 1000) /* GO 用户老化时间 60S */ 78 #define WLAN_AP_KEEPALIVE_TRIGGER_TIME (15 * 1000) /* keepalive定时器触发周期 15s */ 79 #define WLAN_AP_KEEPALIVE_INTERVAL (WLAN_AP_KEEPALIVE_TRIGGER_TIME * 4) /* ap发送keepalive null帧间隔 */ 80 #define WLAN_GO_KEEPALIVE_INTERVAL (25*1000) /* P2P GO发送keepalive null帧间隔 */ 81 #define WLAN_STA_KEEPALIVE_TIME (25*1000) /* sta发送keepalive null帧间隔, 25s */ 82 #define WLAN_CL_KEEPALIVE_TIME (20*1000) /* CL发送keepalive null帧间隔,避免CL被GO pvb唤醒,20s */ 83 #ifdef _PRE_WLAN_FEATURE_MESH_ROM 84 #define WLAN_MESH_USER_AGING_TIME (90 * 1000) /* Mesh 用户老化时间 60S */ 85 #define WLAN_MESH_KEEPALIVE_INTERVAL (30 * 1000) /* Mesh 发送keepalive null帧间隔 */ 86 #endif 87 /* **************************************************************************** 88 5 STA断网功能 89 **************************************************************************** */ 90 #define WLAN_LINKLOSS_MIN_THRESHOLD 20 /* linkloss门限最小最低值 */ 91 #define WLAN_BEACON_INTVAL_MAX 3500 /* AP最大beacon周期, ms */ 92 #define WLAN_BEACON_INTVAL_MIN 40 /* AP最小beacon周期, ms */ 93 #define WLAN_BEACON_INTVAL_DEFAULT 100 /* AP默认beacon周期, ms */ 94 #define WLAN_BEACON_INTVAL_IDLE 1000 /* AP IDLE状态下beacon interval值 */ 95 /* **************************************************************************** 96 6 保护模式功能 97 **************************************************************************** */ 98 #define WLAN_RTS_MIN 1 /* RTS开启门限最小值 */ 99 #define WLAN_RTS_MAX 2346 /* RTS开启门限最大值 */ 100 /* **************************************************************************** 101 7 分片功能 102 **************************************************************************** */ 103 #define WLAN_FRAG_THRESHOLD_MIN 512 /* 最小分片门限 */ 104 #define WLAN_FRAG_THRESHOLD_MAX 2346 /* 最大分片门限 */ 105 /* **************************************************************************** 106 8 数据速率功能 107 **************************************************************************** */ 108 #define WLAN_MAX_SUPP_RATES 12 /* 记录扫描到的ap支持的速率最大个数 */ 109 #define WLAN_TX_RATE_MAX_NUM 4 /* 每个用户支持的最大速率集个数 */ 110 /* **************************************************************************** 111 9 国家码功能 112 **************************************************************************** */ 113 /* 2.4G下目前最大支持2个管制类信息 见wal_regdb.c */ 114 #define WLAN_MAX_RC_NUM 2 /* 管制类最大个数 仅JP为2 */ 115 #define WLAN_MAX_CHANNEL_NUM 14 /* wifi 5G 2.4G全部信道个数 */ 116 117 /* **************************************************************************** 118 10 WMM功能 119 **************************************************************************** */ 120 #define WLAN_QEDCA_TABLE_CWMIN_MIN 1 121 #define WLAN_QEDCA_TABLE_CWMIN_MAX 10 122 #define WLAN_QEDCA_TABLE_CWMAX_MIN 1 123 #define WLAN_QEDCA_TABLE_CWMAX_MAX 10 124 #define WLAN_QEDCA_TABLE_AIFSN_MIN 2 125 #define WLAN_QEDCA_TABLE_AIFSN_MAX 15 126 #define WLAN_QEDCA_TABLE_TXOP_LIMIT_MIN 1 127 #define WLAN_QEDCA_TABLE_TXOP_LIMIT_MAX 65535 128 #define WLAN_QEDCA_TABLE_MSDU_LIFETIME_MAX 500 129 /* **************************************************************************** 130 11 协议节能STA侧功能 131 **************************************************************************** */ 132 #define WLAN_DTIM_DEFAULT 3 /* default DTIM period */ 133 #define WLAN_DTIM_PERIOD_MAX 255 /* 最大的DTIM周期 */ 134 #define WLAN_DTIM_PERIOD_MIN 1 /* 最小的DTIM周期 */ 135 /* **************************************************************************** 136 12 安全协议类别的spec 137 **************************************************************************** */ 138 #define WLAN_NUM_TK 4 139 #define WLAN_NUM_IGTK 2 140 #define WLAN_MAX_IGTK_KEY_INDEX 5 141 #define WLAN_MAX_WEP_KEY_COUNT 4 142 /* **************************************************************************** 143 13 PMF STA功能 144 **************************************************************************** */ 145 #define WLAN_SA_QUERY_RETRY_TIME (WLAN_AP_USER_AGING_TIME / 3) /* SA Query间隔时间,老化时间的三分之一 */ 146 #define WLAN_SA_QUERY_MAXIMUM_TIME (WLAN_SA_QUERY_RETRY_TIME * 3) /* SA Query超时时间,小于老化时间 */ 147 /* **************************************************************************** 148 14 WPA功能 149 **************************************************************************** */ 150 #define HAL_CE_LUT_UPDATE_TIMEOUT 4 /* 硬件MAC 最多等待32us, 软件等待40us */ 151 /* **************************************************************************** 152 15 块确认功能 153 **************************************************************************** */ 154 #define WLAN_ADDBA_TIMEOUT 500 155 #define WLAN_MAX_RX_BA 16 /* 支持的接收ba窗的最大个数 mac lut = 16 */ 156 #define WLAN_MAX_TX_BA 8 /* 支持的发送ba窗的最大个数 */ 157 /* **************************************************************************** 158 16 AMPDU功能 159 **************************************************************************** */ 160 #if (_PRE_MULTI_CORE_MODE_OFFLOAD_DMAC == _PRE_MULTI_CORE_MODE) 161 #define WLAN_AMPDU_RX_BUFFER_SIZE 32 /* AMPDU接收端接收缓冲区的buffer size的大小 */ 162 #define WLAN_AMPDU_RX_BA_LUT_WSIZE 32 /* AMPDU接收端用于填写BA RX LUT表的win size, 163 要求大于等于WLAN_AMPDU_RX_BUFFER_SIZE */ 164 #else /* 31H IOT下受限PKT B只有8个长帧描述, rx ampdu聚合限制为4个 否则跑流波动较大 */ 165 #define WLAN_AMPDU_RX_BUFFER_SIZE 4 /* AMPDU接收端接收缓冲区的buffer size的大小 */ 166 #define WLAN_AMPDU_RX_BA_LUT_WSIZE 4 /* AMPDU接收端用于填写BA RX LUT表的win size, 167 要求大于等于WLAN_AMPDU_RX_BUFFER_SIZE */ 168 #endif 169 #define WLAN_AMPDU_TX_MAX_NUM 32 /* AMPDU发送端最大聚合子MPDU个数 */ 170 #define WLAN_AMPDU_TX_MAX_BUF_SIZE 64 /* 发送端的buffer size */ 171 #define WLAN_AMPDU_TX_SCHD_STRATEGY 2 /* 最大聚合设置为窗口大小的一半 */ 172 #define HAL_MAX_BA_LUT_SIZE 16 /* 31H mac 16个lut表 */ 173 /* **************************************************************************** 174 17 AMSDU功能 175 **************************************************************************** */ 176 #define AMSDU_ENABLE_ALL_TID 0xFF 177 #define WLAN_MSDU_MAX_LEN 128 /* amsdu下子msdu的最大长度 */ 178 #define WLAN_AMSDU_FRAME_MAX_LEN 7935 /* amsdu最大长度,受制于一个buffer长度 */ 179 #define WLAN_DSCR_SUBTABEL_MAX_NUM 1 180 /* **************************************************************************** 181 18 小包优化 182 **************************************************************************** */ 183 #define WLAN_SMALL_RX_MAX_BUFFS 12 /* 小包数据接收描述符队列中描述符最大个数 */ 184 #define WLAN_NORMAL_RX_MAX_BUFFS 8 /* 普通接收描述符最大个数 */ 185 #define WLAN_HIGH_RX_MAX_BUFFS 12 /* 高优先级接收描述符最大个数 */ 186 #define WLAN_SMALL_RX_MAX_BUFFS_PATCH 16 /* 小包数据接收描述符队列中描述符最大个数 */ 187 #define WLAN_NORMAL_RX_MAX_BUFFS_PATCH 12 /* 普通接收描述符最大个数 */ 188 #define WLAN_HIGH_RX_MAX_BUFFS_PATCH 12 /* 高优先级接收描述符最大个数 */ 189 #define WLAN_NORMAL_RX_MAX_RX_OPT_BUFFS 8 /* 普通优先级描述符优化规格 */ 190 /* **************************************************************************** 191 19 TPC功能 192 **************************************************************************** */ 193 #define WLAN_MAX_TXPOWER 30 /* 最大传输功率,单位dBm */ 194 /* **************************************************************************** 195 20 DBAC功能 196 **************************************************************************** */ 197 /* 虚假队列个数,用于切离一个信道时,将原信道上放到硬件队列里的帧保存起来 */ 198 #define WLAN_TX_FAKE_QUEUE_NUM 3 199 #define WLAN_TX_FAKE_QUEUE_BGSCAN_ID 2 200 #define WLAN_FCS_PROT_MAX_FRAME_LEN 24 201 #define WLAN_FCS_NOA_MAX_FRAME_LEN 32 /* 最大的NOA保护帧长,不含FCS */ 202 /* **************************************************************************** 203 21 芯片适配规格 204 **************************************************************************** */ 205 #define WLAN_RF_CHANNEL_NUMS 1 /* 双通道 */ 206 #define WLAN_TX_CHAIN_DOUBLE 3 /* 双通道掩码 11 */ 207 #define WLAN_TX_CHAIN_ZERO 1 /* 通道0 掩码 01 */ 208 #define WLAN_TX_CHAIN_ONE 2 /* 通道1 掩码 10 */ 209 /* **************************************************************************** 210 22 STA AP规格 211 **************************************************************************** */ 212 #define WLAN_OHTER_BSS_BCAST_ID 14 /* 来自其他BSS的广播帧ID */ 213 #define WLAN_OTHER_BSS_OTHER_ID 15 /* 来自其他BSS的其他帧(组播、单播) */ 214 #define WLAN_USER_NUM_SPEC 8 /* 31H最大用户数量规格8个 */ 215 #define WLAN_MESHAP_ASSOC_USER_MAX_NUM 6 /* MESHAP关联的最大用户个数:6 */ 216 #define WLAN_SOFTAP_ASSOC_USER_MAX_NUM 4 /* AP关联的最大用户个数:4 */ 217 #define WLAN_ACTIVE_USER_MAX_NUM 7 /* 活跃用户,DBAC关联user之和:MAX=7+1, IOT=6+1 */ 218 #define WLAN_ASSOC_USER_IDX_BMAP_LEN 1 /* 关联用户索引位图长度 8 >> 3 */ 219 #define WLAN_ACTIVE_USER_IDX_BMAP_LEN 1 /* 活跃用户索引位图长度 8 >> 3 */ 220 #define WLAN_AP_NUM_PER_DEVICE 1 /* AP的规格 1131H: 1个AP */ 221 #define WLAN_STA_NUM_PER_DEVICE 2 /* STA的规格 1131H: 2个STA */ 222 #define WLAN_CFG_VAP_NUM_PER_DEVICE 1 /* 配置VAP个数 1个芯片1个 */ 223 #define WLAN_SERVICE_VAP_NUM_PER_DEVICE (WLAN_AP_NUM_PER_DEVICE + WLAN_STA_NUM_PER_DEVICE) /* AP+STA */ 224 #define WLAN_VAP_NUM_PER_DEVICE (WLAN_AP_NUM_PER_DEVICE + WLAN_STA_NUM_PER_DEVICE + WLAN_CFG_VAP_NUM_PER_DEVICE) 225 #define WLAN_CHIP_NUM_PER_BOARD 1 /* 每个board支持chip的最大个数,总数不会超过8个 */ 226 #define WLAN_DEVICE_NUM_PER_CHIP 1 /* 每个chip支持device的最大个数,总数不会超过8个 */ 227 #define WLAN_DEVICE_NUM_PER_BOARD (WLAN_CHIP_NUM_PER_BOARD * WLAN_DEVICE_NUM_PER_CHIP) /* 单板总device数量 */ 228 #define WLAN_VAP_NUM_PER_BOARD (WLAN_DEVICE_NUM_PER_BOARD * WLAN_VAP_NUM_PER_DEVICE) /* 单板总vap数量 */ 229 #define WLAN_SERVICE_VAP_START_ID 1 /* 单芯片下,每个board的业务vap id从1开始 */ 230 #define WLAN_CFG_VAP_ID 0 /* 单device下 配置vap的ID为0 */ 231 #define WLAN_CFG_VAP_NAME "Hisilicon0" /* 单device下 配置vap的名称 */ 232 #define WLAN_ASSOC_MAX_ID (WLAN_ACTIVE_USER_MAX_NUM + WLAN_SERVICE_VAP_NUM_PER_DEVICE) /* ASSOC_ID最大值 */ 233 234 235 /* **************************************************************************** 236 23 低成本约束 237 **************************************************************************** */ 238 #define WLAN_TID_FOR_DATA 0 /* 默认的数据类型业务的TID */ 239 #define WLAN_RX_QUEUE_NUM 3 /* 接收队列的个数 与HAL_RX_DSCR_QUEUE_ID_BUTT相等 */ 240 #define WLAN_TX_QUEUE_NUM 5 /* 发送队列的个数 */ 241 #define WLAN_RX_DSCR_LIST_NUM 2 /* 存储硬件接收上报的描述符链表数目(ping pong使用) */ 242 #define WLAN_RX_ISR_MAX_COUNT 30 /* 接收完成中断最大个数 */ 243 #define WLAN_DOWM_PART_RX_TRACK_MEM 200 244 #define WLAN_DEBUG_RX_DSCR_LINE (12 + 2) /* 接收描述符软件可见为第14行,用于打时间戳,调试用 */ 245 #define WLAN_RX_FRAME_MAX_LEN 8000 /* 接收缓存最大过滤长度(超过此值,硬件将其丢弃) */ 246 /* **************************************************************************** 247 24 RX描述符动态调整 248 **************************************************************************** */ 249 #define WLAN_PKT_MEM_PKT_OPT_LIMIT 2000 250 #define WLAN_PKT_MEM_PKT_RESET_LIMIT 500 251 #define WLAN_PKT_MEM_OPT_TIME_MS 1000 252 /* **************************************************************************** 253 25 P2P特性 254 **************************************************************************** */ 255 #ifdef _PRE_WLAN_FEATURE_P2P 256 #define WLAN_MAX_SERVICE_P2P_DEV_NUM 1 /* P2P DEV数量 =1 */ 257 #define WLAN_MAX_SERVICE_P2P_GOCLIENT_NUM 1 /* P2P GO/GC数量 =1 */ 258 #endif 259 /* **************************************************************************** 260 27 RSSI 261 **************************************************************************** */ 262 #define WLAN_NEAR_DISTANCE_RSSI (-35) /* 默认近距离信号门限-35dBm */ 263 #define WLAN_CLOSE_DISTANCE_RSSI (-25) /* 关联前距离判断门限-25dBm */ 264 #define WLAN_FAR_DISTANCE_RSSI (-73) /* 默认远距离信号门限-73dBm */ 265 #define WLAN_NORMAL_DISTANCE_RSSI_UP (-42) /* 信号强度小于-42dBm时,才认为非超近距离 */ 266 #define WLAN_NORMAL_DISTANCE_RSSI_DOWN (-66) /* 信号强度大于-66dBm时,才认为是非超远距离 */ 267 #define WLAN_NEAR_DISTANCE_IMPROVE_RSSI_UP (-40) /* improve 1*1问题规避,要求近距离判断上门限为-44dBm */ 268 #define WLAN_NEAR_DISTANCE_IMPROVE_RSSI_DOWN (-48) /* improve 1*1问题规避,要求近距离判断下门限为-50dBm */ 269 /* **************************************************************************** 270 28 COEX FEATURE 271 **************************************************************************** */ 272 #define BTCOEX_RSSI_THRESHOLD (WLAN_FAR_DISTANCE_RSSI) 273 #define BTCOEX_RX_WINDOW_SIZE_INDEX_0 0 274 #define BTCOEX_RX_WINDOW_SIZE_INDEX_1 1 275 #define BTCOEX_RX_WINDOW_SIZE_INDEX_2 2 276 #define BTCOEX_RX_WINDOW_SIZE_INDEX_3 3 277 #define BTCOEX_RX_WINDOW_SIZE_INDEX_MAX 4 278 #define BTCOEX_MAC_HDR 32 279 #define BT_POSTPREEMPT_MAX_TIMES 1 280 #define BT_PREEMPT_MAX_TIMES 1 281 #define BT_POSTPREEMPT_TIMEOUT_US 150 282 #define BT_ABORT_RETRY_TIMES_MAX 10 283 #define BT_PREEMPT_TIMEOUT_US 150 284 #define BLE_PREEMPT_TIMEOUT_US 10 285 #define BTCOEX_BT_DEFAULT_DURATION 0xFF 286 287 #define BT_WLAN_COEX_UNAVAIL_PAYLOAD_THRES 8 288 #define BT_WLAN_COEX_SMALL_PKT_THRES 200 289 #define BT_WLAN_COEX_SMALL_FIFO_THRES 1023 290 #define BTCOEX_OCCUPY_DATA_TIMEOUT_MS 60 291 #define BTCOEX_OCCUPY_MGMT_TIMEOUT_MS 10 292 #define COEX_LINKLOSS_OCCUP_PERIOD_MS 20 293 #define BTCOEX_ARP_PROTECT_TIMEOUT_MS 1000 294 #define BTCOEX_DHCP_STEP1_PROTECT_TIMEOUT_MS 6000 295 #define BTCOEX_DHCP_STEP3_PROTECT_TIMEOUT_MS 8000 296 #define BTCOEX_DHCP_EAPOL_PROTECT_TIMEOUT_MS 3000 297 298 /* **************************************************************************** 299 29 WiFi关键信息检测 300 **************************************************************************** */ 301 #define WLAN_MAX_MAC_HDR_LEN 36 /* 最大的mac头长度 oal_mem.h里面引用该宏 */ 302 #define WLAN_MIN_MAC_HDR_LEN 10 /* ack与cts的帧头长度为10 */ 303 #define WLAN_MGMT_MAC_HDR_LEN 24 /* 管理帧的MAC帧头长度 */ 304 #define WLAN_MEM_MAX_SUBPOOL_NUM 6 /* 内存池中最大子内存池个数 */ 305 #define WLAN_MEM_MAX_USERS_NUM 4 /* 共享同一块内存的最大用户数 */ 306 #define WLAN_MAC_ADDR_LEN 6 /* MAC地址长度宏 */ 307 #define WLAN_MAC_ADDR_BYTE_LEN 17 /* MAC地址占的字符长度 */ 308 #define WLAN_TID_MPDU_NUM_BIT 9 309 #define WLAN_TID_MPDU_NUM_LIMIT (1 << WLAN_TID_MPDU_NUM_BIT) 310 /* **************************************************************************** 311 31 描述符内存池配置信息 312 **************************************************************************** */ 313 #define WLAN_MEM_SHARE_DSCR_SUBPOOL_CNT 2 /* 共享描述符内存池子池个数 */ 314 /* hal_rx_dscr_stru(共用4) + hi1131_rx_buffer_addr_stru(共用4) - 4 + hi1131_rx_status_dscr_stru + 315 hi1131_rx_debug_dscr_stru */ 316 #define WLAN_MEM_RX_DSCR_SIZE 48 /* 接收描述符结构体大小 */ 317 /* 接收描述符数量 */ 318 #define WLAN_MEM_RX_DSCR_CNT (WLAN_SMALL_RX_MAX_BUFFS + WLAN_NORMAL_RX_MAX_BUFFS + WLAN_HIGH_RX_MAX_BUFFS) 319 #define WLAN_MEM_RX_DSCR_CNT_PATCH (WLAN_SMALL_RX_MAX_BUFFS_PATCH + WLAN_NORMAL_RX_MAX_BUFFS_PATCH \ 320 + WLAN_HIGH_RX_MAX_BUFFS_PATCH) 321 322 /* hal_tx_dscr_stru(共用4) + hi1131_tx_ctrl_dscr_one_stru(共用4) - 4 + hi1131_tx_ctrl_dscr_two_stru + 323 hi1131_tx_ctrl_dscr_three_stru */ 324 #define WLAN_MEM_TX_DSCR_SIZE 76 /* 发送描述符结构体大小 hal_tx_dscr_stru有4字节公用 */ 325 #define WLAN_MEM_TX_DSCR_CNT 14 /* 发送描述符 netbuff总数48-接收32-netbuff裕量2 */ 326 #define WLAN_MEM_TX_DSCR_CNT_PATCH 58 /* 发送描述符 netbuff总数48-接收32-netbuff裕量2 */ 327 /* **************************************************************************** 328 34 本地内存池配置信息 329 **************************************************************************** */ 330 #define WLAN_MEM_LOCAL_SUBPOOL_CNT 6 /* 本地变量内存池子池个数 */ 331 #define WLAN_MEM_LOCAL_SIZE1 32 332 #define WLAN_MEM_LOCAL_SIZE2 64 333 #define WLAN_MEM_LOCAL_SIZE3 128 334 #define WLAN_MEM_LOCAL_SIZE4 256 335 #define WLAN_MEM_LOCAL_SIZE5 600 336 #define WLAN_MEM_LOCAL_SIZE6 1600 /* 自动速率算法使用 956 * 8 users */ 337 338 /* **************************************************************************** 339 35 netbuff内存池配置信息 340 **************************************************************************** */ 341 #define WLAN_SHORT_NETBUF_SIZE 256 /* 短帧netbufpayload长度 */ 342 #define WLAN_MGMT_NETBUF_SIZE 640 /* 管理帧netbufpayload长度 */ 343 /* 长帧netbufpayload长度 1500+36(HDR)+4(FCS)+20(解密失败20个调试信息)+8(SNAP LLC) */ 344 #define WLAN_LARGE_PAYLOAD_SIZE 1500 /* 允许发送的最大帧数据长度 */ 345 #define WLAN_LARGE_NETBUF_SIZE 1600 /* (WLAN_LARGE_PAYLOAD_SIZE + 100) */ 346 /* netbuf最大帧长,帧头 + payload */ 347 #define WLAN_MAX_NETBUF_SIZE (WLAN_LARGE_NETBUF_SIZE + WLAN_MAX_MAC_HDR_LEN) 348 #define WLAN_MEM_NETBUF_ALIGN 4 /* netbuf对齐 */ 349 /* **************************************************************************** 350 36 事件结构体内存池 351 **************************************************************************** */ 352 #define WLAN_MEM_EVENT_SUBPOOL_CNT 2 /* 本地事件内存池子池个数 */ 353 #define WLAN_MEM_EVENT_SIZE1 64 /* 注意: 事件内存长度 */ 354 #define WLAN_MEM_EVENT_SIZE2 512 /* 注意: 事件内存长度 */ 355 #define WLAN_MEM_EVENT_MULTI_USER_CNT1 96 /* 多用户下事件池子池1数量 */ 356 #define WLAN_MEM_EVENT_CNT2 6 /* 单用户下事件池子池2数量 */ 357 #define WLAN_MEM_EVENT_MULTI_USER_CNT2 8 /* 多用户下事件池子池2数量 */ 358 #define WLAN_MEM_EVENT_CNT1 40 /* 单用户下事件池子池1数量 */ 359 #define WLAN_WPS_IE_MAX_SIZE 352 // (WLAN_MEM_EVENT_SIZE2 - 32) /* 32表示事件自身占用的空间 */ 360 /* **************************************************************************** 361 37 MIB内存池 362 **************************************************************************** */ 363 #define WLAN_MEM_MIB_SUBPOOL_CNT 1 /* 本地MIB内存池子池个数 */ 364 #define WLAN_MEM_MIB_SIZE 476 /* 当前(wlan_mib_ieee802dot11_stru)=444+4 预留28bytes */ 365 /* **************************************************************************** 366 38 TCP ACK优化 367 **************************************************************************** */ 368 #define DEFAULT_TX_TCP_ACK_THRESHOLD 1 /* 丢弃发送ack 的门限 */ 369 #define DEFAULT_RX_TCP_ACK_THRESHOLD 1 /* 丢弃接收ack 的门限 */ 370 /* **************************************************************************** 371 39 frw相关的spec 372 **************************************************************************** */ 373 /* ***************************************************************************** 374 事件队列配置信息表 375 注意: 每个队列所能容纳的最大事件个数必须是2的整数次幂 376 ****************************************************************************** */ 377 #define FRW_EVENT_MAX_NUM_QUEUES (FRW_EVENT_TYPE_BUTT * WLAN_VAP_NUM_PER_BOARD) 378 /* 配置VAP事件队列配置 */ 379 #define WLAN_FRW_EVENT_CFG_TABLE_CFG_VAP \ 380 /* 事件类型 队列权重 队列最大事件个数 队列调度策略 */ \ 381 /* FRW_EVENT_TYPE_HIGH_PRIO */ { 1, 32, 0, 0}, \ 382 /* FRW_EVENT_TYPE_HOST_CRX */ { 1, 16, 1, 0}, \ 383 /* FRW_EVENT_TYPE_HOST_DRX */ { 1, 16, 1, 0}, \ 384 /* FRW_EVENT_TYPE_HOST_CTX */ { 1, 16, 1, 0}, \ 385 /* FRW_EVENT_TYPE_DMAC_TO_HMAC_CFG */ { 1, 16, 1, 0}, \ 386 /* FRW_EVENT_TYPE_WLAN_CRX */ { 1, 32, 0, 0}, \ 387 /* FRW_EVENT_TYPE_WLAN_DRX */ { 1, 16, 1, 0}, \ 388 /* FRW_EVENT_TYPE_WLAN_CTX */ { 1, 16, 1, 0}, \ 389 /* FRW_EVENT_TYPE_WLAN_DTX */ { 1, 16, 1, 0}, \ 390 /* FRW_EVENT_TYPE_WLAN_TX_COMP */ { 1, 32, 1, 0}, \ 391 /* FRW_EVENT_TYPE_TBTT */ { 1, 0, 1, 0}, \ 392 /* FRW_EVENT_TYPE_TIMEOUT */ { 1, 32, 1, 0}, \ 393 /* FRW_EVENT_TYPE_DMAC_MISC */ { 1, 32, 0, 0}, \ 394 /* FRW_EVENT_TYPE_HCC */ { 1, 32, 1, 0}, 395 396 /* 业务VAP事件队列配置 */ 397 /* FRW_EVENT_TYPE_HIGH_PRIO HAL层只通过配置VAP分发事件,业务VAP队列置0 398 FRW_EVENT_TYPE_WLAN_TX_COMP HAL层只通过配置VAP分发事件,业务VAP队列置0 399 FRW_EVENT_TYPE_TIMEOUT FRW层只通过配置VAP分发事件,业务VAP队列置0 400 FRW_EVENT_TYPE_TBTT 配置VAP没有TBTT中断 401 */ 402 #define WLAN_FRW_EVENT_CFG_TABLE_SERVIC_VAP \ 403 /* 事件类型 队列权重 队列所能容纳的最大事件个数 队列所属调度策略 */ \ 404 /* 事件类型 队列权重 队列最大事件个数 队列调度策略 */ \ 405 /* FRW_EVENT_TYPE_HIGH_PRIO */ { 1, 0 , 0, 0}, \ 406 /* FRW_EVENT_TYPE_HOST_CRX */ { 1, 32, 1, 0}, \ 407 /* FRW_EVENT_TYPE_HOST_DRX */ { 1, 32, 1, 0}, \ 408 /* FRW_EVENT_TYPE_HOST_CTX */ { 1, 16, 1, 0}, \ 409 /* FRW_EVENT_TYPE_DMAC_TO_HMAC_CFG */ { 1, 16, 1, 0}, \ 410 /* FRW_EVENT_TYPE_WLAN_CRX */ { 1, 64, 0, 0}, \ 411 /* FRW_EVENT_TYPE_WLAN_DRX */ { 1, 64, 1, 0}, \ 412 /* FRW_EVENT_TYPE_WLAN_CTX */ { 1, 16, 1, 0}, \ 413 /* FRW_EVENT_TYPE_WLAN_DTX */ { 1, 32, 1, 0}, \ 414 /* FRW_EVENT_TYPE_WLAN_TX_COMP */ { 1, 0 , 1, 0}, \ 415 /* FRW_EVENT_TYPE_TBTT */ { 1, 16, 1, 0}, \ 416 /* FRW_EVENT_TYPE_TIMEOUT */ { 1, 0 , 1, 0}, \ 417 /* DMAC FRW_EVENT_TYPE_DMAC_MISC */ { 1, 32, 0, 0}, \ 418 /* FRW_EVENT_TYPE_HCC */ { 1, 32, 1, 0}, 419 420 #define WLAN_FRW_EVENT_CFG_TABLE { \ 421 WLAN_FRW_EVENT_CFG_TABLE_CFG_VAP \ 422 WLAN_FRW_EVENT_CFG_TABLE_SERVIC_VAP \ 423 WLAN_FRW_EVENT_CFG_TABLE_SERVIC_VAP \ 424 WLAN_FRW_EVENT_CFG_TABLE_SERVIC_VAP \ 425 } 426 /* **************************************************************************** 427 40 虚拟OS适配 428 **************************************************************************** */ 429 #define WLAN_WPA_KEY_LEN 32 /* WPA 密钥长度 */ 430 #define WLAN_WPA_SEQ_LEN 16 /* WPA 序号长度 */ 431 432 /* 管理帧子类型 */ 433 typedef enum { 434 WLAN_ASSOC_REQ = 0, /* 0000 */ 435 WLAN_ASSOC_RSP = 1, /* 0001 */ 436 WLAN_REASSOC_REQ = 2, /* 0010 */ 437 WLAN_REASSOC_RSP = 3, /* 0011 */ 438 WLAN_PROBE_REQ = 4, /* 0100 */ 439 WLAN_PROBE_RSP = 5, /* 0101 */ 440 WLAN_TIMING_AD = 6, /* 0110 */ 441 WLAN_MGMT_SUBTYPE_RESV1 = 7, /* 0111 */ 442 WLAN_BEACON = 8, /* 1000 */ 443 WLAN_ATIM = 9, /* 1001 */ 444 WLAN_DISASOC = 10, /* 1010 */ 445 WLAN_AUTH = 11, /* 1011 */ 446 WLAN_DEAUTH = 12, /* 1100 */ 447 WLAN_ACTION = 13, /* 1101 */ 448 WLAN_ACTION_NO_ACK = 14, /* 1110 */ 449 WLAN_MGMT_SUBTYPE_RESV2 = 15, /* 1111 */ 450 451 WLAN_MGMT_SUBTYPE_BUTT = 16, /* 一共16种管理帧子类型 */ 452 } wlan_frame_mgmt_subtype_enum; 453 454 typedef enum { 455 WLAN_WME_AC_BE = 0, /* best effort */ 456 WLAN_WME_AC_BK = 1, /* background */ 457 WLAN_WME_AC_VI = 2, /* video */ 458 WLAN_WME_AC_VO = 3, /* voice */ 459 460 WLAN_WME_AC_BUTT = 4, 461 WLAN_WME_AC_MGMT = WLAN_WME_AC_BUTT /* 管理AC,协议没有,对应硬件高优先级队列 */ 462 } wlan_wme_ac_type_enum; 463 typedef hi_u8 wlan_wme_ac_type_enum_uint8; 464 465 /* TID编号类别 */ 466 typedef enum { 467 WLAN_TIDNO_BEST_EFFORT = 0, /* BE业务 */ 468 WLAN_TIDNO_BACKGROUND = 1, /* BK业务 */ 469 WLAN_TIDNO_UAPSD = 2, /* U-APSD */ 470 WLAN_TIDNO_ANT_TRAINING_LOW_PRIO = 3, /* 智能天线低优先级训练帧 */ 471 WLAN_TIDNO_ANT_TRAINING_HIGH_PRIO = 4, /* 智能天线高优先级训练帧 */ 472 WLAN_TIDNO_VIDEO = 5, /* VI业务 */ 473 WLAN_TIDNO_VOICE = 6, /* VO业务 */ 474 WLAN_TIDNO_BCAST = 7, /* 广播用户的广播或者组播报文 */ 475 476 WLAN_TIDNO_BUTT 477 } wlan_tidno_enum; 478 typedef hi_u8 wlan_tidno_enum_uint8; 479 480 enum wlan_serv_id { 481 WLAN_STA0_ID = 0x00, 482 WLAN_STA1_ID = 0x01, 483 WLAN_STA2_ID = 0x02, 484 WLAN_AP0_ID = 0x03, 485 WLAN_ID_NUM = 0xff /* 用于非关联状态或初始状态向平台投票进入或退出低功耗 */ 486 }; 487 #define WLAN_TID_MAX_NUM WLAN_TIDNO_BUTT /* TID个数为8 */ 488 489 /* **************************************************************************** 490 41 Mesh相关 491 **************************************************************************** */ 492 #define WLAN_MESH_PASSIVE_SCAN_PERIOD 500 /* mesh节点周期性进入被动扫描的时间 */ 493 #define WLAN_MESH_BEACON_PRIO_MAX 255 /* mesh节点beacon prio的最大值 */ 494 #define WLAN_MESH_BEACON_PRIO_MIN 0 /* mesh节点beacon prio的最小值 */ 495 #define WLAN_MESH_BEACON_TIMEOUT_VAL 20 /* Mesh节点Beacon发送超时时间(ms) */ 496 #define WLAN_MESH_6LO_PKT_LIMIT 500 /* Mesh节点6lo包头压缩帧长判断 */ 497 498 #ifdef __cplusplus 499 #if __cplusplus 500 } 501 #endif 502 #endif 503 #endif /* #ifndef __WLAN_SPEC_1131_H__ */ 504