summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/COMMON/DbgMon.h
blob: fca99e03c2286640caaeca8d28dac72a8dd52030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
#ifndef	__DBG_MON_H__
#define __DBG_MON_H__

#define	RT_SPRINTF	rsprintf
#define	RT_PRINT(_MSG_) 		EXdbgmon_Print(_MSG_)

#define	DBGM_CLI_BUF_SIZE	100

// OUTPUT DIRECTION
#define	DBGM_OUT_WPP		BIT0
#define	DBGM_OUT_CLI		BIT1


#define	DBGM_COMP_WIFI_BASIC			BIT0
#define	DBGM_COMP_NDIS					BIT1
#define	DBGM_COMP_TX_INFO				BIT2
#define	DBGM_COMP_RX_INFO				BIT3
#define	DBGM_COMP_RX_RATE				BIT4
#define	DBGM_COMP_BT_COEX				BIT5
#define	DBGM_COMP_BT_HS					BIT6
#define	DBGM_COMP_BT_HCI				BIT7
#define	DBGM_COMP_WOL					BIT8
#define	DBGM_COMP_PWR_SVG				BIT9
#define	DBGM_COMP_ANTDET_INFO			BIT10
#define	DBGM_COMP_SKU					BIT11
#define	DBGM_COMP_DYN_TXPWR_LOAD		BIT12
#define	DBGM_COMP_CHANNELPLAN			BIT13
#define DBGM_COMP_TX_RATE				BIT14
#define	DBGM_COMP_TXPWR_DUMP			BIT15



#define	MAX_WOL_DBG_REG_NUM			20

typedef enum _DBGM_CALLER_{
	DBGM_CALLER_DBG_CMD					= 0x0,
	DBGM_CALLER_AUTO					= 0x1,
	DBGM_CALLER_MAX	
}DBGM_CALLER,*PDBGM_CALLER;


typedef enum _DBGM_WIFI_BW_MODE{
	DBGM_WIFI_BW_LEGACY					= 0x0,
	DBGM_WIFI_BW_HT20					= 0x1,
	DBGM_WIFI_BW_HT40					= 0x2,
	DBGM_WIFI_BW_HT80					= 0x3,
	DBGM_WIFI_BW_HT160					= 0x4,
	DBGM_WIFI_BW_MAX	
}DBGM_WIFI_BW_MODE,*PDBGM_WIFI_BW_MODE;

typedef enum _DBGM_WIFI_TRAFFIC_DIR{
	DBGM_WIFI_TRAFFIC_TX					= 0x0,
	DBGM_WIFI_TRAFFIC_RX					= 0x1,
	DBGM_WIFI_TRAFFIC_MAX	
}DBGM_WIFI_TRAFFIC_DIR,*PDBGM_WIFI_TRAFFIC_DIR;

typedef enum _DBGM_PWR_MODE_{
	DBGM_PWR_DC_MODE						= 0x0,
	DBGM_PWR_AC_MODE						= 0x1,
	DBGM_PWR_MODE_MAX	
}DBGM_PWR_MODE,*PDBGM_PWR_MODE;

typedef enum _DBGM_WIFI_FREQ_{
	DBGM_WIFI_FREQ_24G					= 0x0,
	DBGM_WIFI_FREQ_5G					= 0x1,
	DBGM_WIFI_FREQ_MAX	
}DBGM_WIFI_FREQ,*PDBGM_WIFI_FREQ;


typedef struct _DBGM_BASIC_WIFI_INFO_{	
	u2Byte				vid;
	u2Byte				did;
	u2Byte				svid;
	u2Byte				smid;
	u1Byte				customerId;
	u1Byte				macAddr[6];
	
	u2Byte				apNum;
	u1Byte				chnl;
	u4Byte				bandwidth;
	u1Byte				freq;
	s4Byte				rssi;
	u1Byte				channelPlan;
	u1Byte				regulation_24G;
	u1Byte				regulation_5G;
	u4Byte				odmAbility;
	u1Byte				regAdaptivity;

	BOOLEAN				bScanProcess;
	BOOLEAN				bLinkProcess;
	BOOLEAN				bRoamProcess;
	BOOLEAN				bStaConnected;
	BOOLEAN				bApConnected;
	BOOLEAN				bBtHsConnected;
	BOOLEAN				bP2pConnected;

	u1Byte				portActivated[5];
	BOOLEAN				bWifiFwLoaded;
	u4Byte				wifiFwVer;
	u1Byte				wifiFwLoadType;

	// traffic
	BOOLEAN				bWifiBusy;
	u1Byte				wifiTrafficDir;

	BOOLEAN				bBtExist;
	BOOLEAN				bBtStackNotified;
	u2Byte				hciVer;

	// power save related
	BOOLEAN				powerMode;		//AC/DC mode
	u1Byte				regIpsMode;
	u1Byte				regLpsMode;
	BOOLEAN				bRegLowPowerEnable;
	BOOLEAN				bInactivePs;
	BOOLEAN				bLeisurePs;
	BOOLEAN				bLowPowerEnable;
	BOOLEAN				bUnderIps;
	BOOLEAN				bUnderLps;
	BOOLEAN				bLowPower;		// 32k low power
	BOOLEAN				bWowlanLPS;
	BOOLEAN				bWowlan32k;

	// ap type info
	u1Byte				apType;		
	u4Byte				numTxBcnOk;
	u4Byte				numTxBcnErr;
	u4Byte				numTxBcnUpdate;

	// connection debug control
	BOOLEAN				bFixBssid;
	u1Byte				fixedBssid[6];
} DBGM_BASIC_WIFI_INFO, *PDBGM_BASIC_WIFI_INFO;

typedef struct _DBGM_TX_INFO_{
	u4Byte			numTxInterrupt;
	u4Byte			wrongrwTxpointerCnt;
	u4Byte			numIdleTcb;
} DBGM_TX_INFO, *PDBGM_TX_INFO;

typedef struct _DBGM_RX_INFO_{
	u4Byte			numRxInterrupt;
	u1Byte			rxReorderPendTime;
	u2Byte			regRxReorderPendTime;
	u4Byte			rxBeaconNum;
	u4Byte			cntOfdmCca;
	u4Byte			cntCckCca;
	u4Byte			cntOfdmFail;
	u4Byte			cntCckFail;
	u4Byte			rxReorderIndEnterCnt;
	u4Byte			rxReorderIndAllowCnt;
	u4Byte			rxReorderIndRejectCnt[3];
} DBGM_RX_INFO, *PDBGM_RX_INFO;

typedef struct _DBGM_WOL_INFO_{
	BOOLEAN			bPowerOn;
	BOOLEAN			bWolFWReady;
	u2Byte			WolFwVer;
	u2Byte			WolFwSubVer;
	BOOLEAN			bARPOffload;
	BOOLEAN			bNSOffload;
	BOOLEAN			bGTKOffload;
	BOOLEAN			bRegARPOffload;
	BOOLEAN			bRegNSOffload;
	BOOLEAN			bRegGTKOffload;
	BOOLEAN			bPtlOffload;
	u1Byte			WoLPatternNum;
	u1Byte			WoLPktNoPtnNum;
	BOOLEAN			bDownloadWoWLANFWOK;
	BOOLEAN			bEnterWoWLANLPS;
	BOOLEAN			bEnterDxIPS;
	BOOLEAN			bRegPnpKeepLink;
	BOOLEAN			bPerformPnpReconnect;

	// Security info
	u4Byte			GroupEnAlgo;
	u8Byte			PreTxIV;
	u8Byte			PreKeyRelayCounter;

	// NLO related info
	BOOLEAN			bDxNLOEnable;
	u1Byte			NLONumberSetToFw;
	u4Byte			NLOFastScanPeriod;
	u4Byte			NLOFastScanIterations;
	u4Byte			NLOSlowScanPeriod;
	RT_OFFLOAD_NETWORK 	OffloadNetworkList[NATIVE_802_11_MAX_NETWORKOFFLOAD_SIZE];

	// Wake up reason and counter
	u1Byte			cntRxDescPtn;
	u1Byte			cntRxDescMgc;
	u1Byte			cntRxDescUct;
	u1Byte			wakeUpReason[25];
	u4Byte			WakeByWoLEventCnt;
	u4Byte			WakeByUnknownReasonCnt;

	// PNP sleep/wake related info.
	u4Byte			PnpSleepEnterD2Cnt;
	u4Byte			PnpSleepEnterD3Cnt;
	u4Byte			PnpSleepEnterUnknownDxCnt;
	u4Byte			PnpSleepDxTotalCnt;
	u4Byte			PnpWakeD0Cnt;
	u8Byte			LastPnpSleepTime;
	u8Byte			LastPnpWakeTime;

	// AOAC report
	RT_AOAC_REPORT	AOACReport;

	// HW debug registers
	HW_REG_VALUE	WoLMacReg[MAX_WOL_DBG_REG_NUM];
} DBGM_WOL_INFO, *PDBGM_WOL_INFO;

// RT DEBUG CONTROL
typedef struct _RT_DBG_MON_{
	u1Byte					outDirection;		// control output to WPP or CLI.
	u4Byte					outComponents;		// what components we need to output

	DBGM_BASIC_WIFI_INFO	basicWifiInfo;		// basic wifi information
	DBGM_TX_INFO			txInfo;				// tx info
	DBGM_RX_INFO			rxInfo;				// rx info
	DBGM_WOL_INFO			wolInfo;			// WoWLAN info
} RT_DBG_MON, *PRT_DBG_MON;

extern const char *const rateStr[];

VOID
EXdbgmon_ClearWolInfo(
	);
VOID
EXdbgmon_Print(
	const char 		*pMsg
	);
VOID
EXdbgmon_SetOutComponents(
	u4Byte	outCompBitsDefine
	);

VOID
EXdbgmon_SetWolCntRxDesc(
	IN	u1Byte		WakeType
	);

VOID
EXdbgmon_GetWolBeforeSleepInfo(
	IN	PADAPTER	Adapter
	);

VOID
EXdbgmon_GetWolPowerInfo(
	IN	PADAPTER	Adapter,
	IN	BOOLEAN		bPowerOn
	);

VOID
EXdbgmon_GetWolWakeReasonInfo(
	IN	PADAPTER	Adapter
	);

VOID
EXdbgmon_ShowInfo(
	IN	PADAPTER	Adapter,
	IN	u1Byte		caller,
	IN	u4Byte		showType
	);
VOID
EXdbgmon_AutoCollectStatisticsInfo(
	IN	PADAPTER 	Adapter
	);



#endif	/* __DBG_MON_H__ */