nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
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 };