nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | /*************************************************************************** |
2 | * * |
||
3 | * ########### ########### ########## ########## * |
||
4 | * ############ ############ ############ ############ * |
||
5 | * ## ## ## ## ## ## ## * |
||
6 | * ## ## ## ## ## ## ## * |
||
7 | * ########### #### ###### ## ## ## ## ###### * |
||
8 | * ########### #### # ## ## ## ## # # * |
||
9 | * ## ## ###### ## ## ## ## # # * |
||
10 | * ## ## # ## ## ## ## # # * |
||
11 | * ############ ##### ###### ## ## ## ##### ###### * |
||
12 | * ########### ########### ## ## ## ########## * |
||
13 | * * |
||
14 | * S E C U R E M O B I L E N E T W O R K I N G * |
||
15 | * * |
||
16 | * This file is part of NexMon. * |
||
17 | * * |
||
18 | * Copyright (c) 2016 NexMon Team * |
||
19 | * * |
||
20 | * NexMon is free software: you can redistribute it and/or modify * |
||
21 | * it under the terms of the GNU General Public License as published by * |
||
22 | * the Free Software Foundation, either version 3 of the License, or * |
||
23 | * (at your option) any later version. * |
||
24 | * * |
||
25 | * NexMon is distributed in the hope that it will be useful, * |
||
26 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||
27 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||
28 | * GNU General Public License for more details. * |
||
29 | * * |
||
30 | * You should have received a copy of the GNU General Public License * |
||
31 | * along with NexMon. If not, see <http://www.gnu.org/licenses/>. * |
||
32 | * * |
||
33 | **************************************************************************/ |
||
34 | |||
35 | typedef unsigned int uint32; |
||
36 | typedef unsigned short uint16; |
||
37 | |||
38 | // source of wl_cnt_t: http://svn.dd-wrt.com/browser/src/linux/universal/linux-3.10/brcm/arm/include/wlioctl.h?rev=23022 |
||
39 | |||
40 | #define NFIFO 6 /* # tx/rx fifopairs */ |
||
41 | |||
42 | #define WL_CNT_T_VERSION 9 /* current version of wl_cnt_t struct */ |
||
43 | |||
44 | typedef struct { |
||
45 | uint16 version; /* see definition of WL_CNT_T_VERSION */ |
||
46 | uint16 length; /* length of entire structure */ |
||
47 | |||
48 | /* transmit stat counters */ |
||
49 | uint32 txframe; /* tx data frames */ |
||
50 | uint32 txbyte; /* tx data bytes */ |
||
51 | uint32 txretrans; /* tx mac retransmits */ |
||
52 | uint32 txerror; /* tx data errors (derived: sum of others) */ |
||
53 | uint32 txctl; /* tx management frames */ |
||
54 | uint32 txprshort; /* tx short preamble frames */ |
||
55 | uint32 txserr; /* tx status errors */ |
||
56 | uint32 txnobuf; /* tx out of buffers errors */ |
||
57 | uint32 txnoassoc; /* tx discard because we're not associated */ |
||
58 | uint32 txrunt; /* tx runt frames */ |
||
59 | uint32 txchit; /* tx header cache hit (fastpath) */ |
||
60 | uint32 txcmiss; /* tx header cache miss (slowpath) */ |
||
61 | |||
62 | /* transmit chip error counters */ |
||
63 | uint32 txuflo; /* tx fifo underflows */ |
||
64 | uint32 txphyerr; /* tx phy errors (indicated in tx status) */ |
||
65 | uint32 txphycrs; |
||
66 | |||
67 | /* receive stat counters */ |
||
68 | uint32 rxframe; /* rx data frames */ |
||
69 | uint32 rxbyte; /* rx data bytes */ |
||
70 | uint32 rxerror; /* rx data errors (derived: sum of others) */ |
||
71 | uint32 rxctl; /* rx management frames */ |
||
72 | uint32 rxnobuf; /* rx out of buffers errors */ |
||
73 | uint32 rxnondata; /* rx non data frames in the data channel errors */ |
||
74 | uint32 rxbadds; /* rx bad DS errors */ |
||
75 | uint32 rxbadcm; /* rx bad control or management frames */ |
||
76 | uint32 rxfragerr; /* rx fragmentation errors */ |
||
77 | uint32 rxrunt; /* rx runt frames */ |
||
78 | uint32 rxgiant; /* rx giant frames */ |
||
79 | uint32 rxnoscb; /* rx no scb error */ |
||
80 | uint32 rxbadproto; /* rx invalid frames */ |
||
81 | uint32 rxbadsrcmac; /* rx frames with Invalid Src Mac */ |
||
82 | uint32 rxbadda; /* rx frames tossed for invalid da */ |
||
83 | uint32 rxfilter; /* rx frames filtered out */ |
||
84 | |||
85 | /* receive chip error counters */ |
||
86 | uint32 rxoflo; /* rx fifo overflow errors */ |
||
87 | uint32 rxuflo[NFIFO]; /* rx dma descriptor underflow errors */ |
||
88 | |||
89 | uint32 d11cnt_txrts_off; /* d11cnt txrts value when reset d11cnt */ |
||
90 | uint32 d11cnt_rxcrc_off; /* d11cnt rxcrc value when reset d11cnt */ |
||
91 | uint32 d11cnt_txnocts_off; /* d11cnt txnocts value when reset d11cnt */ |
||
92 | |||
93 | /* misc counters */ |
||
94 | uint32 dmade; /* tx/rx dma descriptor errors */ |
||
95 | uint32 dmada; /* tx/rx dma data errors */ |
||
96 | uint32 dmape; /* tx/rx dma descriptor protocol errors */ |
||
97 | uint32 reset; /* reset count */ |
||
98 | uint32 tbtt; /* cnts the TBTT int's */ |
||
99 | uint32 txdmawar; |
||
100 | uint32 pkt_callback_reg_fail; /* callbacks register failure */ |
||
101 | |||
102 | /* MAC counters: 32-bit version of d11.h's macstat_t */ |
||
103 | uint32 txallfrm; /* total number of frames sent, incl. Data, ACK, RTS, CTS, |
||
104 | * Control Management (includes retransmissions) |
||
105 | */ |
||
106 | uint32 txrtsfrm; /* number of RTS sent out by the MAC */ |
||
107 | uint32 txctsfrm; /* number of CTS sent out by the MAC */ |
||
108 | uint32 txackfrm; /* number of ACK frames sent out */ |
||
109 | uint32 txdnlfrm; /* Not used */ |
||
110 | uint32 txbcnfrm; /* beacons transmitted */ |
||
111 | uint32 txfunfl[6]; /* per-fifo tx underflows */ |
||
112 | uint32 rxtoolate; /* receive too late */ |
||
113 | uint32 txfbw; /* transmit at fallback bw (dynamic bw) */ |
||
114 | uint32 txtplunfl; /* Template underflows (mac was too slow to transmit ACK/CTS |
||
115 | * or BCN) |
||
116 | */ |
||
117 | uint32 txphyerror; /* Transmit phy error, type of error is reported in tx-status for |
||
118 | * driver enqueued frames |
||
119 | */ |
||
120 | uint32 rxfrmtoolong; /* Received frame longer than legal limit (2346 bytes) */ |
||
121 | uint32 rxfrmtooshrt; /* Received frame did not contain enough bytes for its frame type */ |
||
122 | uint32 rxinvmachdr; /* Either the protocol version != 0 or frame type not |
||
123 | * data/control/management |
||
124 | */ |
||
125 | uint32 rxbadfcs; /* number of frames for which the CRC check failed in the MAC */ |
||
126 | uint32 rxbadplcp; /* parity check of the PLCP header failed */ |
||
127 | uint32 rxcrsglitch; /* PHY was able to correlate the preamble but not the header */ |
||
128 | uint32 rxstrt; /* Number of received frames with a good PLCP |
||
129 | * (i.e. passing parity check) |
||
130 | */ |
||
131 | uint32 rxdfrmucastmbss; /* Number of received DATA frames with good FCS and matching RA */ |
||
132 | uint32 rxmfrmucastmbss; /* number of received mgmt frames with good FCS and matching RA */ |
||
133 | uint32 rxcfrmucast; /* number of received CNTRL frames with good FCS and matching RA */ |
||
134 | uint32 rxrtsucast; /* number of unicast RTS addressed to the MAC (good FCS) */ |
||
135 | uint32 rxctsucast; /* number of unicast CTS addressed to the MAC (good FCS) */ |
||
136 | uint32 rxackucast; /* number of ucast ACKS received (good FCS) */ |
||
137 | uint32 rxdfrmocast; /* number of received DATA frames (good FCS and not matching RA) */ |
||
138 | uint32 rxmfrmocast; /* number of received MGMT frames (good FCS and not matching RA) */ |
||
139 | uint32 rxcfrmocast; /* number of received CNTRL frame (good FCS and not matching RA) */ |
||
140 | uint32 rxrtsocast; /* number of received RTS not addressed to the MAC */ |
||
141 | uint32 rxctsocast; /* number of received CTS not addressed to the MAC */ |
||
142 | uint32 rxdfrmmcast; /* number of RX Data multicast frames received by the MAC */ |
||
143 | uint32 rxmfrmmcast; /* number of RX Management multicast frames received by the MAC */ |
||
144 | uint32 rxcfrmmcast; /* number of RX Control multicast frames received by the MAC |
||
145 | * (unlikely to see these) |
||
146 | */ |
||
147 | uint32 rxbeaconmbss; /* beacons received from member of BSS */ |
||
148 | uint32 rxdfrmucastobss; /* number of unicast frames addressed to the MAC from |
||
149 | * other BSS (WDS FRAME) |
||
150 | */ |
||
151 | uint32 rxbeaconobss; /* beacons received from other BSS */ |
||
152 | uint32 rxrsptmout; /* Number of response timeouts for transmitted frames |
||
153 | * expecting a response |
||
154 | */ |
||
155 | uint32 bcntxcancl; /* transmit beacons canceled due to receipt of beacon (IBSS) */ |
||
156 | uint32 rxf0ovfl; /* Number of receive fifo 0 overflows */ |
||
157 | uint32 rxf1ovfl; /* Number of receive fifo 1 overflows (obsolete) */ |
||
158 | uint32 rxf2ovfl; /* Number of receive fifo 2 overflows (obsolete) */ |
||
159 | uint32 txsfovfl; /* Number of transmit status fifo overflows (obsolete) */ |
||
160 | uint32 pmqovfl; /* Number of PMQ overflows */ |
||
161 | uint32 rxcgprqfrm; /* Number of received Probe requests that made it into |
||
162 | * the PRQ fifo |
||
163 | */ |
||
164 | uint32 rxcgprsqovfl; /* Rx Probe Request Que overflow in the AP */ |
||
165 | uint32 txcgprsfail; /* Tx Probe Response Fail. AP sent probe response but did |
||
166 | * not get ACK |
||
167 | */ |
||
168 | uint32 txcgprssuc; /* Tx Probe Response Success (ACK was received) */ |
||
169 | uint32 prs_timeout; /* Number of probe requests that were dropped from the PRQ |
||
170 | * fifo because a probe response could not be sent out within |
||
171 | * the time limit defined in M_PRS_MAXTIME |
||
172 | */ |
||
173 | uint32 rxnack; /* obsolete */ |
||
174 | uint32 frmscons; /* obsolete */ |
||
175 | uint32 txnack; /* obsolete */ |
||
176 | uint32 rxback; /* blockack rxcnt */ |
||
177 | uint32 txback; /* blockack txcnt */ |
||
178 | |||
179 | /* 802.11 MIB counters, pp. 614 of 802.11 reaff doc. */ |
||
180 | uint32 txfrag; /* dot11TransmittedFragmentCount */ |
||
181 | uint32 txmulti; /* dot11MulticastTransmittedFrameCount */ |
||
182 | uint32 txfail; /* dot11FailedCount */ |
||
183 | uint32 txretry; /* dot11RetryCount */ |
||
184 | uint32 txretrie; /* dot11MultipleRetryCount */ |
||
185 | uint32 rxdup; /* dot11FrameduplicateCount */ |
||
186 | uint32 txrts; /* dot11RTSSuccessCount */ |
||
187 | uint32 txnocts; /* dot11RTSFailureCount */ |
||
188 | uint32 txnoack; /* dot11ACKFailureCount */ |
||
189 | uint32 rxfrag; /* dot11ReceivedFragmentCount */ |
||
190 | uint32 rxmulti; /* dot11MulticastReceivedFrameCount */ |
||
191 | uint32 rxcrc; /* dot11FCSErrorCount */ |
||
192 | uint32 txfrmsnt; /* dot11TransmittedFrameCount (bogus MIB?) */ |
||
193 | uint32 rxundec; /* dot11WEPUndecryptableCount */ |
||
194 | |||
195 | /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
||
196 | uint32 tkipmicfaill; /* TKIPLocalMICFailures */ |
||
197 | uint32 tkipcntrmsr; /* TKIPCounterMeasuresInvoked */ |
||
198 | uint32 tkipreplay; /* TKIPReplays */ |
||
199 | uint32 ccmpfmterr; /* CCMPFormatErrors */ |
||
200 | uint32 ccmpreplay; /* CCMPReplays */ |
||
201 | uint32 ccmpundec; /* CCMPDecryptErrors */ |
||
202 | uint32 fourwayfail; /* FourWayHandshakeFailures */ |
||
203 | uint32 wepundec; /* dot11WEPUndecryptableCount */ |
||
204 | uint32 wepicverr; /* dot11WEPICVErrorCount */ |
||
205 | uint32 decsuccess; /* DecryptSuccessCount */ |
||
206 | uint32 tkipicverr; /* TKIPICVErrorCount */ |
||
207 | uint32 wepexcluded; /* dot11WEPExcludedCount */ |
||
208 | |||
209 | uint32 txchanrej; /* Tx frames suppressed due to channel rejection */ |
||
210 | uint32 psmwds; /* Count PSM watchdogs */ |
||
211 | uint32 phywatchdog; /* Count Phy watchdogs (triggered by ucode) */ |
||
212 | |||
213 | /* MBSS counters, AP only */ |
||
214 | uint32 prq_entries_handled; /* PRQ entries read in */ |
||
215 | uint32 prq_undirected_entries; /* which were bcast bss & ssid */ |
||
216 | uint32 prq_bad_entries; /* which could not be translated to info */ |
||
217 | uint32 atim_suppress_count; /* TX suppressions on ATIM fifo */ |
||
218 | uint32 bcn_template_not_ready; /* Template marked in use on send bcn ... */ |
||
219 | uint32 bcn_template_not_ready_done; /* ...but "DMA done" interrupt rcvd */ |
||
220 | uint32 late_tbtt_dpc; /* TBTT DPC did not happen in time */ |
||
221 | |||
222 | /* per-rate receive stat counters */ |
||
223 | uint32 rx1mbps; /* packets rx at 1Mbps */ |
||
224 | uint32 rx2mbps; /* packets rx at 2Mbps */ |
||
225 | uint32 rx5mbps5; /* packets rx at 5.5Mbps */ |
||
226 | uint32 rx6mbps; /* packets rx at 6Mbps */ |
||
227 | uint32 rx9mbps; /* packets rx at 9Mbps */ |
||
228 | uint32 rx11mbps; /* packets rx at 11Mbps */ |
||
229 | uint32 rx12mbps; /* packets rx at 12Mbps */ |
||
230 | uint32 rx18mbps; /* packets rx at 18Mbps */ |
||
231 | uint32 rx24mbps; /* packets rx at 24Mbps */ |
||
232 | uint32 rx36mbps; /* packets rx at 36Mbps */ |
||
233 | uint32 rx48mbps; /* packets rx at 48Mbps */ |
||
234 | uint32 rx54mbps; /* packets rx at 54Mbps */ |
||
235 | uint32 rx108mbps; /* packets rx at 108mbps */ |
||
236 | uint32 rx162mbps; /* packets rx at 162mbps */ |
||
237 | uint32 rx216mbps; /* packets rx at 216 mbps */ |
||
238 | uint32 rx270mbps; /* packets rx at 270 mbps */ |
||
239 | uint32 rx324mbps; /* packets rx at 324 mbps */ |
||
240 | uint32 rx378mbps; /* packets rx at 378 mbps */ |
||
241 | uint32 rx432mbps; /* packets rx at 432 mbps */ |
||
242 | uint32 rx486mbps; /* packets rx at 486 mbps */ |
||
243 | uint32 rx540mbps; /* packets rx at 540 mbps */ |
||
244 | |||
245 | /* pkteng rx frame stats */ |
||
246 | uint32 pktengrxducast; /* unicast frames rxed by the pkteng code */ |
||
247 | uint32 pktengrxdmcast; /* multicast frames rxed by the pkteng code */ |
||
248 | |||
249 | uint32 rfdisable; /* count of radio disables */ |
||
250 | uint32 bphy_rxcrsglitch; /* PHY count of bphy glitches */ |
||
251 | uint32 bphy_badplcp; |
||
252 | |||
253 | uint32 txexptime; /* Tx frames suppressed due to timer expiration */ |
||
254 | |||
255 | uint32 txmpdu_sgi; /* count for sgi transmit */ |
||
256 | uint32 rxmpdu_sgi; /* count for sgi received */ |
||
257 | uint32 txmpdu_stbc; /* count for stbc transmit */ |
||
258 | uint32 rxmpdu_stbc; /* count for stbc received */ |
||
259 | |||
260 | uint32 rxundec_mcst; /* dot11WEPUndecryptableCount */ |
||
261 | |||
262 | /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
||
263 | uint32 tkipmicfaill_mcst; /* TKIPLocalMICFailures */ |
||
264 | uint32 tkipcntrmsr_mcst; /* TKIPCounterMeasuresInvoked */ |
||
265 | uint32 tkipreplay_mcst; /* TKIPReplays */ |
||
266 | uint32 ccmpfmterr_mcst; /* CCMPFormatErrors */ |
||
267 | uint32 ccmpreplay_mcst; /* CCMPReplays */ |
||
268 | uint32 ccmpundec_mcst; /* CCMPDecryptErrors */ |
||
269 | uint32 fourwayfail_mcst; /* FourWayHandshakeFailures */ |
||
270 | uint32 wepundec_mcst; /* dot11WEPUndecryptableCount */ |
||
271 | uint32 wepicverr_mcst; /* dot11WEPICVErrorCount */ |
||
272 | uint32 decsuccess_mcst; /* DecryptSuccessCount */ |
||
273 | uint32 tkipicverr_mcst; /* TKIPICVErrorCount */ |
||
274 | uint32 wepexcluded_mcst; /* dot11WEPExcludedCount */ |
||
275 | |||
276 | uint32 dma_hang; /* count for dma hang */ |
||
277 | uint32 reinit; /* count for reinit */ |
||
278 | |||
279 | uint32 pstatxucast; /* count of ucast frames xmitted on all psta assoc */ |
||
280 | uint32 pstatxnoassoc; /* count of txnoassoc frames xmitted on all psta assoc */ |
||
281 | uint32 pstarxucast; /* count of ucast frames received on all psta assoc */ |
||
282 | uint32 pstarxbcmc; /* count of bcmc frames received on all psta */ |
||
283 | uint32 pstatxbcmc; /* count of bcmc frames transmitted on all psta */ |
||
284 | |||
285 | uint32 cso_passthrough; /* hw cso required but passthrough */ |
||
286 | uint32 cso_normal; /* hw cso hdr for normal process */ |
||
287 | uint32 chained; /* number of frames chained */ |
||
288 | uint32 chainedsz1; /* number of chain size 1 frames */ |
||
289 | uint32 unchained; /* number of frames not chained */ |
||
290 | uint32 maxchainsz; /* max chain size so far */ |
||
291 | uint32 currchainsz; /* current chain size */ |
||
292 | uint32 rxdrop20s; /* drop secondary cnt */ |
||
293 | uint32 pciereset; /* Secondary Bus Reset issued by driver */ |
||
294 | uint32 cfgrestore; /* configspace restore by driver */ |
||
295 | } wl_cnt_t; |
||
296 | |||
297 | char *wl_cnt_varname[] = { |
||
298 | "version_and_length", |
||
299 | |||
300 | /* transmit stat counters */ |
||
301 | "txframe", /* tx data frames */ |
||
302 | "txbyte", /* tx data bytes */ |
||
303 | "txretrans", /* tx mac retransmits */ |
||
304 | "txerror", /* tx data errors (derived: sum of others) */ |
||
305 | "txctl", /* tx management frames */ |
||
306 | "txprshort", /* tx short preamble frames */ |
||
307 | "txserr", /* tx status errors */ |
||
308 | "txnobuf", /* tx out of buffers errors */ |
||
309 | "txnoassoc", /* tx discard because we're not associated */ |
||
310 | "txrunt", /* tx runt frames */ |
||
311 | "txchit", /* tx header cache hit (fastpath) */ |
||
312 | "txcmiss", /* tx header cache miss (slowpath) */ |
||
313 | |||
314 | /* transmit chip error counters */ |
||
315 | "txuflo", /* tx fifo underflows */ |
||
316 | "txphyerr", /* tx phy errors (indicated in tx status) */ |
||
317 | "txphycrs", |
||
318 | |||
319 | /* receive stat counters */ |
||
320 | "rxframe", /* rx data frames */ |
||
321 | "rxbyte", /* rx data bytes */ |
||
322 | "rxerror", /* rx data errors (derived: sum of others) */ |
||
323 | "rxctl", /* rx management frames */ |
||
324 | "rxnobuf", /* rx out of buffers errors */ |
||
325 | "rxnondata", /* rx non data frames in the data channel errors */ |
||
326 | "rxbadds", /* rx bad DS errors */ |
||
327 | "rxbadcm", /* rx bad control or management frames */ |
||
328 | "rxfragerr", /* rx fragmentation errors */ |
||
329 | "rxrunt", /* rx runt frames */ |
||
330 | "rxgiant", /* rx giant frames */ |
||
331 | "rxnoscb", /* rx no scb error */ |
||
332 | "rxbadproto", /* rx invalid frames */ |
||
333 | "rxbadsrcmac", /* rx frames with Invalid Src Mac */ |
||
334 | "rxbadda", /* rx frames tossed for invalid da */ |
||
335 | "rxfilter", /* rx frames filtered out */ |
||
336 | |||
337 | /* receive chip error counters */ |
||
338 | "rxoflo", /* rx fifo overflow errors */ |
||
339 | "rxuflo[0]", /* rx dma descriptor underflow errors */ |
||
340 | "rxuflo[1]", /* rx dma descriptor underflow errors */ |
||
341 | "rxuflo[2]", /* rx dma descriptor underflow errors */ |
||
342 | "rxuflo[3]", /* rx dma descriptor underflow errors */ |
||
343 | "rxuflo[4]", /* rx dma descriptor underflow errors */ |
||
344 | "rxuflo[5]", /* rx dma descriptor underflow errors */ |
||
345 | |||
346 | "d11cnt_txrts_off", /* d11cnt txrts value when reset d11cnt */ |
||
347 | "d11cnt_rxcrc_off", /* d11cnt rxcrc value when reset d11cnt */ |
||
348 | "d11cnt_txnocts_off", /* d11cnt txnocts value when reset d11cnt */ |
||
349 | |||
350 | /* misc counters */ |
||
351 | "dmade", /* tx/rx dma descriptor errors */ |
||
352 | "dmada", /* tx/rx dma data errors */ |
||
353 | "dmape", /* tx/rx dma descriptor protocol errors */ |
||
354 | "reset", /* reset count */ |
||
355 | "tbtt", /* cnts the TBTT int's */ |
||
356 | "txdmawar", |
||
357 | "pkt_callback_reg_fail", /* callbacks register failure */ |
||
358 | |||
359 | /* MAC counters: 32-bit version of d11.h's macstat_t */ |
||
360 | "txallfrm", /* total number of frames sent, incl. Data, ACK, RTS, CTS, |
||
361 | * Control Management (includes retransmissions) |
||
362 | */ |
||
363 | "txrtsfrm", /* number of RTS sent out by the MAC */ |
||
364 | "txctsfrm", /* number of CTS sent out by the MAC */ |
||
365 | "txackfrm", /* number of ACK frames sent out */ |
||
366 | "txdnlfrm", /* Not used */ |
||
367 | "txbcnfrm", /* beacons transmitted */ |
||
368 | "txfunfl[0]", /* per-fifo tx underflows */ |
||
369 | "txfunfl[1]", /* per-fifo tx underflows */ |
||
370 | "txfunfl[2]", /* per-fifo tx underflows */ |
||
371 | "txfunfl[3]", /* per-fifo tx underflows */ |
||
372 | "txfunfl[4]", /* per-fifo tx underflows */ |
||
373 | "txfunfl[5]", /* per-fifo tx underflows */ |
||
374 | "rxtoolate", /* receive too late */ |
||
375 | "txfbw", /* transmit at fallback bw (dynamic bw) */ |
||
376 | "txtplunfl", /* Template underflows (mac was too slow to transmit ACK/CTS |
||
377 | * or BCN) |
||
378 | */ |
||
379 | "txphyerror", /* Transmit phy error, type of error is reported in tx-status for |
||
380 | * driver enqueued frames |
||
381 | */ |
||
382 | "rxfrmtoolong", /* Received frame longer than legal limit (2346 bytes) */ |
||
383 | "rxfrmtooshrt", /* Received frame did not contain enough bytes for its frame type */ |
||
384 | "rxinvmachdr", /* Either the protocol version != 0 or frame type not |
||
385 | * data/control/management |
||
386 | */ |
||
387 | "rxbadfcs", /* number of frames for which the CRC check failed in the MAC */ |
||
388 | "rxbadplcp", /* parity check of the PLCP header failed */ |
||
389 | "rxcrsglitch", /* PHY was able to correlate the preamble but not the header */ |
||
390 | "rxstrt", /* Number of received frames with a good PLCP |
||
391 | * (i.e. passing parity check) |
||
392 | */ |
||
393 | "rxdfrmucastmbss", /* Number of received DATA frames with good FCS and matching RA */ |
||
394 | "rxmfrmucastmbss", /* number of received mgmt frames with good FCS and matching RA */ |
||
395 | "rxcfrmucast", /* number of received CNTRL frames with good FCS and matching RA */ |
||
396 | "rxrtsucast", /* number of unicast RTS addressed to the MAC (good FCS) */ |
||
397 | "rxctsucast", /* number of unicast CTS addressed to the MAC (good FCS) */ |
||
398 | "rxackucast", /* number of ucast ACKS received (good FCS) */ |
||
399 | "rxdfrmocast", /* number of received DATA frames (good FCS and not matching RA) */ |
||
400 | "rxmfrmocast", /* number of received MGMT frames (good FCS and not matching RA) */ |
||
401 | "rxcfrmocast", /* number of received CNTRL frame (good FCS and not matching RA) */ |
||
402 | "rxrtsocast", /* number of received RTS not addressed to the MAC */ |
||
403 | "rxctsocast", /* number of received CTS not addressed to the MAC */ |
||
404 | "rxdfrmmcast", /* number of RX Data multicast frames received by the MAC */ |
||
405 | "rxmfrmmcast", /* number of RX Management multicast frames received by the MAC */ |
||
406 | "rxcfrmmcast", /* number of RX Control multicast frames received by the MAC |
||
407 | * (unlikely to see these) |
||
408 | */ |
||
409 | "rxbeaconmbss", /* beacons received from member of BSS */ |
||
410 | "rxdfrmucastobss", /* number of unicast frames addressed to the MAC from |
||
411 | * other BSS (WDS FRAME) |
||
412 | */ |
||
413 | "rxbeaconobss", /* beacons received from other BSS */ |
||
414 | "rxrsptmout", /* Number of response timeouts for transmitted frames |
||
415 | * expecting a response |
||
416 | */ |
||
417 | "bcntxcancl", /* transmit beacons canceled due to receipt of beacon (IBSS) */ |
||
418 | "rxf0ovfl", /* Number of receive fifo 0 overflows */ |
||
419 | "rxf1ovfl", /* Number of receive fifo 1 overflows (obsolete) */ |
||
420 | "rxf2ovfl", /* Number of receive fifo 2 overflows (obsolete) */ |
||
421 | "txsfovfl", /* Number of transmit status fifo overflows (obsolete) */ |
||
422 | "pmqovfl", /* Number of PMQ overflows */ |
||
423 | "rxcgprqfrm", /* Number of received Probe requests that made it into |
||
424 | * the PRQ fifo |
||
425 | */ |
||
426 | "rxcgprsqovfl", /* Rx Probe Request Que overflow in the AP */ |
||
427 | "txcgprsfail", /* Tx Probe Response Fail. AP sent probe response but did |
||
428 | * not get ACK |
||
429 | */ |
||
430 | "txcgprssuc", /* Tx Probe Response Success (ACK was received) */ |
||
431 | "prs_timeout", /* Number of probe requests that were dropped from the PRQ |
||
432 | * fifo because a probe response could not be sent out within |
||
433 | * the time limit defined in M_PRS_MAXTIME |
||
434 | */ |
||
435 | "rxnack", /* obsolete */ |
||
436 | "frmscons", /* obsolete */ |
||
437 | "txnack", /* obsolete */ |
||
438 | "rxback", /* blockack rxcnt */ |
||
439 | "txback", /* blockack txcnt */ |
||
440 | |||
441 | /* 802.11 MIB counters, pp. 614 of 802.11 reaff doc. */ |
||
442 | "txfrag", /* dot11TransmittedFragmentCount */ |
||
443 | "txmulti", /* dot11MulticastTransmittedFrameCount */ |
||
444 | "txfail", /* dot11FailedCount */ |
||
445 | "txretry", /* dot11RetryCount */ |
||
446 | "txretrie", /* dot11MultipleRetryCount */ |
||
447 | "rxdup", /* dot11FrameduplicateCount */ |
||
448 | "txrts", /* dot11RTSSuccessCount */ |
||
449 | "txnocts", /* dot11RTSFailureCount */ |
||
450 | "txnoack", /* dot11ACKFailureCount */ |
||
451 | "rxfrag", /* dot11ReceivedFragmentCount */ |
||
452 | "rxmulti", /* dot11MulticastReceivedFrameCount */ |
||
453 | "rxcrc", /* dot11FCSErrorCount */ |
||
454 | "txfrmsnt", /* dot11TransmittedFrameCount (bogus MIB?) */ |
||
455 | "rxundec", /* dot11WEPUndecryptableCount */ |
||
456 | |||
457 | /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
||
458 | "tkipmicfaill", /* TKIPLocalMICFailures */ |
||
459 | "tkipcntrmsr", /* TKIPCounterMeasuresInvoked */ |
||
460 | "tkipreplay", /* TKIPReplays */ |
||
461 | "ccmpfmterr", /* CCMPFormatErrors */ |
||
462 | "ccmpreplay", /* CCMPReplays */ |
||
463 | "ccmpundec", /* CCMPDecryptErrors */ |
||
464 | "fourwayfail", /* FourWayHandshakeFailures */ |
||
465 | "wepundec", /* dot11WEPUndecryptableCount */ |
||
466 | "wepicverr", /* dot11WEPICVErrorCount */ |
||
467 | "decsuccess", /* DecryptSuccessCount */ |
||
468 | "tkipicverr", /* TKIPICVErrorCount */ |
||
469 | "wepexcluded", /* dot11WEPExcludedCount */ |
||
470 | |||
471 | "txchanrej", /* Tx frames suppressed due to channel rejection */ |
||
472 | "psmwds", /* Count PSM watchdogs */ |
||
473 | "phywatchdog", /* Count Phy watchdogs (triggered by ucode) */ |
||
474 | |||
475 | /* MBSS counters, AP only */ |
||
476 | "prq_entries_handled", /* PRQ entries read in */ |
||
477 | "prq_undirected_entries", /* which were bcast bss & ssid */ |
||
478 | "prq_bad_entries", /* which could not be translated to info */ |
||
479 | "atim_suppress_count", /* TX suppressions on ATIM fifo */ |
||
480 | "bcn_template_not_ready", /* Template marked in use on send bcn ... */ |
||
481 | "bcn_template_not_ready_done", /* ...but "DMA done" interrupt rcvd */ |
||
482 | "late_tbtt_dpc", /* TBTT DPC did not happen in time */ |
||
483 | |||
484 | /* per-rate receive stat counters */ |
||
485 | "rx1mbps", /* packets rx at 1Mbps */ |
||
486 | "rx2mbps", /* packets rx at 2Mbps */ |
||
487 | "rx5mbps5", /* packets rx at 5.5Mbps */ |
||
488 | "rx6mbps", /* packets rx at 6Mbps */ |
||
489 | "rx9mbps", /* packets rx at 9Mbps */ |
||
490 | "rx11mbps", /* packets rx at 11Mbps */ |
||
491 | "rx12mbps", /* packets rx at 12Mbps */ |
||
492 | "rx18mbps", /* packets rx at 18Mbps */ |
||
493 | "rx24mbps", /* packets rx at 24Mbps */ |
||
494 | "rx36mbps", /* packets rx at 36Mbps */ |
||
495 | "rx48mbps", /* packets rx at 48Mbps */ |
||
496 | "rx54mbps", /* packets rx at 54Mbps */ |
||
497 | "rx108mbps", /* packets rx at 108mbps */ |
||
498 | "rx162mbps", /* packets rx at 162mbps */ |
||
499 | "rx216mbps", /* packets rx at 216 mbps */ |
||
500 | "rx270mbps", /* packets rx at 270 mbps */ |
||
501 | "rx324mbps", /* packets rx at 324 mbps */ |
||
502 | "rx378mbps", /* packets rx at 378 mbps */ |
||
503 | "rx432mbps", /* packets rx at 432 mbps */ |
||
504 | "rx486mbps", /* packets rx at 486 mbps */ |
||
505 | "rx540mbps", /* packets rx at 540 mbps */ |
||
506 | |||
507 | /* pkteng rx frame stats */ |
||
508 | "pktengrxducast", /* unicast frames rxed by the pkteng code */ |
||
509 | "pktengrxdmcast", /* multicast frames rxed by the pkteng code */ |
||
510 | |||
511 | "rfdisable", /* count of radio disables */ |
||
512 | "bphy_rxcrsglitch", /* PHY count of bphy glitches */ |
||
513 | "bphy_badplcp", |
||
514 | |||
515 | "txexptime", /* Tx frames suppressed due to timer expiration */ |
||
516 | |||
517 | "txmpdu_sgi", /* count for sgi transmit */ |
||
518 | "rxmpdu_sgi", /* count for sgi received */ |
||
519 | "txmpdu_stbc", /* count for stbc transmit */ |
||
520 | "rxmpdu_stbc", /* count for stbc received */ |
||
521 | |||
522 | "rxundec_mcst", /* dot11WEPUndecryptableCount */ |
||
523 | |||
524 | /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
||
525 | "tkipmicfaill_mcst", /* TKIPLocalMICFailures */ |
||
526 | "tkipcntrmsr_mcst", /* TKIPCounterMeasuresInvoked */ |
||
527 | "tkipreplay_mcst", /* TKIPReplays */ |
||
528 | "ccmpfmterr_mcst", /* CCMPFormatErrors */ |
||
529 | "ccmpreplay_mcst", /* CCMPReplays */ |
||
530 | "ccmpundec_mcst", /* CCMPDecryptErrors */ |
||
531 | "fourwayfail_mcst", /* FourWayHandshakeFailures */ |
||
532 | "wepundec_mcst", /* dot11WEPUndecryptableCount */ |
||
533 | "wepicverr_mcst", /* dot11WEPICVErrorCount */ |
||
534 | "decsuccess_mcst", /* DecryptSuccessCount */ |
||
535 | "tkipicverr_mcst", /* TKIPICVErrorCount */ |
||
536 | "wepexcluded_mcst", /* dot11WEPExcludedCount */ |
||
537 | |||
538 | "dma_hang", /* count for dma hang */ |
||
539 | "reinit", /* count for reinit */ |
||
540 | |||
541 | "pstatxucast", /* count of ucast frames xmitted on all psta assoc */ |
||
542 | "pstatxnoassoc", /* count of txnoassoc frames xmitted on all psta assoc */ |
||
543 | "pstarxucast", /* count of ucast frames received on all psta assoc */ |
||
544 | "pstarxbcmc", /* count of bcmc frames received on all psta */ |
||
545 | "pstatxbcmc", /* count of bcmc frames transmitted on all psta */ |
||
546 | |||
547 | "cso_passthrough", /* hw cso required but passthrough */ |
||
548 | "cso_normal", /* hw cso hdr for normal process */ |
||
549 | "chained", /* number of frames chained */ |
||
550 | "chainedsz1", /* number of chain size 1 frames */ |
||
551 | "unchained", /* number of frames not chained */ |
||
552 | "maxchainsz", /* max chain size so far */ |
||
553 | "currchainsz", /* current chain size */ |
||
554 | "rxdrop20s", /* drop secondary cnt */ |
||
555 | "pciereset", /* Secondary Bus Reset issued by driver */ |
||
556 | "cfgrestore", /* configspace restore by driver */ |
||
557 | }; |
||
558 | |||
559 | char *wl_cnt_description[] = { |
||
560 | "see definition of WL_CNT_T_VERSION and length of entire structure", |
||
561 | |||
562 | /* transmit stat counters */ |
||
563 | "tx data frames", |
||
564 | "tx data bytes", |
||
565 | "tx mac retransmits", |
||
566 | "tx data errors (derived: sum of others)", |
||
567 | "tx management frames", |
||
568 | "tx short preamble frames", |
||
569 | "tx status errors", |
||
570 | "tx out of buffers errors", |
||
571 | "tx discard because we're not associated", |
||
572 | "tx runt frames", |
||
573 | "tx header cache hit (fastpath)", |
||
574 | "tx header cache miss (slowpath)", |
||
575 | |||
576 | /* transmit chip error counters */ |
||
577 | "tx fifo underflows", |
||
578 | "tx phy errors (indicated in tx status)", |
||
579 | "txphycrs", |
||
580 | |||
581 | /* receive stat counters */ |
||
582 | "rx data frames", |
||
583 | "rx data bytes", |
||
584 | "rx data errors (derived: sum of others)", |
||
585 | "rx management frames", |
||
586 | "rx out of buffers errors", |
||
587 | "rx non data frames in the data channel errors", |
||
588 | "rx bad DS errors", |
||
589 | "rx bad control or management frames", |
||
590 | "rx fragmentation errors", |
||
591 | "rx runt frames", |
||
592 | "rx giant frames", |
||
593 | "rx no scb error", |
||
594 | "rx invalid frames", |
||
595 | "rx frames with Invalid Src Mac", |
||
596 | "rx frames tossed for invalid da", |
||
597 | "rx frames filtered out", |
||
598 | |||
599 | /* receive chip error counters */ |
||
600 | "rx fifo overflow errors", |
||
601 | "rx dma descriptor underflow errors", |
||
602 | "rx dma descriptor underflow errors", |
||
603 | "rx dma descriptor underflow errors", |
||
604 | "rx dma descriptor underflow errors", |
||
605 | "rx dma descriptor underflow errors", |
||
606 | "rx dma descriptor underflow errors", |
||
607 | |||
608 | "d11cnt txrts value when reset d11cnt", |
||
609 | "d11cnt rxcrc value when reset d11cnt", |
||
610 | "d11cnt txnocts value when reset d11cnt", |
||
611 | |||
612 | /* misc counters */ |
||
613 | "tx/rx dma descriptor errors", |
||
614 | "tx/rx dma data errors", |
||
615 | "tx/rx dma descriptor protocol errors", |
||
616 | "reset count", |
||
617 | "cnts the TBTT int's", |
||
618 | "txdmawar", |
||
619 | "callbacks register failure", |
||
620 | |||
621 | /* MAC counters: 32-bit version of d11.h's macstat_t */ |
||
622 | "total number of frames sent, incl. Data, ACK, RTS, CTS, Control Management (includes retransmissions)", |
||
623 | "number of RTS sent out by the MAC", |
||
624 | "number of CTS sent out by the MAC", |
||
625 | "number of ACK frames sent out", |
||
626 | "Not used", |
||
627 | "beacons transmitted", |
||
628 | "per-fifo tx underflows", |
||
629 | "per-fifo tx underflows", |
||
630 | "per-fifo tx underflows", |
||
631 | "per-fifo tx underflows", |
||
632 | "per-fifo tx underflows", |
||
633 | "per-fifo tx underflows", |
||
634 | "receive too late", |
||
635 | "transmit at fallback bw (dynamic bw)", |
||
636 | "Template underflows (mac was too slow to transmit ACK/CTSor BCN)", |
||
637 | "Transmit phy error, type of error is reported in tx-status for driver enqueued frames", |
||
638 | "Received frame longer than legal limit (2346 bytes)", |
||
639 | "Received frame did not contain enough bytes for its frame type", |
||
640 | "Either the protocol version != 0 or frame type not data/control/management", |
||
641 | "number of frames for which the CRC check failed in the MAC", |
||
642 | "parity check of the PLCP header failed", |
||
643 | "PHY was able to correlate the preamble but not the header", |
||
644 | "Number of received frames with a good PLCP (i.e. passing parity check)", |
||
645 | "Number of received DATA frames with good FCS and matching RA", |
||
646 | "number of received mgmt frames with good FCS and matching RA", |
||
647 | "number of received CNTRL frames with good FCS and matching RA", |
||
648 | "number of unicast RTS addressed to the MAC (good FCS)", |
||
649 | "number of unicast CTS addressed to the MAC (good FCS)", |
||
650 | "number of ucast ACKS received (good FCS)", |
||
651 | "number of received DATA frames (good FCS and not matching RA)", |
||
652 | "number of received MGMT frames (good FCS and not matching RA)", |
||
653 | "number of received CNTRL frame (good FCS and not matching RA)", |
||
654 | "number of received RTS not addressed to the MAC", |
||
655 | "number of received CTS not addressed to the MAC", |
||
656 | "number of RX Data multicast frames received by the MAC", |
||
657 | "number of RX Management multicast frames received by the MAC", |
||
658 | "number of RX Control multicast frames received by the MAC(unlikely to see these)", |
||
659 | "beacons received from member of BSS", |
||
660 | "number of unicast frames addressed to the MAC from other BSS (WDS FRAME)", |
||
661 | "beacons received from other BSS", |
||
662 | "Number of response timeouts for transmitted frames expecting a response", |
||
663 | "transmit beacons canceled due to receipt of beacon (IBSS)", |
||
664 | "Number of receive fifo 0 overflows", |
||
665 | "Number of receive fifo 1 overflows (obsolete)", |
||
666 | "Number of receive fifo 2 overflows (obsolete)", |
||
667 | "Number of transmit status fifo overflows (obsolete)", |
||
668 | "Number of PMQ overflows", |
||
669 | "Number of received Probe requests that made it into the PRQ fifo", |
||
670 | "Rx Probe Request Que overflow in the AP", |
||
671 | "Tx Probe Response Fail. AP sent probe response but did not get ACK", |
||
672 | "Tx Probe Response Success (ACK was received)", |
||
673 | "Number of probe requests that were dropped from the PRQ fifo because a probe response could not be sent out within the time limit defined in M_PRS_MAXTIME", |
||
674 | "obsolete", |
||
675 | "obsolete", |
||
676 | "obsolete", |
||
677 | "blockack rxcnt", |
||
678 | "blockack txcnt", |
||
679 | |||
680 | /* 802.11 MIB counters, pp. 614 of 802.11 reaff doc. */ |
||
681 | "dot11TransmittedFragmentCount", |
||
682 | "dot11MulticastTransmittedFrameCount", |
||
683 | "dot11FailedCount", |
||
684 | "dot11RetryCount", |
||
685 | "dot11MultipleRetryCount", |
||
686 | "dot11FrameduplicateCount", |
||
687 | "dot11RTSSuccessCount", |
||
688 | "dot11RTSFailureCount", |
||
689 | "dot11ACKFailureCount", |
||
690 | "dot11ReceivedFragmentCount", |
||
691 | "dot11MulticastReceivedFrameCount", |
||
692 | "dot11FCSErrorCount", |
||
693 | "dot11TransmittedFrameCount (bogus MIB?)", |
||
694 | "dot11WEPUndecryptableCount", |
||
695 | |||
696 | /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
||
697 | "TKIPLocalMICFailures", |
||
698 | "TKIPCounterMeasuresInvoked", |
||
699 | "TKIPReplays", |
||
700 | "CCMPFormatErrors", |
||
701 | "CCMPReplays", |
||
702 | "CCMPDecryptErrors", |
||
703 | "FourWayHandshakeFailures", |
||
704 | "dot11WEPUndecryptableCount", |
||
705 | "dot11WEPICVErrorCount", |
||
706 | "DecryptSuccessCount", |
||
707 | "TKIPICVErrorCount", |
||
708 | "dot11WEPExcludedCount", |
||
709 | |||
710 | "Tx frames suppressed due to channel rejection", |
||
711 | "Count PSM watchdogs", |
||
712 | "Count Phy watchdogs (triggered by ucode)", |
||
713 | |||
714 | /* MBSS counters, AP only */ |
||
715 | "PRQ entries read in", |
||
716 | " which were bcast bss & ssid", |
||
717 | " which could not be translated to info", |
||
718 | "TX suppressions on ATIM fifo", |
||
719 | "Template marked in use on send bcn ...", |
||
720 | "...but \"DMA done\" interrupt rcvd", |
||
721 | "TBTT DPC did not happen in time", |
||
722 | |||
723 | /* per-rate receive stat counters */ |
||
724 | "packets rx at 1Mbps", |
||
725 | "packets rx at 2Mbps", |
||
726 | "packets rx at 5.5Mbps", |
||
727 | "packets rx at 6Mbps", |
||
728 | "packets rx at 9Mbps", |
||
729 | "packets rx at 11Mbps", |
||
730 | "packets rx at 12Mbps", |
||
731 | "packets rx at 18Mbps", |
||
732 | "packets rx at 24Mbps", |
||
733 | "packets rx at 36Mbps", |
||
734 | "packets rx at 48Mbps", |
||
735 | "packets rx at 54Mbps", |
||
736 | "packets rx at 108mbps", |
||
737 | "packets rx at 162mbps", |
||
738 | "packets rx at 216 mbps", |
||
739 | "packets rx at 270 mbps", |
||
740 | "packets rx at 324 mbps", |
||
741 | "packets rx at 378 mbps", |
||
742 | "packets rx at 432 mbps", |
||
743 | "packets rx at 486 mbps", |
||
744 | "packets rx at 540 mbps", |
||
745 | |||
746 | /* pkteng rx frame stats */ |
||
747 | "unicast frames rxed by the pkteng code", |
||
748 | "multicast frames rxed by the pkteng code", |
||
749 | |||
750 | "count of radio disables", |
||
751 | "PHY count of bphy glitches", |
||
752 | "bphy_badplcp", |
||
753 | |||
754 | "Tx frames suppressed due to timer expiration", |
||
755 | |||
756 | "count for sgi transmit", |
||
757 | "count for sgi received", |
||
758 | "count for stbc transmit", |
||
759 | "count for stbc received", |
||
760 | |||
761 | "dot11WEPUndecryptableCount", |
||
762 | |||
763 | /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
||
764 | "TKIPLocalMICFailures", |
||
765 | "TKIPCounterMeasuresInvoked", |
||
766 | "TKIPReplays", |
||
767 | "CCMPFormatErrors", |
||
768 | "CCMPReplays", |
||
769 | "CCMPDecryptErrors", |
||
770 | "FourWayHandshakeFailures", |
||
771 | "dot11WEPUndecryptableCount", |
||
772 | "dot11WEPICVErrorCount", |
||
773 | "DecryptSuccessCount", |
||
774 | "TKIPICVErrorCount", |
||
775 | "dot11WEPExcludedCount", |
||
776 | |||
777 | "count for dma hang", |
||
778 | "count for reinit", |
||
779 | |||
780 | "count of ucast frames xmitted on all psta assoc", |
||
781 | "count of txnoassoc frames xmitted on all psta assoc", |
||
782 | "count of ucast frames received on all psta assoc", |
||
783 | "count of bcmc frames received on all psta", |
||
784 | "count of bcmc frames transmitted on all psta", |
||
785 | |||
786 | "hw cso required but passthrough", |
||
787 | "hw cso hdr for normal process", |
||
788 | "number of frames chained", |
||
789 | "number of chain size 1 frames", |
||
790 | "number of frames not chained", |
||
791 | "max chain size so far", |
||
792 | "current chain size", |
||
793 | "drop secondary cnt", |
||
794 | "Secondary Bus Reset issued by driver", |
||
795 | "configspace restore by driver", |
||
796 | }; |