• 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: vap / user common info for host and device
15  */
16 
17 #ifndef __ALG_COMMON_MACROS_ROM_H__
18 #define __ALG_COMMON_MACROS_ROM_H__
19 
20 #include "td_type.h"
21 #include "alg_autorate_common_rom.h"
22 #include "osal_types.h"
23 
24 #ifdef __cplusplus
25 #if __cplusplus
26 extern "C" {
27 #endif
28 #endif
29 /*
30  * 是否支持VHT协议的宏,针对一些只有VHT支持的场景下使用
31  * #define _PRE_WLAN_SUPPORT_VHT
32  *
33  * 串口打印宏,仅在宏开启时串口打印
34  * #define _PRE_WLAN_ALG_UART_PRINT
35  *
36  * 资源获取宏,多芯片场景下使用
37  * #define _PRE_ALG_RESOURCE_ACQUIRE_CHECK
38  */
39 /******************************************************************************
40   1.1 aggr宏定义
41 ******************************************************************************/
42 #define ALG_AGGR_DEFAULT_AGING_TIME_MS     10000 /* 默认per统计老化的时间门限(单位:ms) */
43 #define ALG_AGGR_PROBE_INTVL_NUM           16    /* 聚合时间探测对应的间隔包数目 */
44 #define ALG_AGGR_STAT_NUM                  16    /* 聚合时间探测的统计delta PER的包数目 */
45 #define ALG_AGGR_STAT_SHIFT                4     /* 聚合时间探测的统计delta PER的平滑移位值 */
46 #define ALG_AGGR_INTF_STAT_SHIFT           2     /* 叠频场景, 减少delta PER平滑移位值,加快判决 */
47 #define ALG_AGGR_INTF_DOWN_STAT_NUM        4     /* 干扰场景聚合时间向下探测的统计delta PER的包数目 */
48 #define ALG_AGGR_INTF_UP_STAT_NUM          32    /* 干扰场景聚合时间向上探测的统计delta PER的包数目 */
49 #define ALG_AGGR_INTF_DOWN_UPDATE_STAT_NUM 3     /* 干扰场景聚合时间向下探测的开始更新state num数目 */
50 #define ALG_AGGR_INTF_UP_UPDATE_STAT_NUM   8     /* 干扰场景聚合时间向上探测的开始更新state num数目 */
51 
52 #define ALG_AGGR_TIME_LIST_NUM             6          /* 聚合传输时间列表的元素个数 */
53 #define ALG_AGGR_INIT_AVG_STAT_NUM         4     /* 聚合初始per统计的包数目 */
54 #define ALG_AGGR_MAX_PROBE_WAIT_COUNT      3     /* 等待探测结果的最大发送完成中断次数(避免中断丢失导致状态异常) */
55 #define ALG_AGGR_NON_PROBE_PKT_NUM         6     /* 最优速率发生变化时,不进行包探测的个数 */
56 #define ALG_AGGR_DBAC_DEFAULT_TIME_IDX     (ALG_AGGR_TIME_LIST_NUM - 1)     /* DBAC聚合传输时间对应的数组下标(4ms) */
57 
58 /******************************************************************************
59   1.2 DBAC 宏定义
60 ******************************************************************************/
61 #define CFG_DBAC_TBTT_OFFSET                10000     /* 使用定时器延时后 OFFSET为 0us */
62 #define CFG_DBAC_PROTECT_TIME_OUT_MIN       4096    /* us */
63 #define DBAC_ONE_PACKET_SW_WAIT_TIME 500
64 #define DBAC_VIP_PROTECT_THRESHOLD 1
65 #define CFG_DBAC_TIMER_OFFSET               10     /* 右移10位 */
66 #define CFG_DBAC_DESIRED_TBTT_ADJUST        0     /* us */
67 #define CFG_DBAC_START_NOA_OFFSET 0              /* us */
68 #define CFG_DBAC_TSF_THRESHOLD  20               /* us */
69 #define CFG_DBAC_RESV_NETBUF_THRESHOLD 5        /* 预留5个netbuf */
70 #define CFG_DBAC_PROTECT_GC_SLOT_PERIOD 1
71 
72 /*****************************************************************************
73   1.3 COMMON 宏定义
74 *****************************************************************************/
75 #define ALG_LOCK_TIMES_TH 2048
76 #define ALG_LOCK_TIMESTAMP_TH 300000
77 /*****************************************************************************
78   1.4 RTS 宏定义
79 *****************************************************************************/
80 #define ALG_RTS_TOLERANT_RTS_ALL_FAIL_CNT   3      /* 可容忍的RTS All fail次数 */
81 
82 #define ALG_RTS_PER_MULTIPLE                1024   /* PER扩大的倍数,默认扩大1024倍 */
83 #define ALG_RTS_LOSS_RATIO_MAX_NUM          350    /* 首包错误率最大门限,大于该门限清零 */
84 #define ALG_RTS_LOSS_RATIO_RTS_RETRY_NUM    2      /* 首包错误率统计重传次数门限,小于该重传次数时,保持1024 */
85 #define ALG_RTS_LOSS_RATIO_STAT_RETRY_NUM   4      /* 首包错误率统计重传次数门限,小于该重传次数时,统计值减半 */
86 
87 #define ALG_RTS_PER_STAT_FAR_RSSI_THR      (-82)   /* 更新PER时判定当前是否为强信号的门限 */
88 #define ALG_RTS_PER_STAT_NORMAL_RSSI_THR   (-60)   /* 更新PER时判定当前是否为强信号的门限 */
89 
90 #define ALG_RTS_FIRST_PKT_STAT_SHIFT       6       /* 首包错误率的默认统计除2位移值(只针对最优速率) */
91 #define ALG_RTS_FIRST_PKT_STAT_INTVL       32      /* 默认首包错误率的统计间隔包数目 */
92 #define ALG_RTS_LEGACY_1ST_LOSS_RATIO_TH   160     /* LEGACY帧的默认首包错误率(单位:千分数) */
93 #define ALG_RTS_HT_VHT_1ST_LOSS_RATIO_TH   130     /* HT/VHT帧的默认首包错误率(单位:千分数) */
94 
95 #define ALG_RTS_OPEN_RTS_RSSI_HIGH_THR     (-70)   /* RSSI小于该门限时,打开RTS */
96 #define ALG_RTS_OPEN_RTS_RSSI_LOW_THR      (-85)   /* RSSI大于该门限时,打开RTS */
97 
98 #define TXOP_DURATION_RTS_THRESHOLD_MAX    1023    /* dot11TxopRTSThreshold的最大值 */
99 #define TXOP_DURATION_RTS_THRESHOLD_ON     1       /* dot11TxopRTSThreshold是否开启 */
100 #define ALG_RTS_KBPS_TO_BPUS               1000    /* kbps转换到bpus */
101 
102 #define ALG_RTS_DURATION_MULTIPLE          0       /* 与rts空口相加,与ppdu空口比较,判断ppdu空口是否需要rts保护 */
103 #define ALG_RTS_DURATION_OPEN              1       /* 是否开启用ppdu空口开销决策是否开关rts */
104 #define ALG_RTS_RSSI_OPEN                  0       /* 是否启用弱信号场景打开RTS的功能 */
105 #define ALG_RTS_RATE_DESCEND               0       /* RTS速率是否需要主动降档 */
106 
107 #define ALG_RTS_11B_RATE_NUM  4    /* RTS 11B速率个数 */
108 #define ALG_RTS_11G_RATE_NUM  8    /* RTS 11G速率个数 */
109 #define ALG_RTS_11N_RATE_NUM  6    /* RTS 11N速率个数 */
110 #define ALG_RTS_11AX_RATE_NUM 6    /* RTS 11AX速率个数 */
111 
112 /******************************************************************************
113   1.5 TPC 宏定义
114 ******************************************************************************/
115 #define HMAC_WLAN_NEAR_DISTANCE_RSSI        (0)             /* 默认近距离信号门限0dBm */
116 #define HMAC_WLAN_FAR_DISTANCE_RSSI         (-127)             /* 默认远距离信号门限-127dBm */
117 #define HMAC_WLAN_NORMAL_DISTANCE_RSSI_UP   (-42)             /* 信号强度小于-42dBm时,才认为非超近距离 */
118 #define HMAC_ALG_TPC_RATE_DOWN_GAP 2                          /* 速率下降的间隙 */
119 #define HMAC_ALG_TPC_RATE_UP_GAP 2                            /* 速率上升的间隙 */
120 #define HMAC_ALG_TPC_RATE_DOWN_WAIT_COUNT 32                  /* 速率下降等待次数(避免速率突变导致超近距离误判) */
121 
122 /*****************************************************************************
123   1.6 OTHER 宏定义
124 *****************************************************************************/
125 #define ALG_PER_PERCENT_MULTIPLE     1024  /* 百分比扩大倍数 */
126 #define ALG_PER_MULTIPLE_SHIFT       10    /* 百分比扩大倍数的移位值 */
127 #define ALG_FRAME_LEN                1544  /* 典型包长 */
128 #define ALG_MAX_USER_NUM_BUTT        8    /* 用户id最大7,对应数组长度 */
129 #define ALG_MAGIC_NUM  0xdeadbeef
130 #define ALG_MAX_NUM 0XFFFFFFFF
131 
132 #define alg_is_null_ptr1(ptr1) \
133     (NULL == (ptr1))
134 #define alg_is_null_ptr2(ptr1, ptr2) \
135     ((NULL == (ptr1)) || (NULL == (ptr2)))
136 #define alg_is_null_ptr3(ptr1, ptr2, ptr3) \
137     ((NULL == (ptr1)) || (NULL == (ptr2)) || (NULL == (ptr3)))
138 #define alg_is_null_ptr4(ptr1, ptr2, ptr3, ptr4) \
139     ((NULL == (ptr1)) || (NULL == (ptr2)) || (NULL == (ptr3)) || (NULL == (ptr4)))
140 #define alg_is_null_ptr5(ptr1, ptr2, ptr3, ptr4, ptr5) \
141     ((NULL == (ptr1)) || (NULL == (ptr2)) || (NULL == (ptr3)) ||  \
142     (NULL == (ptr4)) || (NULL == (ptr5)))
143 
alg_delta_count32(osal_u32 start,osal_u32 end)144 static INLINE__ osal_u32 alg_delta_count32(osal_u32 start, osal_u32 end)
145 {
146     if (start < end) {
147         return end - start;
148     } else {
149         return ((osal_u32)ALG_MAX_NUM - start) + end + 1; /* 1:加1 */
150     }
151 }
152 /*****************************************************************************
153   2 枚举
154 *****************************************************************************/
155 /* RTS速率挡位枚举 */
156 typedef enum {
157     ALG_RTS_LONG_11B_1M = 0,       /* 0: RTS速率为11b1M, long preamble */
158     ALG_RTS_11B_5M5     = 1,       /* 1: RTS速率为11b5.5M */
159     ALG_RTS_11B_11M     = 2,       /* 2: RTS速率为11b11M */
160     ALG_RTS_11G_6M      = 3,       /* 3: RTS速率为11g6M */
161     ALG_RTS_11G_12M     = 4,       /* 4: RTS速率为11g12M */
162     ALG_RTS_11G_24M     = 5,       /* 5: RTS速率为11g24M */
163 
164     ALG_RTS_RATE_BUTT
165 } alg_rts_rate_enum;
166 typedef osal_u8 alg_rts_rate_enum_uint8;
167 
168 typedef enum {
169     CH_BW_CHG_TYPE_MOVE_WORK,
170     CH_BW_CHG_TYPE_SCAN,
171     CH_BW_CHG_TYPE_REFRESH, /* 用于TPC刷新code表 */
172 
173     CH_BW_CHG_TYPE_BUTT
174 } mac_alg_channel_bw_chg_type;
175 typedef osal_u8 mac_alg_channel_bw_chg_type_uint8;
176 
177 typedef enum {
178     /* 业务调度算法配置参数,请添加到对应的START和END之间 */
179     MAC_ALG_CFG_SCHEDULE_START,
180 
181     MAC_ALG_CFG_SCHEDULE_SCH_CYCLE_MS,
182     MAC_ALG_CFG_SCHEDULE_SCH_METHOD,
183     MAC_ALG_CFG_SCHEDULE_FIX_SCH_MODE,
184     MAC_ALG_CFG_SCHEDULE_STAT_LOG,
185     MAC_ALG_CFG_SCHEDULE_HOST_END,
186 
187     MAC_ALG_CFG_SCHEDULE_DMAC_START,
188 
189     MAC_ALG_CFG_SCHEDULE_TX_TIME_METHOD,
190     MAC_ALG_CFG_SCHEDULE_TX_TIME_DEBUG,
191     MAC_ALG_CFG_SCHEDULE_DMAC_STAT_LOG,
192 
193     MAC_ALG_CFG_SCHEDULE_END,
194 
195     /* AUTORATE算法配置参数,请添加到对应的START和END之间 */
196     MAC_ALG_CFG_AUTORATE_START = 50,
197     MAC_ALG_CFG_AUTORATE_DMAC_START,
198     MAC_ALG_CFG_AUTORATE_RATE_MODE,
199     MAC_ALG_CFG_AUTORATE_FIX_RATE,
200     MAC_ALG_CFG_AUTORATE_DEBUG_LOG,
201     MAC_ALG_CFG_AUTORATE_AUTO_BW,
202     MAC_ALG_CFG_AUTORATE_EVENT_TRIG_DESCEND_BW,
203     MAC_ALG_CFG_AUTORATE_AUTO_PROTOCOL,
204     MAC_ALG_CFG_AUTORATE_IS_ENABLE,
205 
206     MAC_ALG_CFG_AUTORATE_END,
207 
208     /* AUTOAGGR算法配置参数,请添加到对应的START和END之间 */
209     MAC_ALG_CFG_AGGR_START,
210 
211     MAC_ALG_CFG_AGGR_ENABLE,
212     MAC_ALG_CFG_AGGR_MODE,
213     MAC_ALG_CFG_AGGR_FIXED_TIME_IDX,
214     MAC_ALG_CFG_AGGR_MAX_AGGR_NUM,
215     MAC_ALG_CFG_AGGR_MIN_TIME_IDX,
216     MAC_ALG_CFG_AGGR_DBG_LOG,
217     MAC_ALG_CFG_AGGR_SERIAL_LOG,
218     MAC_ALG_CFG_AGGR_VO_EN,
219     MAC_ALG_CFG_AGGR_PROBE_INTVL_NUM,
220     MAC_ALG_CFG_AGGR_NON_PROBE_PCK_NUM,
221     MAC_ALG_CFG_AGGR_STAT_SHIFT,
222 
223     MAC_ALG_CFG_AGGR_END,
224 
225     /* temp protect算法配置 */
226     MAC_ALG_CFG_TEMP_PROTECT_START,
227     MAC_ALG_CFG_TEMP_PROTECT_GET,
228     MAC_ALG_CFG_TEMP_PROTECT_SAFE_TH_SET,
229     MAC_ALG_CFG_TEMP_PROTECT_OVER_TH_SET,
230     MAC_ALG_CFG_TEMP_PROTECT_PAOFF_TH_SET,
231     MAC_ALG_CFG_TEMP_PROTECT_TIMES,
232     MAC_ALG_CFG_TEMP_PROTECT_DEBUG,
233     MAC_ALG_CFG_TEMP_PROTECT_TEMP_SET,
234     MAC_ALG_CFG_TEMP_PROTECT_END,
235     /* 抗干扰算法配置参数,请添加到对应的START和END之间 */
236     MAC_ALG_CFG_ANTI_INTF_START,
237 
238     MAC_ALG_CFG_ANTI_INTF_IMM_ENABLE,
239     MAC_ALG_CFG_ANTI_INTF_UNLOCK_ENABLE,
240     MAC_ALG_CFG_ANTI_INTF_RSSI_STAT_CYCLE,
241     MAC_ALG_CFG_ANTI_INTF_UNLOCK_CYCLE,
242     MAC_ALG_CFG_ANTI_INTF_UNLOCK_DUR_TIME,
243     MAC_ALG_CFG_ANTI_INTF_NAV_IMM_ENABLE,
244     MAC_ALG_CFG_ANTI_INTF_GOODPUT_FALL_TH,
245     MAC_ALG_CFG_ANTI_INTF_KEEP_CYC_MAX_NUM,
246     MAC_ALG_CFG_ANTI_INTF_KEEP_CYC_MIN_NUM,
247     MAC_ALG_CFG_ANTI_INTF_TX_TIME_FALL_TH,
248     MAC_ALG_CFG_ANTI_INTF_PER_PROBE_EN,
249     MAC_ALG_CFG_ANTI_INTF_PER_FALL_TH,
250     MAC_ALG_CFG_ANTI_INTF_GOODPUT_JITTER_TH,
251     MAC_ALG_CFG_ANTI_INTF_DEBUG_MODE,
252     MAC_ALG_CFG_ANTI_INTF_NAV_IMM_ENQUIRY,
253 
254     MAC_ALG_CFG_ANTI_INTF_END,
255 
256     /* 干扰检测算法配置参数,请添加到对应的START和END之间 */
257     MAC_ALG_CFG_INTF_DET_START,
258 
259     MAC_ALG_CFG_INTF_DET_CYCLE,
260     MAC_ALG_CFG_INTF_DET_MODE,
261     MAC_ALG_CFG_INTF_DET_DEBUG,
262     MAC_ALG_CFG_INTF_DET_COCH_THR_STA,
263     MAC_ALG_CFG_INTF_DET_COCH_NOINTF_STA,
264     MAC_ALG_CFG_INTF_DET_COCH_THR_UDP,
265     MAC_ALG_CFG_INTF_DET_COCH_THR_TCP,
266     MAC_ALG_CFG_INTF_DET_ADJCH_SCAN_CYC,
267     MAC_ALG_CFG_INTF_DET_ADJRATIO_THR,
268     MAC_ALG_CFG_INTF_DET_SYNC_THR,
269     MAC_ALG_CFG_INTF_DET_AVE_RSSI,
270     MAC_ALG_CFG_INTF_DET_NO_ADJRATIO_TH,
271     MAC_ALG_CFG_INTF_DET_NO_ADJCYC_TH,
272     MAC_ALG_CFG_INTF_DET_GET_INTF_TYPE,
273     MAC_ALG_CFG_INTF_DET_SET_PK_MODE,
274 
275     MAC_ALG_CFG_INTF_DET_END,
276 
277     /* EDCA优化算法配置参数,请添加到对应的START和END之间 */
278     MAC_ALG_CFG_EDCA_OPT_START,
279 
280     MAC_ALG_CFG_EDCA_OPT_AP_EN_MODE,
281     MAC_ALG_CFG_EDCA_OPT_STA_EN,
282     MAC_ALG_CFG_TXOP_LIMIT_STA_EN,
283     MAC_ALG_CFG_EDCA_OPT_STA_WEIGHT,
284     MAC_ALG_CFG_EDCA_OPT_PK_DEBUG_MODE,
285     MAC_ALG_CFG_EDCA_OPT_INTF_DEBUG_MODE,
286     MAC_ALG_CFG_EDCA_DET_COLLISION_TH,
287     MAC_ALG_CFG_EDCA_NEG_DET_NONPROBE_TH,
288     MAC_ALG_CFG_EDCA_ONE_BE_TCP_OPT,
289     MAC_ALG_CFG_EDCA_ONE_BE_TCP_DBG,
290     MAC_ALG_CFG_EDCA_ONE_BE_TCP_TH_NO_INTF,
291     MAC_ALG_CFG_EDCA_ONE_BE_TCP_TH_INTF,
292 
293     MAC_ALG_CFG_EDCA_OPT_END,
294 
295     /* CCA优化算法配置参数,请添加到对应的START和END之间 */
296     MAC_ALG_CFG_CCA_OPT_START,
297 
298     MAC_ALG_CFG_CCA_OPT_ALG_EN_MODE,
299     MAC_ALG_CFG_CCA_OPT_DEBUG_MODE,
300     MAC_ALG_CFG_CCA_OPT_SET_CCA_TH_DEBUG,
301     MAC_ALG_CFG_CCA_OPT_SET_CCA_ED20,
302     MAC_ALG_CFG_CCA_OPT_SET_CCA_ED40,
303     MAC_ALG_CFG_CCA_OPT_SET_CCA_DSSS,
304     MAC_ALG_CFG_CCA_OPT_SET_CCA_OFDM,
305     MAC_ALG_CFG_CCA_OPT_LOG,
306 
307     MAC_ALG_CFG_CCA_OPT_END,
308 
309     /* 算法日志配置参数,请添加到对应的START和END之间 */
310     MAC_ALG_CFG_INTF_DET_LOG_START,
311 
312     MAC_ALG_CFG_INTF_DET_STAT_LOG_START,
313     MAC_ALG_CFG_INTF_DET_STAT_LOG_WRITE,
314 
315     MAC_ALG_CFG_INTF_DET_LOG_END,
316 
317     /* TPC算法配置参数, 请添加到对应的START和END之间 */
318     MAC_ALG_CFG_TPC_START,
319 
320     MAC_ALG_CFG_TPC_MODE,
321     MAC_ALG_CFG_TPC_DEBUG,
322     MAC_ALG_CFG_TPC_LOG,
323     MAC_ALG_CFG_TPC_QUERY,
324     MAC_ALG_CFG_TPC_OVER_TMP_TH,
325     MAC_ALG_CFG_TPC_DPD_ENABLE_RATE,
326     MAC_ALG_CFG_TPC_TARGET_RATE_11B,
327     MAC_ALG_CFG_TPC_TARGET_RATE_11AG,
328     MAC_ALG_CFG_TPC_TARGET_RATE_HT20,
329     MAC_ALG_CFG_TPC_FIX_PWR_CODE,
330     MAC_ALG_CFG_TPC_TX_PWR_OFFSET_2G,
331     MAC_ALG_CFG_TPC_RF_LIMIT_OFFSET_2G,
332 
333     MAC_ALG_CFG_TPC_END,
334 
335     /* TPC算法日志配置参数,请添加到对应的START和END之间 */
336     MAC_ALG_CFG_TPC_LOG_START,
337 
338     MAC_ALG_CFG_TPC_STAT_LOG_START,
339     MAC_ALG_CFG_TPC_STAT_LOG_WRITE,
340     MAC_ALG_CFG_TPC_PER_PKT_LOG_START,
341     MAC_ALG_CFG_TPC_PER_PKT_LOG_WRITE,
342     MAC_ALG_CFG_TPC_GET_FRAME_POW,
343     MAC_ALG_CFG_TPC_RESET_STAT,
344     MAC_ALG_CFG_TPC_RESET_PKT,
345 
346     MAC_ALG_CFG_TPC_LOG_END,
347 
348     /* 多用户流量控制算法配置参数 */
349     MAC_ALG_CFG_TRAFFIC_CTL_START,
350     MAC_ALG_CFG_TRAFFIC_CTL_ENABLE,
351     MAC_ALG_CFG_TRAFFIC_CTL_TIMEOUT,
352     MAC_ALG_CFG_TRAFFIC_CTL_LOG_DEBUG,
353     MAC_ALG_CFG_TRAFFIC_CTL_RX_ENABLE,
354     MAC_ALG_CFG_TRAFFIC_CTL_TX_ENABLE,
355 
356     MAC_ALG_CFG_TRAFFIC_CTL_RX_RESTORE_THRESHOLD,
357     MAC_ALG_CFG_TRAFFIC_CTL_PKT_LOW_THRESHOLD,
358     MAC_ALG_CFG_TRAFFIC_CTL_PKT_HIGH_THRESHOLD,
359     MAC_ALG_CFG_TRAFFIC_CTL_PKT_BUSY_THRESHOLD,
360     MAC_ALG_CFG_TRAFFIC_CTL_DSCR_MIN_THRESHOLD,
361     MAC_ALG_CFG_TRAFFIC_CTL_DSCR_LOW_THRESHOLD,
362     MAC_ALG_CFG_TRAFFIC_CTL_DSCR_HIGH_THRESHOLD,
363     MAC_ALG_CFG_TRAFFIC_CTL_DSCR_BUSY_THRESHOLD,
364 
365     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_RX_RESTORE_THRESHOLD,
366     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_PKT_LOW_THRESHOLD,
367     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_PKT_HIGH_THRESHOLD,
368     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_PKT_BUSY_THRESHOLD,
369     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_DSCR_MIN_THRESHOLD,
370     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_DSCR_LOW_THRESHOLD,
371     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_DSCR_HIGH_THRESHOLD,
372     MAC_ALG_CFG_TRAFFIC_CTL_SMALL_DSCR_BUSY_THRESHOLD,
373 
374     MAC_ALG_CFG_TRAFFIC_CTL_TX_WINDOW_SIZE,
375     MAC_ALG_CFG_TRAFFIC_CTL_TX_NETBUF_RESV_SIZE,
376     MAC_ALG_CFG_TRAFFIC_CTL_TX_MAX_FLOWCTL_CNT,
377     MAC_ALG_CFG_TRAFFIC_CTL_INFO_DUMP,
378     MAC_ALG_CFG_TRAFFIC_CTL_INFO_CLEAR,
379 
380     MAC_ALG_CFG_TRAFFIC_CTL_END,
381 
382     /* MWO DET算法日志配置参数,请添加到对应的START和END之间 */
383     MAC_ALG_CFG_MWO_DET_START,
384 
385     MAC_ALG_CFG_MWO_DET_ENABLE,
386     MAC_ALG_CFG_MWO_DET_END_RSSI_TH,
387     MAC_ALG_CFG_MWO_DET_START_RSSI_TH,
388     MAC_ALG_CFG_MWO_DET_DEBUG,
389 
390     MAC_ALG_CFG_MWO_DET_END,
391 
392     /* RTS算法使能,速率配置,rts模式选择配置参数,请添加到对应的START和END之间 */
393     MAC_ALG_CFG_RTS_START,
394 
395     MAC_ALG_CFG_RTS_ENABLE,
396     MAC_ALG_CFG_RTS_MODE,
397     MAC_ALG_CFG_RTS_DEBUG,
398     MAC_ALG_CFG_RTS_RATE,
399     MAC_ALG_CFG_GET_RTS_MODE,
400     MAC_ALG_CFG_RTS_MIB,
401     MAC_ALG_CFG_RTS_HOST,
402 
403     MAC_ALG_CFG_RTS_END,
404 
405     MAC_ALG_CFG_DBAC_START,
406     MAC_ALG_CFG_DBAC_LOG_ON,
407     MAC_ALG_CFG_DBAC_LOG_OFF,
408     MAC_ALG_CFG_DBAC_FIX_RATIO,
409     MAC_ALG_CFG_DBAC_STATS_INFO,
410     MAC_ALG_CFG_DBAC_RUN_INFO,
411     MAC_ALG_CFG_DBAC_STATS_CLEAR,
412     MAC_ALG_CFG_DBAC_END,
413 
414     MAC_ALG_CFG_GLA_START,
415     MAC_ALG_CFG_GLA_USUAL_SWITCH,
416     MAC_ALG_CFG_GET_GLA_USUAL_SWITCH,
417     MAC_ALG_CFG_GLA_OPTIONAL_SWITCH,
418     MAC_ALG_CFG_GET_GLA_OPTIONAL_SWITCH,
419     MAC_ALG_CFG_GLA_END,
420     // 预留
421     MAC_ALG_CFG_AR_PARAMETER_DEBUG,
422     MAC_ALG_CFG_RESV2,
423     MAC_ALG_CFG_RESV3,
424     MAC_ALG_CFG_RESV4,
425     MAC_ALG_CFG_RESV5,
426     MAC_ALG_CFG_RESV6,
427     MAC_ALG_CFG_RESV7,
428     MAC_ALG_CFG_RESV8,
429     MAC_ALG_CFG_RESV9,
430     MAC_ALG_CFG_RESV10,
431     MAC_ALG_CFG_RESV11,
432     MAC_ALG_CFG_RESV12,
433     MAC_ALG_CFG_RESV13,
434     MAC_ALG_CFG_RESV14,
435     MAC_ALG_CFG_RESV15,
436     MAC_ALG_CFG_RESV16,
437 
438     MAC_ALG_CFG_BUTT
439 } mac_alg_cfg_enum;
440 typedef osal_u16 mac_alg_cfg_enum_uint16;
441 
442 /* 距离状态通知钩子类型 */
443 typedef enum {
444     ALG_DISTANCE_NOTIFY_START = 0,
445     ALG_DISTANCE_NOTIFY_DMAC_MODULE = ALG_DISTANCE_NOTIFY_START,
446     ALG_TPC_BFEE_REPORT_POW_UPDATE_NOTIFY,
447 
448     ALG_DISTANCE_NOTIFY_BUTT
449 } alg_distance_notify_enum;
450 typedef osal_u8 alg_distance_notify_enum_uint8;
451 
452 /* 参数同步通知钩子类型 */
453 typedef enum {
454     ALG_PARAM_SYNC_START = 0,
455     ALG_PARAM_SYNC_TPC = ALG_PARAM_SYNC_START,
456     ALG_PARAM_SYNC_TRAFFIC_CTL,
457     ALG_PARAM_SYNC_ANTI_INTF,
458     ALG_PARAM_SYNC_DBAC,
459     ALG_PARAM_SYNC_RTS,
460     ALG_PARAM_SYNC_COMMON,
461     ALG_PARAM_SYNC_AGGR,
462     ALG_PARAM_SYNC_AUTORATE,
463     ALG_PARAM_SYNC_TX_TB,
464     ALG_PARAM_SYNC_SCH,
465     ALG_PARAM_SYNC_GLA,
466     ALG_PARAM_SYNC_NOTIFY_BUTT
467 } alg_param_sync_notify_enum;
468 typedef osal_u8 alg_param_sync_notify_enum_uint8;
469 
470 /* 用户统计RSSI类别 */
471 typedef enum {
472     ALG_TPC_RSSI_ACK = 0,
473     ALG_TPC_RSSI_DATA = 1,
474     ALG_TPC_RSSI_MANAG = 2,
475 
476     ALG_TPC_RSSI_BUTT
477 } alg_tpc_rssi_mode_enum;
478 typedef osal_u8 alg_tpc_rssi_mode_enum_uint8;
479 
480 /* 同频干扰状态通知钩子类型 */
481 typedef enum {
482     ALG_CO_INTF_NOTIFY_START = 0,
483     ALG_CO_INTF_NOTIFY_DMAC_MODULE = ALG_CO_INTF_NOTIFY_START,
484     ALG_CO_INTF_NOTIFY_AGGR = 1,
485     ALG_CO_INTF_NOTIFY_RTS = 2,
486     ALG_CO_INTF_NOTIFY_TPC = 3,
487 
488     ALG_CO_INTF_NOTIFY_BUTT
489 } alg_co_intf_notify_enum;
490 typedef osal_u8 alg_co_intf_notify_enum_uint8;
491 
492 typedef enum {
493     ALG_CFG_INT8   = 0,
494     ALG_CFG_UINT8  = 1,
495     ALG_CFG_UINT16 = 2,
496     ALG_CFG_UINT32 = 3,
497     ALG_CFG_UINT64 = 4,
498     ALG_CFG_TYPE_BUTT
499 } alg_cfg_param_type_enum;
500 typedef osal_u8 alg_cfg_param_type_enum_uint8;
501 typedef enum {
502     ALG_MEM_AUTORATE = 0,
503     ALG_MEM_AGGR,
504     ALG_MEM_TPC,
505     ALG_MEM_RTS,
506     ALG_MEM_CCA,
507     ALG_MEM_DBAC,
508     ALG_MEM_EDCA,
509     ALG_MEM_INTF_DET,
510     ALG_MEM_SCHEDULE,
511     ALG_MEM_SMARTANT,
512     ALG_MEM_TXBF,
513     ALG_MEM_TEMP_PROT,
514     ALG_MEM_ANTI_INTF,
515     ALG_MEM_COMMON,
516     ALG_MEM_BUTT
517 } alg_mem_enum;
518 typedef osal_u8 alg_mem_enum_uint8;
519 
520 typedef enum {
521     ALG_INTF_DET_COCH = 0,        /* 同频干扰检测 */
522     ALG_INTF_DET_ADJCH = 1,       /* 邻频干扰检测 */
523     ALG_INTF_DET_TX_TIME = 2,     /* 发送时间 */
524 
525     ALG_INTF_DET_TYPE_BUTT
526 } alg_intf_det_type_enum;
527 typedef osal_u8 alg_intf_det_type_enum_uint8;
528 
529 #ifdef _PRE_WLAN_FEATURE_NEGTIVE_DET
530 /* 与hal_alg_intf_det_mode_enum_uint8的区别 */
531 typedef enum {
532     ALG_INTF_DET_STATE_NOINTF = 0, /* 无干扰状态 */
533     ALG_INTF_DET_STATE_DETINTF,     /* 检测到干扰状态 */
534     ALG_INTF_DET_STATE_PKADJ,      /* PK参数调整状态 */
535     ALG_INTF_DET_STATE_PK,         /* PK状态 */
536 
537     ALG_INTF_DET_STATE_BUTT
538 } alg_intf_det_state_enum;
539 typedef osal_u8 alg_intf_det_state_enum_uint8;
540 #endif
541 
542 #ifdef _PRE_WLAN_FEATURE_INTRF_MODE
543 typedef enum {
544     MAC_ALG_INTRF_MODE_11B_SWITCH,
545     MAC_ALG_INTRF_MODE_CCA_SWITCH,
546     MAC_ALG_INTRF_MODE_EDCA_SWITCH,
547     MAC_ALG_INTRF_MODE_11N_SWITCH,
548     MAC_ALG_INTRF_MODE_NO_11B_SWITCH,
549     MAC_ALG_INTRF_MODE_LONG_RANGE_INTRF_SWITCH,
550 
551     MAC_ALG_INTRF_MODE_CFG_BUTT
552 } mac_alg_intrf_mode_cfg_enum;
553 typedef osal_u8 mac_alg_intrf_mode_cfg_enum_uint8;
554 #endif
555 
556 /* GLA开关枚举类型 常驻/可选 */
557 typedef enum {
558     ALG_GLA_USUAL_SWITCH,
559     ALG_GLA_OPTIONAL_SWITCH,
560 
561     ALG_GLA_SWITCH_TYPE_BUTT
562 } alg_gla_switch_type_enum;
563 typedef osal_u8 alg_gla_switch_type_enum_uint8;
564 
565 #ifdef __cplusplus
566 #if __cplusplus
567 }
568 #endif
569 #endif
570 
571 #endif /* end of alg_common_macros_rom.h */
572