| /* Crossdriver (bcmdhd/brcmfmac) symbols extracted from bcmdhd include/wlioctl.h. |
| * |
| * Copyright 1999-2016, Broadcom Corporation |
| * All rights reserved, |
| * |
| * Redistribution and use in source and binary forms, with or without modification, |
| * are permitted provided that the following conditions are met: |
| * 1. Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * |
| * This software is provided by the copyright holder "as is" and any express or |
| * implied warranties, including, but not limited to, the implied warranties of |
| * merchantability and fitness for a particular purpose are disclaimed. In no event |
| * shall copyright holder be liable for any direct, indirect, incidental, special, |
| * exemplary, or consequential damages (including, but not limited to, procurement |
| * of substitute goods or services; loss of use, data, or profits; or business |
| * interruption) however caused and on any theory of liability, whether in |
| * contract, strict liability, or tort (including negligence or otherwise) arising |
| * in any way out of the use of this software, even if advised of the possibility |
| * of such damage |
| */ |
| |
| #ifndef THIRD_PARTY_BCMDHD_CROSSDRIVER_WLIOCTL_H_ |
| #define THIRD_PARTY_BCMDHD_CROSSDRIVER_WLIOCTL_H_ |
| |
| #include "include/proto/802.11.h" |
| |
| typedef uint32_t uint32; |
| typedef uint16_t uint16; |
| |
| using event_msgs_ext_command_t = enum event_msgs_ext_command { |
| EVENTMSGS_NONE = 0, |
| EVENTMSGS_SET_BIT = 1, |
| EVENTMSGS_RESET_BIT = 2, |
| EVENTMSGS_SET_MASK = 3 |
| }; |
| |
| #define EVENTMSGS_VERSION 1 |
| #define EVENTMSGS_EXT_STRUCT_SIZE offsetof(eventmsgs_ext_t, event_mask) |
| |
| /** |
| * struct eventmsgs_ext - firmware event message. |
| * |
| * @version: version information. |
| * @command: the command of this iovar. |
| * @length: for SET it would be mask size from the application to the firmware for GET it would be |
| * actual firmware mask size. |
| * @max_get_size: only for iovar get, indicating the max mask length of the event mask. |
| * @event_mask: the event mask bits. |
| */ |
| using eventmsgs_ext_t = struct eventmsgs_ext { |
| uint8_t version; |
| uint8_t command; |
| uint8_t length; |
| uint8_t max_get_size; |
| uint8_t event_mask[1]; |
| }; |
| |
| #define ASSOC_MGR_CURRENT_VERSION 0x0 |
| |
| #define ASSOC_MGR_CMD_PAUSE_ON_EVT 0 /* have assoc pause on certain events */ |
| #define ASSOC_MGR_CMD_ABORT_ASSOC 1 |
| #define ASSOC_MGR_CMD_SEND_AUTH 3 |
| |
| #define ASSOC_MGR_PARAMS_EVENT_NONE 0 /* use this to resume as well as clear */ |
| #define ASSOC_MGR_PARAMS_PAUSE_EVENT_AUTH_RESP 1 |
| |
| /** |
| * struct assoc_mgr_cmd - Command struct to control firmware association command process. |
| * |
| * @version: Version of this command. |
| * @length: Length of data that the firmware need to deal with. |
| * @cmd: Command to control the association process. |
| * @params: Parameters for the commands. |
| */ |
| using assoc_mgr_cmd_t = struct assoc_mgr_cmd { |
| uint16_t version; |
| uint16_t length; |
| uint16_t cmd; |
| uint16_t params; |
| }; |
| |
| #define NFIFO 6 /**< # tx/rx fifopairs */ |
| #define NREINITREASONCOUNT 8 |
| typedef struct { |
| uint16 version; /* see definition of WL_CNT_T_VERSION */ |
| uint16 length; /* length of entire structure */ |
| |
| /* transmit stat counters */ |
| uint32 txframe; /* tx data frames */ |
| uint32 txbyte; /* tx data bytes */ |
| uint32 txretrans; /* tx mac retransmits */ |
| uint32 txerror; /* tx data errors (derived: sum of others) */ |
| uint32 txctl; /* tx management frames */ |
| uint32 txprshort; /* tx short preamble frames */ |
| uint32 txserr; /* tx status errors */ |
| uint32 txnobuf; /* tx out of buffers errors */ |
| uint32 txnoassoc; /* tx discard because we're not associated */ |
| uint32 txrunt; /* tx runt frames */ |
| uint32 txchit; /* tx header cache hit (fastpath) */ |
| uint32 txcmiss; /* tx header cache miss (slowpath) */ |
| |
| /* transmit chip error counters */ |
| uint32 txuflo; /* tx fifo underflows */ |
| uint32 txphyerr; /* tx phy errors (indicated in tx status) */ |
| uint32 txphycrs; |
| |
| /* receive stat counters */ |
| uint32 rxframe; /* rx data frames */ |
| uint32 rxbyte; /* rx data bytes */ |
| uint32 rxerror; /* rx data errors (derived: sum of others) */ |
| uint32 rxctl; /* rx management frames */ |
| uint32 rxnobuf; /* rx out of buffers errors */ |
| uint32 rxnondata; /* rx non data frames in the data channel errors */ |
| uint32 rxbadds; /* rx bad DS errors */ |
| uint32 rxbadcm; /* rx bad control or management frames */ |
| uint32 rxfragerr; /* rx fragmentation errors */ |
| uint32 rxrunt; /* rx runt frames */ |
| uint32 rxgiant; /* rx giant frames */ |
| uint32 rxnoscb; /* rx no scb error */ |
| uint32 rxbadproto; /* rx invalid frames */ |
| uint32 rxbadsrcmac; /* rx frames with Invalid Src Mac */ |
| uint32 rxbadda; /* rx frames tossed for invalid da */ |
| uint32 rxfilter; /* rx frames filtered out */ |
| |
| /* receive chip error counters */ |
| uint32 rxoflo; /* rx fifo overflow errors */ |
| uint32 rxuflo[NFIFO]; /* rx dma descriptor underflow errors */ |
| |
| uint32 d11cnt_txrts_off; /* d11cnt txrts value when reset d11cnt */ |
| uint32 d11cnt_rxcrc_off; /* d11cnt rxcrc value when reset d11cnt */ |
| uint32 d11cnt_txnocts_off; /* d11cnt txnocts value when reset d11cnt */ |
| |
| /* misc counters */ |
| uint32 dmade; /* tx/rx dma descriptor errors */ |
| uint32 dmada; /* tx/rx dma data errors */ |
| uint32 dmape; /* tx/rx dma descriptor protocol errors */ |
| uint32 reset; /* reset count */ |
| uint32 tbtt; /* cnts the TBTT int's */ |
| uint32 txdmawar; |
| uint32 pkt_callback_reg_fail; /* callbacks register failure */ |
| |
| /* MAC counters: 32-bit version of d11.h's macstat_t */ |
| uint32 txallfrm; /* total number of frames sent, incl. Data, ACK, RTS, CTS, |
| * Control Management (includes retransmissions) |
| */ |
| uint32 txrtsfrm; /* number of RTS sent out by the MAC */ |
| uint32 txctsfrm; /* number of CTS sent out by the MAC */ |
| uint32 txackfrm; /* number of ACK frames sent out */ |
| uint32 txdnlfrm; /* Not used */ |
| uint32 txbcnfrm; /* beacons transmitted */ |
| uint32 txfunfl[6]; /* per-fifo tx underflows */ |
| uint32 rxtoolate; /* receive too late */ |
| uint32 txfbw; /* transmit at fallback bw (dynamic bw) */ |
| uint32 txtplunfl; /* Template underflows (mac was too slow to transmit ACK/CTS |
| * or BCN) |
| */ |
| uint32 txphyerror; /* Transmit phy error, type of error is reported in tx-status for |
| * driver enqueued frames |
| */ |
| uint32 rxfrmtoolong; /* Received frame longer than legal limit (2346 bytes) */ |
| uint32 rxfrmtooshrt; /* Received frame did not contain enough bytes for its frame type */ |
| uint32 rxinvmachdr; /* Either the protocol version != 0 or frame type not |
| * data/control/management |
| */ |
| uint32 rxbadfcs; /* number of frames for which the CRC check failed in the MAC */ |
| uint32 rxbadplcp; /* parity check of the PLCP header failed */ |
| uint32 rxcrsglitch; /* PHY was able to correlate the preamble but not the header */ |
| uint32 rxstrt; /* Number of received frames with a good PLCP |
| * (i.e. passing parity check) |
| */ |
| uint32 rxdfrmucastmbss; /* Number of received DATA frames with good FCS and matching RA */ |
| uint32 rxmfrmucastmbss; /* number of received mgmt frames with good FCS and matching RA */ |
| uint32 rxcfrmucast; /* number of received CNTRL frames with good FCS and matching RA */ |
| uint32 rxrtsucast; /* number of unicast RTS addressed to the MAC (good FCS) */ |
| uint32 rxctsucast; /* number of unicast CTS addressed to the MAC (good FCS) */ |
| uint32 rxackucast; /* number of ucast ACKS received (good FCS) */ |
| uint32 rxdfrmocast; /* number of received DATA frames (good FCS and not matching RA) */ |
| uint32 rxmfrmocast; /* number of received MGMT frames (good FCS and not matching RA) */ |
| uint32 rxcfrmocast; /* number of received CNTRL frame (good FCS and not matching RA) */ |
| uint32 rxrtsocast; /* number of received RTS not addressed to the MAC */ |
| uint32 rxctsocast; /* number of received CTS not addressed to the MAC */ |
| uint32 rxdfrmmcast; /* number of RX Data multicast frames received by the MAC */ |
| uint32 rxmfrmmcast; /* number of RX Management multicast frames received by the MAC */ |
| uint32 rxcfrmmcast; /* number of RX Control multicast frames received by the MAC |
| * (unlikely to see these) |
| */ |
| uint32 rxbeaconmbss; /* beacons received from member of BSS */ |
| uint32 rxdfrmucastobss; /* number of unicast frames addressed to the MAC from |
| * other BSS (WDS FRAME) |
| */ |
| uint32 rxbeaconobss; /* beacons received from other BSS */ |
| uint32 rxrsptmout; /* Number of response timeouts for transmitted frames |
| * expecting a response |
| */ |
| uint32 bcntxcancl; /* transmit beacons canceled due to receipt of beacon (IBSS) */ |
| uint32 rxf0ovfl; /* Number of receive fifo 0 overflows */ |
| uint32 rxf1ovfl; /* Number of receive fifo 1 overflows (obsolete) */ |
| uint32 rxf2ovfl; /* Number of receive fifo 2 overflows (obsolete) */ |
| uint32 txsfovfl; /* Number of transmit status fifo overflows (obsolete) */ |
| uint32 pmqovfl; /* Number of PMQ overflows */ |
| uint32 rxcgprqfrm; /* Number of received Probe requests that made it into |
| * the PRQ fifo |
| */ |
| uint32 rxcgprsqovfl; /* Rx Probe Request Que overflow in the AP */ |
| uint32 txcgprsfail; /* Tx Probe Response Fail. AP sent probe response but did |
| * not get ACK |
| */ |
| uint32 txcgprssuc; /* Tx Probe Response Success (ACK was received) */ |
| uint32 prs_timeout; /* 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 |
| */ |
| uint32 rxnack; |
| uint32 frmscons; |
| uint32 txnack; /* obsolete */ |
| uint32 rxback; /* blockack rxcnt */ |
| uint32 txback; /* blockack txcnt */ |
| |
| /* 802.11 MIB counters, pp. 614 of 802.11 reaff doc. */ |
| uint32 txfrag; /* dot11TransmittedFragmentCount */ |
| uint32 txmulti; /* dot11MulticastTransmittedFrameCount */ |
| uint32 txfail; /* dot11FailedCount */ |
| uint32 txretry; /* dot11RetryCount */ |
| uint32 txretrie; /* dot11MultipleRetryCount */ |
| uint32 rxdup; /* dot11FrameduplicateCount */ |
| uint32 txrts; /* dot11RTSSuccessCount */ |
| uint32 txnocts; /* dot11RTSFailureCount */ |
| uint32 txnoack; /* dot11ACKFailureCount */ |
| uint32 rxfrag; /* dot11ReceivedFragmentCount */ |
| uint32 rxmulti; /* dot11MulticastReceivedFrameCount */ |
| uint32 rxcrc; /* dot11FCSErrorCount */ |
| uint32 txfrmsnt; /* dot11TransmittedFrameCount (bogus MIB?) */ |
| uint32 rxundec; /* dot11WEPUndecryptableCount */ |
| |
| /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
| uint32 tkipmicfaill; /* TKIPLocalMICFailures */ |
| uint32 tkipcntrmsr; /* TKIPCounterMeasuresInvoked */ |
| uint32 tkipreplay; /* TKIPReplays */ |
| uint32 ccmpfmterr; /* CCMPFormatErrors */ |
| uint32 ccmpreplay; /* CCMPReplays */ |
| uint32 ccmpundec; /* CCMPDecryptErrors */ |
| uint32 fourwayfail; /* FourWayHandshakeFailures */ |
| uint32 wepundec; /* dot11WEPUndecryptableCount */ |
| uint32 wepicverr; /* dot11WEPICVErrorCount */ |
| uint32 decsuccess; /* DecryptSuccessCount */ |
| uint32 tkipicverr; /* TKIPICVErrorCount */ |
| uint32 wepexcluded; /* dot11WEPExcludedCount */ |
| |
| uint32 rxundec_mcst; /* dot11WEPUndecryptableCount */ |
| |
| /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
| uint32 tkipmicfaill_mcst; /* TKIPLocalMICFailures */ |
| uint32 tkipcntrmsr_mcst; /* TKIPCounterMeasuresInvoked */ |
| uint32 tkipreplay_mcst; /* TKIPReplays */ |
| uint32 ccmpfmterr_mcst; /* CCMPFormatErrors */ |
| uint32 ccmpreplay_mcst; /* CCMPReplays */ |
| uint32 ccmpundec_mcst; /* CCMPDecryptErrors */ |
| uint32 fourwayfail_mcst; /* FourWayHandshakeFailures */ |
| uint32 wepundec_mcst; /* dot11WEPUndecryptableCount */ |
| uint32 wepicverr_mcst; /* dot11WEPICVErrorCount */ |
| uint32 decsuccess_mcst; /* DecryptSuccessCount */ |
| uint32 tkipicverr_mcst; /* TKIPICVErrorCount */ |
| uint32 wepexcluded_mcst; /* dot11WEPExcludedCount */ |
| |
| uint32 txchanrej; /* Tx frames suppressed due to channel rejection */ |
| uint32 txexptime; /* Tx frames suppressed due to timer expiration */ |
| uint32 psmwds; /* Count PSM watchdogs */ |
| uint32 phywatchdog; /* Count Phy watchdogs (triggered by ucode) */ |
| |
| /* MBSS counters, AP only */ |
| uint32 prq_entries_handled; /* PRQ entries read in */ |
| uint32 prq_undirected_entries; /* which were bcast bss & ssid */ |
| uint32 prq_bad_entries; /* which could not be translated to info */ |
| uint32 atim_suppress_count; /* TX suppressions on ATIM fifo */ |
| uint32 bcn_template_not_ready; /* Template marked in use on send bcn ... */ |
| uint32 bcn_template_not_ready_done; /* ...but "DMA done" interrupt rcvd */ |
| uint32 late_tbtt_dpc; /* TBTT DPC did not happen in time */ |
| |
| /* per-rate receive stat counters */ |
| uint32 rx1mbps; /* packets rx at 1Mbps */ |
| uint32 rx2mbps; /* packets rx at 2Mbps */ |
| uint32 rx5mbps5; /* packets rx at 5.5Mbps */ |
| uint32 rx6mbps; /* packets rx at 6Mbps */ |
| uint32 rx9mbps; /* packets rx at 9Mbps */ |
| uint32 rx11mbps; /* packets rx at 11Mbps */ |
| uint32 rx12mbps; /* packets rx at 12Mbps */ |
| uint32 rx18mbps; /* packets rx at 18Mbps */ |
| uint32 rx24mbps; /* packets rx at 24Mbps */ |
| uint32 rx36mbps; /* packets rx at 36Mbps */ |
| uint32 rx48mbps; /* packets rx at 48Mbps */ |
| uint32 rx54mbps; /* packets rx at 54Mbps */ |
| uint32 rx108mbps; /* packets rx at 108mbps */ |
| uint32 rx162mbps; /* packets rx at 162mbps */ |
| uint32 rx216mbps; /* packets rx at 216 mbps */ |
| uint32 rx270mbps; /* packets rx at 270 mbps */ |
| uint32 rx324mbps; /* packets rx at 324 mbps */ |
| uint32 rx378mbps; /* packets rx at 378 mbps */ |
| uint32 rx432mbps; /* packets rx at 432 mbps */ |
| uint32 rx486mbps; /* packets rx at 486 mbps */ |
| uint32 rx540mbps; /* packets rx at 540 mbps */ |
| |
| /* pkteng rx frame stats */ |
| uint32 pktengrxducast; /* unicast frames rxed by the pkteng code */ |
| uint32 pktengrxdmcast; /* multicast frames rxed by the pkteng code */ |
| |
| uint32 rfdisable; /* count of radio disables */ |
| uint32 bphy_rxcrsglitch; /* PHY count of bphy glitches */ |
| uint32 bphy_badplcp; |
| |
| uint32 txmpdu_sgi; /* count for sgi transmit */ |
| uint32 rxmpdu_sgi; /* count for sgi received */ |
| uint32 txmpdu_stbc; /* count for stbc transmit */ |
| uint32 rxmpdu_stbc; /* count for stbc received */ |
| |
| uint32 rxdrop20s; /* drop secondary cnt */ |
| } wl_cnt_ver_6_t; |
| |
| typedef struct { |
| uint16 version; /**< see definition of WL_CNT_T_VERSION */ |
| uint16 length; /**< length of entire structure */ |
| |
| /* transmit stat counters */ |
| uint32 txframe; /**< tx data frames */ |
| uint32 txbyte; /**< tx data bytes */ |
| uint32 txretrans; /**< tx mac retransmits */ |
| uint32 txerror; /**< tx data errors (derived: sum of others) */ |
| uint32 txctl; /**< tx management frames */ |
| uint32 txprshort; /**< tx short preamble frames */ |
| uint32 txserr; /**< tx status errors */ |
| uint32 txnobuf; /**< tx out of buffers errors */ |
| uint32 txnoassoc; /**< tx discard because we're not associated */ |
| uint32 txrunt; /**< tx runt frames */ |
| uint32 txchit; /**< tx header cache hit (fastpath) */ |
| uint32 txcmiss; /**< tx header cache miss (slowpath) */ |
| |
| /* transmit chip error counters */ |
| uint32 txuflo; /**< tx fifo underflows */ |
| uint32 txphyerr; /**< tx phy errors (indicated in tx status) */ |
| uint32 txphycrs; |
| |
| /* receive stat counters */ |
| uint32 rxframe; /**< rx data frames */ |
| uint32 rxbyte; /**< rx data bytes */ |
| uint32 rxerror; /**< rx data errors (derived: sum of others) */ |
| uint32 rxctl; /**< rx management frames */ |
| uint32 rxnobuf; /**< rx out of buffers errors */ |
| uint32 rxnondata; /**< rx non data frames in the data channel errors */ |
| uint32 rxbadds; /**< rx bad DS errors */ |
| uint32 rxbadcm; /**< rx bad control or management frames */ |
| uint32 rxfragerr; /**< rx fragmentation errors */ |
| uint32 rxrunt; /**< rx runt frames */ |
| uint32 rxgiant; /**< rx giant frames */ |
| uint32 rxnoscb; /**< rx no scb error */ |
| uint32 rxbadproto; /**< rx invalid frames */ |
| uint32 rxbadsrcmac; /**< rx frames with Invalid Src Mac */ |
| uint32 rxbadda; /**< rx frames tossed for invalid da */ |
| uint32 rxfilter; /**< rx frames filtered out */ |
| |
| /* receive chip error counters */ |
| uint32 rxoflo; /**< rx fifo overflow errors */ |
| uint32 rxuflo[NFIFO]; /**< rx dma descriptor underflow errors */ |
| |
| uint32 d11cnt_txrts_off; /**< d11cnt txrts value when reset d11cnt */ |
| uint32 d11cnt_rxcrc_off; /**< d11cnt rxcrc value when reset d11cnt */ |
| uint32 d11cnt_txnocts_off; /**< d11cnt txnocts value when reset d11cnt */ |
| |
| /* misc counters */ |
| uint32 dmade; /**< tx/rx dma descriptor errors */ |
| uint32 dmada; /**< tx/rx dma data errors */ |
| uint32 dmape; /**< tx/rx dma descriptor protocol errors */ |
| uint32 reset; /**< reset count */ |
| uint32 tbtt; /**< cnts the TBTT int's */ |
| uint32 txdmawar; |
| uint32 pkt_callback_reg_fail; /**< callbacks register failure */ |
| |
| /* MAC counters: 32-bit version of d11.h's macstat_t */ |
| uint32 txallfrm; /**< total number of frames sent, incl. Data, ACK, RTS, CTS, |
| * Control Management (includes retransmissions) |
| */ |
| uint32 txrtsfrm; /**< number of RTS sent out by the MAC */ |
| uint32 txctsfrm; /**< number of CTS sent out by the MAC */ |
| uint32 txackfrm; /**< number of ACK frames sent out */ |
| uint32 txdnlfrm; /**< Not used */ |
| uint32 txbcnfrm; /**< beacons transmitted */ |
| uint32 txfunfl[6]; /**< per-fifo tx underflows */ |
| uint32 rxtoolate; /**< receive too late */ |
| uint32 txfbw; /**< transmit at fallback bw (dynamic bw) */ |
| uint32 txtplunfl; /**< Template underflows (mac was too slow to transmit ACK/CTS |
| * or BCN) |
| */ |
| uint32 txphyerror; /**< Transmit phy error, type of error is reported in tx-status for |
| * driver enqueued frames |
| */ |
| uint32 rxfrmtoolong; /**< Received frame longer than legal limit (2346 bytes) */ |
| uint32 rxfrmtooshrt; /**< Received frame did not contain enough bytes for its frame type */ |
| uint32 rxinvmachdr; /**< Either the protocol version != 0 or frame type not |
| * data/control/management |
| */ |
| uint32 rxbadfcs; /**< number of frames for which the CRC check failed in the MAC */ |
| uint32 rxbadplcp; /**< parity check of the PLCP header failed */ |
| uint32 rxcrsglitch; /**< PHY was able to correlate the preamble but not the header */ |
| uint32 rxstrt; /**< Number of received frames with a good PLCP |
| * (i.e. passing parity check) |
| */ |
| uint32 rxdfrmucastmbss; /* Number of received DATA frames with good FCS and matching RA */ |
| uint32 rxmfrmucastmbss; /* number of received mgmt frames with good FCS and matching RA */ |
| uint32 rxcfrmucast; /**< number of received CNTRL frames with good FCS and matching RA */ |
| uint32 rxrtsucast; /**< number of unicast RTS addressed to the MAC (good FCS) */ |
| uint32 rxctsucast; /**< number of unicast CTS addressed to the MAC (good FCS) */ |
| uint32 rxackucast; /**< number of ucast ACKS received (good FCS) */ |
| uint32 rxdfrmocast; /**< number of received DATA frames (good FCS and not matching RA) */ |
| uint32 rxmfrmocast; /**< number of received MGMT frames (good FCS and not matching RA) */ |
| uint32 rxcfrmocast; /**< number of received CNTRL frame (good FCS and not matching RA) */ |
| uint32 rxrtsocast; /**< number of received RTS not addressed to the MAC */ |
| uint32 rxctsocast; /**< number of received CTS not addressed to the MAC */ |
| uint32 rxdfrmmcast; /**< number of RX Data multicast frames received by the MAC */ |
| uint32 rxmfrmmcast; /**< number of RX Management multicast frames received by the MAC */ |
| uint32 rxcfrmmcast; /**< number of RX Control multicast frames received by the MAC |
| * (unlikely to see these) |
| */ |
| uint32 rxbeaconmbss; /**< beacons received from member of BSS */ |
| uint32 rxdfrmucastobss; /* number of unicast frames addressed to the MAC from |
| * other BSS (WDS FRAME) |
| */ |
| uint32 rxbeaconobss; /**< beacons received from other BSS */ |
| uint32 rxrsptmout; /**< Number of response timeouts for transmitted frames |
| * expecting a response |
| */ |
| uint32 bcntxcancl; /**< transmit beacons canceled due to receipt of beacon (IBSS) */ |
| uint32 rxf0ovfl; /**< Number of receive fifo 0 overflows */ |
| uint32 rxf1ovfl; /**< Number of receive fifo 1 overflows (obsolete) */ |
| uint32 rxf2ovfl; /**< Number of receive fifo 2 overflows (obsolete) */ |
| uint32 txsfovfl; /**< Number of transmit status fifo overflows (obsolete) */ |
| uint32 pmqovfl; /**< Number of PMQ overflows */ |
| uint32 rxcgprqfrm; /**< Number of received Probe requests that made it into |
| * the PRQ fifo |
| */ |
| uint32 rxcgprsqovfl; /**< Rx Probe Request Que overflow in the AP */ |
| uint32 txcgprsfail; /**< Tx Probe Response Fail. AP sent probe response but did |
| * not get ACK |
| */ |
| uint32 txcgprssuc; /**< Tx Probe Response Success (ACK was received) */ |
| uint32 prs_timeout; /**< 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 |
| */ |
| uint32 rxnack; /**< obsolete */ |
| uint32 frmscons; /**< obsolete */ |
| uint32 txnack; /**< obsolete */ |
| uint32 rxback; /**< blockack rxcnt */ |
| uint32 txback; /**< blockack txcnt */ |
| |
| /* 802.11 MIB counters, pp. 614 of 802.11 reaff doc. */ |
| uint32 txfrag; /**< dot11TransmittedFragmentCount */ |
| uint32 txmulti; /**< dot11MulticastTransmittedFrameCount */ |
| uint32 txfail; /**< dot11FailedCount */ |
| uint32 txretry; /**< dot11RetryCount */ |
| uint32 txretrie; /**< dot11MultipleRetryCount */ |
| uint32 rxdup; /**< dot11FrameduplicateCount */ |
| uint32 txrts; /**< dot11RTSSuccessCount */ |
| uint32 txnocts; /**< dot11RTSFailureCount */ |
| uint32 txnoack; /**< dot11ACKFailureCount */ |
| uint32 rxfrag; /**< dot11ReceivedFragmentCount */ |
| uint32 rxmulti; /**< dot11MulticastReceivedFrameCount */ |
| uint32 rxcrc; /**< dot11FCSErrorCount */ |
| uint32 txfrmsnt; /**< dot11TransmittedFrameCount (bogus MIB?) */ |
| uint32 rxundec; /**< dot11WEPUndecryptableCount */ |
| |
| /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
| uint32 tkipmicfaill; /**< TKIPLocalMICFailures */ |
| uint32 tkipcntrmsr; /**< TKIPCounterMeasuresInvoked */ |
| uint32 tkipreplay; /**< TKIPReplays */ |
| uint32 ccmpfmterr; /**< CCMPFormatErrors */ |
| uint32 ccmpreplay; /**< CCMPReplays */ |
| uint32 ccmpundec; /**< CCMPDecryptErrors */ |
| uint32 fourwayfail; /**< FourWayHandshakeFailures */ |
| uint32 wepundec; /**< dot11WEPUndecryptableCount */ |
| uint32 wepicverr; /**< dot11WEPICVErrorCount */ |
| uint32 decsuccess; /**< DecryptSuccessCount */ |
| uint32 tkipicverr; /**< TKIPICVErrorCount */ |
| uint32 wepexcluded; /**< dot11WEPExcludedCount */ |
| |
| uint32 txchanrej; /**< Tx frames suppressed due to channel rejection */ |
| uint32 psmwds; /**< Count PSM watchdogs */ |
| uint32 phywatchdog; /**< Count Phy watchdogs (triggered by ucode) */ |
| |
| /* MBSS counters, AP only */ |
| uint32 prq_entries_handled; /**< PRQ entries read in */ |
| uint32 prq_undirected_entries; /**< which were bcast bss & ssid */ |
| uint32 prq_bad_entries; /**< which could not be translated to info */ |
| uint32 atim_suppress_count; /**< TX suppressions on ATIM fifo */ |
| uint32 bcn_template_not_ready; /**< Template marked in use on send bcn ... */ |
| uint32 bcn_template_not_ready_done; /* ...but "DMA done" interrupt rcvd */ |
| uint32 late_tbtt_dpc; /**< TBTT DPC did not happen in time */ |
| |
| /* per-rate receive stat counters */ |
| uint32 rx1mbps; /* packets rx at 1Mbps */ |
| uint32 rx2mbps; /* packets rx at 2Mbps */ |
| uint32 rx5mbps5; /* packets rx at 5.5Mbps */ |
| uint32 rx6mbps; /* packets rx at 6Mbps */ |
| uint32 rx9mbps; /* packets rx at 9Mbps */ |
| uint32 rx11mbps; /* packets rx at 11Mbps */ |
| uint32 rx12mbps; /* packets rx at 12Mbps */ |
| uint32 rx18mbps; /* packets rx at 18Mbps */ |
| uint32 rx24mbps; /* packets rx at 24Mbps */ |
| uint32 rx36mbps; /* packets rx at 36Mbps */ |
| uint32 rx48mbps; /* packets rx at 48Mbps */ |
| uint32 rx54mbps; /* packets rx at 54Mbps */ |
| uint32 rx108mbps; /* packets rx at 108mbps */ |
| uint32 rx162mbps; /* packets rx at 162mbps */ |
| uint32 rx216mbps; /* packets rx at 216 mbps */ |
| uint32 rx270mbps; /* packets rx at 270 mbps */ |
| uint32 rx324mbps; /* packets rx at 324 mbps */ |
| uint32 rx378mbps; /* packets rx at 378 mbps */ |
| uint32 rx432mbps; /* packets rx at 432 mbps */ |
| uint32 rx486mbps; /* packets rx at 486 mbps */ |
| uint32 rx540mbps; /* packets rx at 540 mbps */ |
| |
| /* pkteng rx frame stats */ |
| uint32 pktengrxducast; /* unicast frames rxed by the pkteng code */ |
| uint32 pktengrxdmcast; /* multicast frames rxed by the pkteng code */ |
| |
| uint32 rfdisable; /**< count of radio disables */ |
| uint32 bphy_rxcrsglitch; /**< PHY count of bphy glitches */ |
| uint32 bphy_badplcp; |
| |
| uint32 txexptime; /**< Tx frames suppressed due to timer expiration */ |
| |
| uint32 txmpdu_sgi; /**< count for sgi transmit */ |
| uint32 rxmpdu_sgi; /**< count for sgi received */ |
| uint32 txmpdu_stbc; /**< count for stbc transmit */ |
| uint32 rxmpdu_stbc; /**< count for stbc received */ |
| |
| uint32 rxundec_mcst; /**< dot11WEPUndecryptableCount */ |
| |
| /* WPA2 counters (see rxundec for DecryptFailureCount) */ |
| uint32 tkipmicfaill_mcst; /**< TKIPLocalMICFailures */ |
| uint32 tkipcntrmsr_mcst; /**< TKIPCounterMeasuresInvoked */ |
| uint32 tkipreplay_mcst; /**< TKIPReplays */ |
| uint32 ccmpfmterr_mcst; /**< CCMPFormatErrors */ |
| uint32 ccmpreplay_mcst; /**< CCMPReplays */ |
| uint32 ccmpundec_mcst; /**< CCMPDecryptErrors */ |
| uint32 fourwayfail_mcst; /**< FourWayHandshakeFailures */ |
| uint32 wepundec_mcst; /**< dot11WEPUndecryptableCount */ |
| uint32 wepicverr_mcst; /**< dot11WEPICVErrorCount */ |
| uint32 decsuccess_mcst; /**< DecryptSuccessCount */ |
| uint32 tkipicverr_mcst; /**< TKIPICVErrorCount */ |
| uint32 wepexcluded_mcst; /**< dot11WEPExcludedCount */ |
| |
| uint32 dma_hang; /**< count for dma hang */ |
| uint32 reinit; /**< count for reinit */ |
| |
| uint32 pstatxucast; /**< count of ucast frames xmitted on all psta assoc */ |
| uint32 pstatxnoassoc; /**< count of txnoassoc frames xmitted on all psta assoc */ |
| uint32 pstarxucast; /**< count of ucast frames received on all psta assoc */ |
| uint32 pstarxbcmc; /**< count of bcmc frames received on all psta */ |
| uint32 pstatxbcmc; /**< count of bcmc frames transmitted on all psta */ |
| |
| uint32 cso_passthrough; /* hw cso required but passthrough */ |
| uint32 cso_normal; /**< hw cso hdr for normal process */ |
| uint32 chained; /**< number of frames chained */ |
| uint32 chainedsz1; /**< number of chain size 1 frames */ |
| uint32 unchained; /**< number of frames not chained */ |
| uint32 maxchainsz; /**< max chain size so far */ |
| uint32 currchainsz; /**< current chain size */ |
| uint32 rxdrop20s; /**< drop secondary cnt */ |
| uint32 pciereset; /**< Secondary Bus Reset issued by driver */ |
| uint32 cfgrestore; /**< configspace restore by driver */ |
| uint32 reinitreason[NREINITREASONCOUNT]; /* reinitreason counters; 0: Unknown reason */ |
| uint32 rxrtry; /**< num of received packets with retry bit on */ |
| uint32 txmpdu; /**< macstat cnt only valid in ver 11. number of MPDUs txed. */ |
| uint32 rxnodelim; /**< macstat cnt only valid in ver 11. |
| * number of occasions that no valid delimiter is detected |
| * by ampdu parser. |
| */ |
| uint32 rxmpdu_mu; /* Number of MU MPDUs received */ |
| |
| /* detailed control/management frames */ |
| uint32 txbar; /**< Number of TX BAR */ |
| uint32 rxbar; /**< Number of RX BAR */ |
| uint32 txpspoll; /**< Number of TX PS-poll */ |
| uint32 rxpspoll; /**< Number of RX PS-poll */ |
| uint32 txnull; /**< Number of TX NULL_DATA */ |
| uint32 rxnull; /**< Number of RX NULL_DATA */ |
| uint32 txqosnull; /**< Number of TX NULL_QoSDATA */ |
| uint32 rxqosnull; /**< Number of RX NULL_QoSDATA */ |
| uint32 txassocreq; /**< Number of TX ASSOC request */ |
| uint32 rxassocreq; /**< Number of RX ASSOC request */ |
| uint32 txreassocreq; /**< Number of TX REASSOC request */ |
| uint32 rxreassocreq; /**< Number of RX REASSOC request */ |
| uint32 txdisassoc; /**< Number of TX DISASSOC */ |
| uint32 rxdisassoc; /**< Number of RX DISASSOC */ |
| uint32 txassocrsp; /**< Number of TX ASSOC response */ |
| uint32 rxassocrsp; /**< Number of RX ASSOC response */ |
| uint32 txreassocrsp; /**< Number of TX REASSOC response */ |
| uint32 rxreassocrsp; /**< Number of RX REASSOC response */ |
| uint32 txauth; /**< Number of TX AUTH */ |
| uint32 rxauth; /**< Number of RX AUTH */ |
| uint32 txdeauth; /**< Number of TX DEAUTH */ |
| uint32 rxdeauth; /**< Number of RX DEAUTH */ |
| uint32 txprobereq; /**< Number of TX probe request */ |
| uint32 rxprobereq; /**< Number of RX probe request */ |
| uint32 txprobersp; /**< Number of TX probe response */ |
| uint32 rxprobersp; /**< Number of RX probe response */ |
| uint32 txaction; /**< Number of TX action frame */ |
| uint32 rxaction; /**< Number of RX action frame */ |
| |
| } wl_cnt_ver_11_t; |
| |
| typedef struct { |
| uint32 packets; |
| uint32 bytes; |
| } wl_traffic_stats_t; |
| |
| typedef struct { |
| uint16 version; /* see definition of WL_WME_CNT_VERSION */ |
| uint16 length; /* length of entire structure */ |
| |
| wl_traffic_stats_t tx[AC_COUNT]; /* Packets transmitted */ |
| wl_traffic_stats_t tx_failed[AC_COUNT]; /* Packets dropped or failed to transmit */ |
| wl_traffic_stats_t rx[AC_COUNT]; /* Packets received */ |
| wl_traffic_stats_t rx_failed[AC_COUNT]; /* Packets failed to receive */ |
| |
| wl_traffic_stats_t forward[AC_COUNT]; /* Packets forwarded by AP */ |
| |
| wl_traffic_stats_t tx_expired[AC_COUNT]; /* packets dropped due to lifetime expiry */ |
| |
| } wl_wme_cnt_t; |
| |
| /* "wnm_bsstrans_policy" argument programs behavior after BSSTRANS Req reception. |
| * BSS-Transition feature is used by multiple programs such as NPS-PF, VE-PF, |
| * Band-steering, Hotspot 2.0 and customer requirements. Each PF and its test plan |
| * mandates different behavior on receiving BSS-transition request. To accomodate |
| * such divergent behaviors these policies have been created. |
| */ |
| enum { |
| WL_BSSTRANS_POLICY_ROAM_ALWAYS = 0, /* Roam (or disassociate) in all cases */ |
| WL_BSSTRANS_POLICY_ROAM_IF_MODE = 1, /* Roam only if requested by Request Mode field */ |
| WL_BSSTRANS_POLICY_ROAM_IF_PREF = 2, /* Roam only if Preferred BSS provided */ |
| WL_BSSTRANS_POLICY_WAIT = 3, /* Wait for deauth and send Accepted status */ |
| WL_BSSTRANS_POLICY_PRODUCT = 4, /* Policy for real product use cases (non-pf) */ |
| }; |
| |
| #endif // THIRD_PARTY_BCMDHD_CROSSDRIVER_WLIOCTL_H_ |