• 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: common_dft 的头文件
15  * Date: 2022-03-08
16  */
17 
18 #ifndef __COMMON_DFT_H__
19 #define __COMMON_DFT_H__
20 
21 #include "common_dft_rom.h"
22 
23 #ifdef __cplusplus
24 #if __cplusplus
25 extern "C" {
26 #endif
27 #endif
28 
29 /* 该枚举类型不建议频繁添加,只适用于异常原因明确的分支,周期上报异常触发日志 */
30 typedef enum {
31     OAM_HAL_MAC_ERROR_PARA_CFG_ERR =
32         0, /* 描述符参数配置异常,包括AMPDU长度配置不匹配,AMPDU中MPDU长度超长,sub msdu num错误 */
33     OAM_HAL_MAC_ERROR_RXBUFF_LEN_TOO_SMALL = 1,    /* 接收非AMSDU帧长大于RxBuff大小异常 */
34     OAM_HAL_MAC_ERROR_BA_ENTRY_NOT_FOUND = 2,      /* 未找到BA会话表项异常0 */
35     OAM_HAL_MAC_ERROR_PHY_TRLR_TIME_OUT = 3,       /* PHY_RX_TRAILER超时 */
36     OAM_HAL_MAC_ERROR_PHY_RX_FIFO_OVERRUN = 4,     /* PHY_RX_FIFO满写异常 */
37     OAM_HAL_MAC_ERROR_TX_DATAFLOW_BREAK = 5,       /* 发送帧数据断流 */
38     OAM_HAL_MAC_ERROR_RX_FSM_ST_TIMEOUT = 6,       /* RX_FSM状态机超时 */
39     OAM_HAL_MAC_ERROR_TX_FSM_ST_TIMEOUT = 7,       /* TX_FSM状态机超时 */
40     OAM_HAL_MAC_ERROR_RX_HANDLER_ST_TIMEOUT = 8,   /* RX_HANDLER状态机超时 */
41     OAM_HAL_MAC_ERROR_TX_HANDLER_ST_TIMEOUT = 9,   /* TX_HANDLER状态机超时 */
42     OAM_HAL_MAC_ERROR_TX_INTR_FIFO_OVERRUN = 10,   /* TX 中断FIFO满写 */
43     OAM_HAL_MAC_ERROR_RX_INTR_FIFO_OVERRUN = 11,   /* RX中断 FIFO满写 */
44     OAM_HAL_MAC_ERROR_HIRX_INTR_FIFO_OVERRUN = 12, /* HIRX中断FIFO满写 */
45     OAM_HAL_MAC_ERROR_RX_Q_EMPTY = 13,             /* 接收到普通优先级帧但此时RX BUFFER指针为空 */
46     OAM_HAL_MAC_ERROR_HIRX_Q_EMPTY = 14,           /* 接收到高优先级帧但此时HI RX BUFFER指针为空 */
47     OAM_HAL_MAC_ERROR_BUS_RLEN_ERR = 15,           /* 总线读请求长度为0异常 */
48     OAM_HAL_MAC_ERROR_BUS_RADDR_ERR = 16,          /* 总线读请求地址无效异常 */
49     OAM_HAL_MAC_ERROR_BUS_WLEN_ERR = 17,           /* 总线写请求长度为0异常 */
50     OAM_HAL_MAC_ERROR_BUS_WADDR_ERR = 18,          /* 总线写请求地址无效异常 */
51     OAM_HAL_MAC_ERROR_TX_ACBK_Q_OVERRUN = 19,      /* tx acbk队列fifo满写 */
52     OAM_HAL_MAC_ERROR_TX_ACBE_Q_OVERRUN = 20,      /* tx acbe队列fifo满写 */
53     OAM_HAL_MAC_ERROR_TX_ACVI_Q_OVERRUN = 21,      /* tx acvi队列fifo满写 */
54     OAM_HAL_MAC_ERROR_TX_ACVO_Q_OVERRUN = 22,      /* tx acv0队列fifo满写 */
55     OAM_HAL_MAC_ERROR_TX_HIPRI_Q_OVERRUN = 23,     /* tx hipri队列fifo满写 */
56     OAM_HAL_MAC_ERROR_MATRIX_CALC_TIMEOUT = 24,    /* matrix计算超时 */
57     OAM_HAL_MAC_ERROR_CCA_TIMEOUT = 25,            /* cca超时 */
58     OAM_HAL_MAC_ERROR_DCOL_DATA_OVERLAP = 26,      /* 数采overlap告警 */
59     OAM_HAL_MAC_ERROR_BEACON_MISS = 27,            /* 连续发送beacon失败 */
60     OAM_HAL_MAC_ERROR_UNKOWN_28 = 28,
61     OAM_HAL_MAC_ERROR_UNKOWN_29 = 29,
62     OAM_HAL_MAC_ERROR_UNKOWN_30 = 30,
63     OAM_HAL_MAC_ERROR_UNKOWN_31 = 31,
64 
65     OAM_HAL_SOC_ERROR_BUCK_OCP = 32, /* PMU BUCK过流中断 */
66     OAM_HAL_SOC_ERROR_BUCK_SCP,      /* PMU BUCK短路中断 */
67     OAM_HAL_SOC_ERROR_OCP_RFLDO1,    /* PMU RFLDO1过流中断 */
68     OAM_HAL_SOC_ERROR_OCP_RFLDO2,    /* PMU RFLDO2过流中断 */
69     OAM_HAL_SOC_ERROR_OCP_CLDO,      /* PMU CLDO过流中断 */
70     OAM_HAL_SOC_ERROR_RF_OVER_TEMP,  /* RF过热中断 */
71     OAM_HAL_SOC_ERROR_CMU_UNLOCK,    /* CMU PLL失锁中断 */
72     OAM_HAL_SOC_ERROR_PCIE_SLV_ERR,
73 
74     OAM_EXCP_TYPE_BUTT
75 } oam_excp_type_enum;
76 
77 /* 跟踪用户信息变化类型,event类型信息,状态变化驱动 */
78 typedef enum {
79     OAM_USER_INFO_CHANGE_TYPE_ASSOC_STATE = 0, /* 用户关联状态 */
80     OAM_USER_INFO_CHANGE_TYPE_TX_PROTOCOL,     /* 发送数据帧使用的协议模式 */
81     OAM_USER_INFO_CHANGE_TYPE_RX_PROTOCOL,     /* 接收数据帧使用的协议模式 */
82     /* ... */
83     OAM_USER_INFO_CHANGE_TYPE_BUTT
84 } oam_user_info_change_type_enum;
85 
86 #define OAM_LOG_DEFAULT_LEVEL OAM_LOG_LEVEL_WARNING
87 
88 typedef enum {
89     OAM_EXCP_STATUS_INIT = 0,  /* 初始状态:上报完成后切换至初始状态 */
90     OAM_EXCP_STATUS_REFRESHED, /* 有更新,可上报; */
91     OAM_EXCP_STATUS_BUTT
92 } oam_excp_status_enum;
93 
94 /* 异常统计结构体:当ul_reported_cnt与record_cnt相同时 */
95 typedef struct {
96     osal_u32 status;     /* 每类异常类型是否刷新 */
97     osal_u32 record_cnt; /* 记录上一次更新的次数 */
98 } dft_excp_record;
99 
100 /* oam异常统计 */
101 typedef struct {
102     osal_u32 status; /* VAP级别异常统计是否有刷新 */
103     dft_excp_record excp_record[OAM_EXCP_TYPE_BUTT];
104 } dft_exception_ctx;
105 
106 #ifndef DIAG_CMD_ID_WIFI_START
107 #define DIAG_CMD_ID_WIFI_START 0x7400
108 #endif
109 
110 #ifndef DIAG_CMD_ID_WIFI_END
111 #define DIAG_CMD_ID_WIFI_END 0x7600
112 #endif
113 
114 typedef enum {
115     DIAG_CMD_ID_RX_DSCR = DIAG_CMD_ID_WIFI_START,
116     DIAG_CMD_ID_TX_DSCR,
117     DIAG_CMD_ID_RX_80211_FRAME,
118     DIAG_CMD_ID_TX_80211_FRAME,
119     DIAG_CMD_ID_RX_BEACON,
120     DIAG_CMD_ID_TX_BEACON,
121     DIAG_CMD_ID_TX_CB,
122     DIAG_CMD_ID_RX_CB,
123 
124     DIAG_CMD_ID_WIFI_BUTT = DIAG_CMD_ID_WIFI_END
125 } wifi_diag_cmd_id;
126 
127 oam_log_level_enum_uint8 dmac_dft_get_log_level_switch(osal_void);
128 
129 #ifdef __cplusplus
130 #if __cplusplus
131 }
132 #endif
133 #endif
134 
135 #endif /* end of common_dft.h */
136