• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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