
Added ipq9574 target header files under qca9574 to make fw-api project compatible to host. Change-Id: I6a3b43861772a98bb185ee3101b3942dd30abc77 Signed-off-by: Basamma Yakkanahalli <ybasamma@codeaurora.org>
2153 wiersze
60 KiB
C
2153 wiersze
60 KiB
C
/*
|
|
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
// $ATH_LICENSE_HW_HDR_C$
|
|
//
|
|
// DO NOT EDIT! This file is automatically generated
|
|
// These definitions are tied to a particular hardware layout
|
|
|
|
|
|
#ifndef _RX_PPDU_END_USER_STATS_H_
|
|
#define _RX_PPDU_END_USER_STATS_H_
|
|
#if !defined(__ASSEMBLER__)
|
|
#endif
|
|
|
|
#include "rx_rxpcu_classification_overview.h"
|
|
|
|
// ################ START SUMMARY #################
|
|
//
|
|
// Dword Fields
|
|
// 0 struct rx_rxpcu_classification_overview rxpcu_classification_details;
|
|
// 1 sta_full_aid[12:0], mcs[16:13], nss[19:17], ofdma_info_valid[20], dl_ofdma_ru_start_index[27:21], reserved_1a[31:28]
|
|
// 2 dl_ofdma_ru_width[6:0], reserved_2a[7], user_receive_quality[15:8], mpdu_cnt_fcs_err[25:16], wbm2rxdma_buf_source_used[26], fw2rxdma_buf_source_used[27], sw2rxdma_buf_source_used[28], reserved_2b[31:29]
|
|
// 3 mpdu_cnt_fcs_ok[8:0], frame_control_info_valid[9], qos_control_info_valid[10], ht_control_info_valid[11], data_sequence_control_info_valid[12], ht_control_info_null_valid[13], reserved_3a[15:14], rxdma2reo_ring_used[16], rxdma2fw_ring_used[17], rxdma2sw_ring_used[18], rxdma_release_ring_used[19], ht_control_field_pkt_type[23:20], reserved_3b[31:24]
|
|
// 4 ast_index[15:0], frame_control_field[31:16]
|
|
// 5 first_data_seq_ctrl[15:0], qos_control_field[31:16]
|
|
// 6 ht_control_field[31:0]
|
|
// 7 fcs_ok_bitmap_31_0[31:0]
|
|
// 8 fcs_ok_bitmap_63_32[31:0]
|
|
// 9 udp_msdu_count[15:0], tcp_msdu_count[31:16]
|
|
// 10 other_msdu_count[15:0], tcp_ack_msdu_count[31:16]
|
|
// 11 sw_response_reference_ptr[31:0]
|
|
// 12 received_qos_data_tid_bitmap[15:0], received_qos_data_tid_eosp_bitmap[31:16]
|
|
// 13 qosctrl_15_8_tid0[7:0], qosctrl_15_8_tid1[15:8], qosctrl_15_8_tid2[23:16], qosctrl_15_8_tid3[31:24]
|
|
// 14 qosctrl_15_8_tid4[7:0], qosctrl_15_8_tid5[15:8], qosctrl_15_8_tid6[23:16], qosctrl_15_8_tid7[31:24]
|
|
// 15 qosctrl_15_8_tid8[7:0], qosctrl_15_8_tid9[15:8], qosctrl_15_8_tid10[23:16], qosctrl_15_8_tid11[31:24]
|
|
// 16 qosctrl_15_8_tid12[7:0], qosctrl_15_8_tid13[15:8], qosctrl_15_8_tid14[23:16], qosctrl_15_8_tid15[31:24]
|
|
// 17 mpdu_ok_byte_count[24:0], ampdu_delim_ok_count_6_0[31:25]
|
|
// 18 ampdu_delim_err_count[24:0], ampdu_delim_ok_count_13_7[31:25]
|
|
// 19 mpdu_err_byte_count[24:0], ampdu_delim_ok_count_20_14[31:25]
|
|
// 20 non_consecutive_delimiter_err[15:0], reserved_20a[31:16]
|
|
// 21 ht_control_null_field[31:0]
|
|
// 22 sw_response_reference_ptr_ext[31:0]
|
|
//
|
|
// ################ END SUMMARY #################
|
|
|
|
#define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 23
|
|
|
|
struct rx_ppdu_end_user_stats {
|
|
struct rx_rxpcu_classification_overview rxpcu_classification_details;
|
|
uint32_t sta_full_aid : 13, //[12:0]
|
|
mcs : 4, //[16:13]
|
|
nss : 3, //[19:17]
|
|
ofdma_info_valid : 1, //[20]
|
|
dl_ofdma_ru_start_index : 7, //[27:21]
|
|
reserved_1a : 4; //[31:28]
|
|
uint32_t dl_ofdma_ru_width : 7, //[6:0]
|
|
reserved_2a : 1, //[7]
|
|
user_receive_quality : 8, //[15:8]
|
|
mpdu_cnt_fcs_err : 10, //[25:16]
|
|
wbm2rxdma_buf_source_used : 1, //[26]
|
|
fw2rxdma_buf_source_used : 1, //[27]
|
|
sw2rxdma_buf_source_used : 1, //[28]
|
|
reserved_2b : 3; //[31:29]
|
|
uint32_t mpdu_cnt_fcs_ok : 9, //[8:0]
|
|
frame_control_info_valid : 1, //[9]
|
|
qos_control_info_valid : 1, //[10]
|
|
ht_control_info_valid : 1, //[11]
|
|
data_sequence_control_info_valid: 1, //[12]
|
|
ht_control_info_null_valid : 1, //[13]
|
|
reserved_3a : 2, //[15:14]
|
|
rxdma2reo_ring_used : 1, //[16]
|
|
rxdma2fw_ring_used : 1, //[17]
|
|
rxdma2sw_ring_used : 1, //[18]
|
|
rxdma_release_ring_used : 1, //[19]
|
|
ht_control_field_pkt_type : 4, //[23:20]
|
|
reserved_3b : 8; //[31:24]
|
|
uint32_t ast_index : 16, //[15:0]
|
|
frame_control_field : 16; //[31:16]
|
|
uint32_t first_data_seq_ctrl : 16, //[15:0]
|
|
qos_control_field : 16; //[31:16]
|
|
uint32_t ht_control_field : 32; //[31:0]
|
|
uint32_t fcs_ok_bitmap_31_0 : 32; //[31:0]
|
|
uint32_t fcs_ok_bitmap_63_32 : 32; //[31:0]
|
|
uint32_t udp_msdu_count : 16, //[15:0]
|
|
tcp_msdu_count : 16; //[31:16]
|
|
uint32_t other_msdu_count : 16, //[15:0]
|
|
tcp_ack_msdu_count : 16; //[31:16]
|
|
uint32_t sw_response_reference_ptr : 32; //[31:0]
|
|
uint32_t received_qos_data_tid_bitmap : 16, //[15:0]
|
|
received_qos_data_tid_eosp_bitmap: 16; //[31:16]
|
|
uint32_t qosctrl_15_8_tid0 : 8, //[7:0]
|
|
qosctrl_15_8_tid1 : 8, //[15:8]
|
|
qosctrl_15_8_tid2 : 8, //[23:16]
|
|
qosctrl_15_8_tid3 : 8; //[31:24]
|
|
uint32_t qosctrl_15_8_tid4 : 8, //[7:0]
|
|
qosctrl_15_8_tid5 : 8, //[15:8]
|
|
qosctrl_15_8_tid6 : 8, //[23:16]
|
|
qosctrl_15_8_tid7 : 8; //[31:24]
|
|
uint32_t qosctrl_15_8_tid8 : 8, //[7:0]
|
|
qosctrl_15_8_tid9 : 8, //[15:8]
|
|
qosctrl_15_8_tid10 : 8, //[23:16]
|
|
qosctrl_15_8_tid11 : 8; //[31:24]
|
|
uint32_t qosctrl_15_8_tid12 : 8, //[7:0]
|
|
qosctrl_15_8_tid13 : 8, //[15:8]
|
|
qosctrl_15_8_tid14 : 8, //[23:16]
|
|
qosctrl_15_8_tid15 : 8; //[31:24]
|
|
uint32_t mpdu_ok_byte_count : 25, //[24:0]
|
|
ampdu_delim_ok_count_6_0 : 7; //[31:25]
|
|
uint32_t ampdu_delim_err_count : 25, //[24:0]
|
|
ampdu_delim_ok_count_13_7 : 7; //[31:25]
|
|
uint32_t mpdu_err_byte_count : 25, //[24:0]
|
|
ampdu_delim_ok_count_20_14 : 7; //[31:25]
|
|
uint32_t non_consecutive_delimiter_err : 16, //[15:0]
|
|
reserved_20a : 16; //[31:16]
|
|
uint32_t ht_control_null_field : 32; //[31:0]
|
|
uint32_t sw_response_reference_ptr_ext : 32; //[31:0]
|
|
};
|
|
|
|
/*
|
|
|
|
struct rx_rxpcu_classification_overview rxpcu_classification_details
|
|
|
|
Details related to what RXPCU classification types of
|
|
MPDUs have been received
|
|
|
|
sta_full_aid
|
|
|
|
Consumer: FW
|
|
|
|
Producer: RXPCU
|
|
|
|
|
|
|
|
The full AID of this station.
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
mcs
|
|
|
|
MCS of the received frame
|
|
|
|
|
|
|
|
For details, refer to MCS_TYPE description
|
|
|
|
Note: This is rate in case of 11a/11b
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
nss
|
|
|
|
Number of spatial streams.
|
|
|
|
|
|
|
|
NOTE: RXPCU derives this from the 'Mimo_ss_bitmap'
|
|
|
|
|
|
|
|
<enum 0 1_spatial_stream>Single spatial stream
|
|
|
|
<enum 1 2_spatial_streams>2 spatial streams
|
|
|
|
<enum 2 3_spatial_streams>3 spatial streams
|
|
|
|
<enum 3 4_spatial_streams>4 spatial streams
|
|
|
|
<enum 4 5_spatial_streams>5 spatial streams
|
|
|
|
<enum 5 6_spatial_streams>6 spatial streams
|
|
|
|
<enum 6 7_spatial_streams>7 spatial streams
|
|
|
|
<enum 7 8_spatial_streams>8 spatial streams
|
|
|
|
ofdma_info_valid
|
|
|
|
When set, ofdma RU related info in the following fields
|
|
is valid
|
|
|
|
<legal all>
|
|
|
|
dl_ofdma_ru_start_index
|
|
|
|
Field only valid when Ofdma_info_valid is set
|
|
|
|
|
|
|
|
RU index number to which User is assigned
|
|
|
|
RU numbering is over the entire BW, starting from 0
|
|
|
|
<legal 0-73>
|
|
|
|
reserved_1a
|
|
|
|
<legal 0>
|
|
|
|
dl_ofdma_ru_width
|
|
|
|
The size of the RU for this user.
|
|
|
|
In units of 1 (26 tone) RU
|
|
|
|
<legal 1-74>
|
|
|
|
reserved_2a
|
|
|
|
<legal 0>
|
|
|
|
user_receive_quality
|
|
|
|
RSSI / EVM for this user ???
|
|
|
|
|
|
|
|
Details TBD
|
|
|
|
<legal all>
|
|
|
|
mpdu_cnt_fcs_err
|
|
|
|
The number of MPDUs received from this STA in this PPDU
|
|
with FCS errors
|
|
|
|
<legal all>
|
|
|
|
wbm2rxdma_buf_source_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
When set, RXDMA has used the wbm2rxdma_buf ring as
|
|
source for at least one of the frames in this PPDU.
|
|
|
|
fw2rxdma_buf_source_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
When set, RXDMA has used the fw2rxdma_buf ring as source
|
|
for at least one of the frames in this PPDU.
|
|
|
|
sw2rxdma_buf_source_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
When set, RXDMA has used the sw2rxdma_buf ring as source
|
|
for at least one of the frames in this PPDU.
|
|
|
|
reserved_2b
|
|
|
|
<legal 0>
|
|
|
|
mpdu_cnt_fcs_ok
|
|
|
|
The number of MPDUs received from this STA in this PPDU
|
|
with correct FCS
|
|
|
|
<legal all>
|
|
|
|
frame_control_info_valid
|
|
|
|
When set, the frame_control_info field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
|
|
qos_control_info_valid
|
|
|
|
When set, the QoS_control_info field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
|
|
ht_control_info_valid
|
|
|
|
When set, the HT_control_field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
|
|
data_sequence_control_info_valid
|
|
|
|
When set, the First_data_seq_ctrl field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
|
|
ht_control_info_null_valid
|
|
|
|
When set, the HT_control_NULL_field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
|
|
reserved_3a
|
|
|
|
<legal 0>
|
|
|
|
rxdma2reo_ring_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
|
|
rxdma2fw_ring_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
|
|
rxdma2sw_ring_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
|
|
rxdma_release_ring_used
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
|
|
ht_control_field_pkt_type
|
|
|
|
Field only valid when HT_control_info_valid or
|
|
HT_control_info_NULL_valid is set.
|
|
|
|
|
|
|
|
Indicates what the PHY receive type was for receiving
|
|
this frame. Can help determine if the HT_CONTROL field shall
|
|
be interpreted as HT/VHT or HE.
|
|
|
|
|
|
|
|
NOTE: later on in the 11ax IEEE spec a bit within the HT
|
|
control field was introduced that explicitly indicated how
|
|
to interpret the HT control field.... As HT, VHT, or HE.
|
|
|
|
|
|
|
|
<enum 0 dot11a>802.11a PPDU type
|
|
|
|
<enum 1 dot11b>802.11b PPDU type
|
|
|
|
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
|
|
|
<enum 3 dot11ac>802.11ac PPDU type
|
|
|
|
<enum 4 dot11ax>802.11ax PPDU type
|
|
|
|
reserved_3b
|
|
|
|
<legal 0>
|
|
|
|
ast_index
|
|
|
|
This field indicates the index of the AST entry
|
|
corresponding to this MPDU. It is provided by the GSE module
|
|
instantiated in RXPCU.
|
|
|
|
A value of 0xFFFF indicates an invalid AST index,
|
|
meaning that No AST entry was found or NO AST search was
|
|
performed
|
|
|
|
<legal all>
|
|
|
|
frame_control_field
|
|
|
|
Field only valid when Frame_control_info_valid is set.
|
|
|
|
|
|
|
|
Last successfully received Frame_control field of data
|
|
frame (excluding Data NULL/ QoS Null) for this user
|
|
|
|
Mainly used to track the PM state of the transmitted
|
|
device
|
|
|
|
|
|
|
|
NOTE: only data frame info is needed, as control and
|
|
management frames are already routed to the FW.
|
|
|
|
<legal all>
|
|
|
|
first_data_seq_ctrl
|
|
|
|
Field only valid when Data_sequence_control_info_valid
|
|
is set.
|
|
|
|
|
|
|
|
Sequence control field of the first data frame
|
|
(excluding Data NULL or QoS Data null) received for this
|
|
user with correct FCS
|
|
|
|
|
|
|
|
NOTE: only data frame info is needed, as control and
|
|
management frames are already routed to the FW.
|
|
|
|
<legal all>
|
|
|
|
qos_control_field
|
|
|
|
Field only valid when QoS_control_info_valid is set.
|
|
|
|
|
|
|
|
Last successfully received QoS_control field of data
|
|
frame (excluding Data NULL/ QoS Null) for this user
|
|
|
|
|
|
|
|
Note that in case of multi TID, this field can only
|
|
reflect the last properly received MPDU, and thus can not
|
|
indicate all potentially different TIDs that had been
|
|
received earlier.
|
|
|
|
|
|
|
|
There are however per TID fields, that will contain
|
|
among other things all buffer status info: See
|
|
|
|
QoSCtrl_15_8_tid???
|
|
|
|
<legal all>
|
|
|
|
ht_control_field
|
|
|
|
Field only valid when HT_control_info_valid is set.
|
|
|
|
|
|
|
|
Last successfully received
|
|
HT_CONTROL/VHT_CONTROL/HE_CONTROL field of data frames,
|
|
excluding QoS Null frames for this user.
|
|
|
|
|
|
|
|
NOTE: HT control fields from QoS Null frames are
|
|
captured in field HT_control_NULL_field
|
|
|
|
<legal all>
|
|
|
|
fcs_ok_bitmap_31_0
|
|
|
|
Bitmap indicates in order of received MPDUs, which MPDUs
|
|
had an passing FCS or had an error.
|
|
|
|
1: FCS OK
|
|
|
|
0: FCS error
|
|
|
|
<legal all>
|
|
|
|
fcs_ok_bitmap_63_32
|
|
|
|
Bitmap indicates in order of received MPDUs, which MPDUs
|
|
had an passing FCS or had an error.
|
|
|
|
1: FCS OK
|
|
|
|
0: FCS error
|
|
|
|
|
|
|
|
NOTE: for users 0, 1, 2 and 3, additional bitmap info
|
|
(up to 256 bitmap window) is provided in
|
|
RX_PPDU_END_USER_STATS_EXT TLV
|
|
|
|
<legal all>
|
|
|
|
udp_msdu_count
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain UDP frames.
|
|
|
|
<legal all>
|
|
|
|
tcp_msdu_count
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain TCP frames.
|
|
|
|
|
|
|
|
(Note: This does NOT include TCP-ACK)
|
|
|
|
<legal all>
|
|
|
|
other_msdu_count
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain neither UDP or TCP frames.
|
|
|
|
|
|
|
|
Includes Management and control frames.
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
tcp_ack_msdu_count
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain TCP ack frames.
|
|
|
|
<legal all>
|
|
|
|
sw_response_reference_ptr
|
|
|
|
Pointer that SW uses to refer back to an expected
|
|
response reception. Used for Rate adaptation purposes.
|
|
|
|
When a reception occurrs that is not tied to an expected
|
|
response, this field is set to 0x0
|
|
|
|
|
|
|
|
Note: further on in this TLV there is also the field:
|
|
Sw_response_reference_ptr
|
|
|
|
<legal all>
|
|
|
|
received_qos_data_tid_bitmap
|
|
|
|
Whenever a frame is received that contains a QoS control
|
|
field (that includes QoS Data and/or QoS Null), the bit in
|
|
this field that corresponds to the received TID shall be
|
|
set.
|
|
|
|
...Bitmap[0] = TID0
|
|
|
|
...Bitmap[1] = TID1
|
|
|
|
Etc.
|
|
|
|
<legal all>
|
|
|
|
received_qos_data_tid_eosp_bitmap
|
|
|
|
Field initialized to 0
|
|
|
|
For every QoS Data frame that is correctly received, the
|
|
EOSP bit of that frame is copied over into the corresponding
|
|
TID related field.
|
|
|
|
Note that this implies that the bits here represent the
|
|
EOSP bit status for each TID of the last MPDU received for
|
|
that TID.
|
|
|
|
|
|
|
|
received TID shall be set.
|
|
|
|
...eosp_bitmap[0] = eosp of TID0
|
|
|
|
...eosp_bitmap[1] = eosp of TID1
|
|
|
|
Etc.
|
|
|
|
<legal all>
|
|
|
|
qosctrl_15_8_tid0
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[0] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 0
|
|
|
|
qosctrl_15_8_tid1
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[1] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 1
|
|
|
|
qosctrl_15_8_tid2
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[2] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 2
|
|
|
|
qosctrl_15_8_tid3
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[3] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 3
|
|
|
|
qosctrl_15_8_tid4
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[4] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 4
|
|
|
|
qosctrl_15_8_tid5
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[5] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 5
|
|
|
|
qosctrl_15_8_tid6
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[6] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 6
|
|
|
|
qosctrl_15_8_tid7
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[7] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 7
|
|
|
|
qosctrl_15_8_tid8
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[8] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 8
|
|
|
|
qosctrl_15_8_tid9
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[9] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 9
|
|
|
|
qosctrl_15_8_tid10
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[10]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 10
|
|
|
|
qosctrl_15_8_tid11
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[11]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 11
|
|
|
|
qosctrl_15_8_tid12
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[12]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 12
|
|
|
|
qosctrl_15_8_tid13
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[13]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 13
|
|
|
|
qosctrl_15_8_tid14
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[14]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 14
|
|
|
|
qosctrl_15_8_tid15
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[15]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 15
|
|
|
|
mpdu_ok_byte_count
|
|
|
|
The number of bytes received within an MPDU for this
|
|
user with correct FCS. This includes the FCS field
|
|
|
|
|
|
|
|
NOTE:
|
|
|
|
The sum of the four fields.....
|
|
|
|
Mpdu_ok_byte_count +
|
|
|
|
mpdu_err_byte_count +
|
|
|
|
|
|
.....is the total number of bytes that were received for
|
|
this user from the PHY.
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
ampdu_delim_ok_count_6_0
|
|
|
|
Number of AMPDU delimiter received with correct
|
|
structure
|
|
|
|
LSB 7 bits from this counter
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
ampdu_delim_err_count
|
|
|
|
The number of MPDU delimiter errors counted for this
|
|
user.
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
<legal all>
|
|
|
|
ampdu_delim_ok_count_13_7
|
|
|
|
Number of AMPDU delimiters received with correct
|
|
structure
|
|
|
|
Bits 13-7 from this counter
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
<legal all>
|
|
|
|
mpdu_err_byte_count
|
|
|
|
The number of bytes belonging to MPDUs with an FCS
|
|
error. This includes the FCS field.
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
ampdu_delim_ok_count_20_14
|
|
|
|
Number of AMPDU delimiters received with correct
|
|
structure
|
|
|
|
Bits 20-14 from this counter
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
non_consecutive_delimiter_err
|
|
|
|
The number of times an MPDU delimiter error is detected
|
|
that is not immediately preceded by another MPDU delimiter
|
|
also with FCS error.
|
|
|
|
|
|
|
|
The counter saturates at 0xFFFF
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
reserved_20a
|
|
|
|
<legal 0>
|
|
|
|
ht_control_null_field
|
|
|
|
|
|
|
|
|
|
Last successfully received
|
|
HT_CONTROL/VHT_CONTROL/HE_CONTROL field from QoS Null frame
|
|
for this user.
|
|
|
|
<legal all>
|
|
|
|
sw_response_reference_ptr_ext
|
|
|
|
Extended Pointer that SW uses to refer back to an
|
|
expected response reception. Used for Rate adaptation
|
|
purposes.
|
|
|
|
When a reception occurrs that is not tied to an expected
|
|
response, this field is set to 0x0
|
|
|
|
|
|
|
|
Note: earlier on in this TLV there is also the field:
|
|
Sw_response_reference_ptr
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
|
|
/* EXTERNAL REFERENCE : struct rx_rxpcu_classification_overview rxpcu_classification_details */
|
|
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS
|
|
|
|
When set, at least one Filter Pass MPDU has been
|
|
received. FCS might or might not have been passing.
|
|
|
|
|
|
|
|
For MU UL, in TLVs RX_PPDU_END and
|
|
RX_PPDU_END_STATUS_DONE, this field is the OR of all the
|
|
users.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x00000001
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK
|
|
|
|
When set, at least one Filter Pass MPDU has been
|
|
received that has a correct FCS.
|
|
|
|
|
|
|
|
For MU UL, in TLVs RX_PPDU_END and
|
|
RX_PPDU_END_STATUS_DONE, this field is the OR of all the
|
|
users.
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x00000002
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS
|
|
|
|
When set, at least one Monitor Direct MPDU has been
|
|
received. FCS might or might not have been passing
|
|
|
|
|
|
|
|
For MU UL, in TLVs RX_PPDU_END and
|
|
RX_PPDU_END_STATUS_DONE, this field is the OR of all the
|
|
users.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x00000004
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK
|
|
|
|
When set, at least one Monitor Direct MPDU has been
|
|
received that has a correct FCS.
|
|
|
|
|
|
|
|
For MU UL, in TLVs RX_PPDU_END and
|
|
RX_PPDU_END_STATUS_DONE, this field is the OR of all the
|
|
users.
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x00000008
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS
|
|
|
|
When set, at least one Monitor Direct MPDU has been
|
|
received. FCS might or might not have been passing.
|
|
|
|
|
|
|
|
For MU UL, in TLVs RX_PPDU_END and
|
|
RX_PPDU_END_STATUS_DONE, this field is the OR of all the
|
|
users.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x00000010
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK
|
|
|
|
When set, at least one Monitor Direct MPDU has been
|
|
received that has a correct FCS.
|
|
|
|
|
|
|
|
For MU UL, in TLVs RX_PPDU_END and
|
|
RX_PPDU_END_STATUS_DONE, this field is the OR of all the
|
|
users.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x00000020
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED
|
|
|
|
When set, PPDU reception was aborted by the PHY
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x00000040
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 7
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x0000ff80
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID
|
|
|
|
A ppdu counter value that PHY increments for every PPDU
|
|
received. The counter value wraps around
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_1_STA_FULL_AID
|
|
|
|
Consumer: FW
|
|
|
|
Producer: RXPCU
|
|
|
|
|
|
|
|
The full AID of this station.
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_1_STA_FULL_AID_OFFSET 0x00000004
|
|
#define RX_PPDU_END_USER_STATS_1_STA_FULL_AID_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_1_STA_FULL_AID_MASK 0x00001fff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_1_MCS
|
|
|
|
MCS of the received frame
|
|
|
|
|
|
|
|
For details, refer to MCS_TYPE description
|
|
|
|
Note: This is rate in case of 11a/11b
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_1_MCS_OFFSET 0x00000004
|
|
#define RX_PPDU_END_USER_STATS_1_MCS_LSB 13
|
|
#define RX_PPDU_END_USER_STATS_1_MCS_MASK 0x0001e000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_1_NSS
|
|
|
|
Number of spatial streams.
|
|
|
|
|
|
|
|
NOTE: RXPCU derives this from the 'Mimo_ss_bitmap'
|
|
|
|
|
|
|
|
<enum 0 1_spatial_stream>Single spatial stream
|
|
|
|
<enum 1 2_spatial_streams>2 spatial streams
|
|
|
|
<enum 2 3_spatial_streams>3 spatial streams
|
|
|
|
<enum 3 4_spatial_streams>4 spatial streams
|
|
|
|
<enum 4 5_spatial_streams>5 spatial streams
|
|
|
|
<enum 5 6_spatial_streams>6 spatial streams
|
|
|
|
<enum 6 7_spatial_streams>7 spatial streams
|
|
|
|
<enum 7 8_spatial_streams>8 spatial streams
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_1_NSS_OFFSET 0x00000004
|
|
#define RX_PPDU_END_USER_STATS_1_NSS_LSB 17
|
|
#define RX_PPDU_END_USER_STATS_1_NSS_MASK 0x000e0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID
|
|
|
|
When set, ofdma RU related info in the following fields
|
|
is valid
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID_OFFSET 0x00000004
|
|
#define RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID_LSB 20
|
|
#define RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID_MASK 0x00100000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX
|
|
|
|
Field only valid when Ofdma_info_valid is set
|
|
|
|
|
|
|
|
RU index number to which User is assigned
|
|
|
|
RU numbering is over the entire BW, starting from 0
|
|
|
|
<legal 0-73>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX_OFFSET 0x00000004
|
|
#define RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX_LSB 21
|
|
#define RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX_MASK 0x0fe00000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_1_RESERVED_1A
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_1_RESERVED_1A_OFFSET 0x00000004
|
|
#define RX_PPDU_END_USER_STATS_1_RESERVED_1A_LSB 28
|
|
#define RX_PPDU_END_USER_STATS_1_RESERVED_1A_MASK 0xf0000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH
|
|
|
|
The size of the RU for this user.
|
|
|
|
In units of 1 (26 tone) RU
|
|
|
|
<legal 1-74>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH_MASK 0x0000007f
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_RESERVED_2A
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_RESERVED_2A_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_RESERVED_2A_LSB 7
|
|
#define RX_PPDU_END_USER_STATS_2_RESERVED_2A_MASK 0x00000080
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY
|
|
|
|
RSSI / EVM for this user ???
|
|
|
|
|
|
|
|
Details TBD
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY_MASK 0x0000ff00
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR
|
|
|
|
The number of MPDUs received from this STA in this PPDU
|
|
with FCS errors
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR_MASK 0x03ff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
When set, RXDMA has used the wbm2rxdma_buf ring as
|
|
source for at least one of the frames in this PPDU.
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED_LSB 26
|
|
#define RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED_MASK 0x04000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
When set, RXDMA has used the fw2rxdma_buf ring as source
|
|
for at least one of the frames in this PPDU.
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED_LSB 27
|
|
#define RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED_MASK 0x08000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
When set, RXDMA has used the sw2rxdma_buf ring as source
|
|
for at least one of the frames in this PPDU.
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED_LSB 28
|
|
#define RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED_MASK 0x10000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_2_RESERVED_2B
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_2_RESERVED_2B_OFFSET 0x00000008
|
|
#define RX_PPDU_END_USER_STATS_2_RESERVED_2B_LSB 29
|
|
#define RX_PPDU_END_USER_STATS_2_RESERVED_2B_MASK 0xe0000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK
|
|
|
|
The number of MPDUs received from this STA in this PPDU
|
|
with correct FCS
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK_MASK 0x000001ff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID
|
|
|
|
When set, the frame_control_info field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID_LSB 9
|
|
#define RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID_MASK 0x00000200
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID
|
|
|
|
When set, the QoS_control_info field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID_LSB 10
|
|
#define RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID_MASK 0x00000400
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID
|
|
|
|
When set, the HT_control_field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID_LSB 11
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID_MASK 0x00000800
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID
|
|
|
|
When set, the First_data_seq_ctrl field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB 12
|
|
#define RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK 0x00001000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID
|
|
|
|
When set, the HT_control_NULL_field contains valid
|
|
information
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID_LSB 13
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID_MASK 0x00002000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_RESERVED_3A
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_RESERVED_3A_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_RESERVED_3A_LSB 14
|
|
#define RX_PPDU_END_USER_STATS_3_RESERVED_3A_MASK 0x0000c000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED_MASK 0x00010000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED_LSB 17
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED_MASK 0x00020000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED_LSB 18
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED_MASK 0x00040000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
|
|
|
|
Set when at least one frame during this PPDU got pushed
|
|
to this ring by RXDMA
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED_LSB 19
|
|
#define RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED_MASK 0x00080000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE
|
|
|
|
Field only valid when HT_control_info_valid or
|
|
HT_control_info_NULL_valid is set.
|
|
|
|
|
|
|
|
Indicates what the PHY receive type was for receiving
|
|
this frame. Can help determine if the HT_CONTROL field shall
|
|
be interpreted as HT/VHT or HE.
|
|
|
|
|
|
|
|
NOTE: later on in the 11ax IEEE spec a bit within the HT
|
|
control field was introduced that explicitly indicated how
|
|
to interpret the HT control field.... As HT, VHT, or HE.
|
|
|
|
|
|
|
|
<enum 0 dot11a>802.11a PPDU type
|
|
|
|
<enum 1 dot11b>802.11b PPDU type
|
|
|
|
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
|
|
|
|
<enum 3 dot11ac>802.11ac PPDU type
|
|
|
|
<enum 4 dot11ax>802.11ax PPDU type
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE_LSB 20
|
|
#define RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE_MASK 0x00f00000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_3_RESERVED_3B
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_3_RESERVED_3B_OFFSET 0x0000000c
|
|
#define RX_PPDU_END_USER_STATS_3_RESERVED_3B_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_3_RESERVED_3B_MASK 0xff000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_4_AST_INDEX
|
|
|
|
This field indicates the index of the AST entry
|
|
corresponding to this MPDU. It is provided by the GSE module
|
|
instantiated in RXPCU.
|
|
|
|
A value of 0xFFFF indicates an invalid AST index,
|
|
meaning that No AST entry was found or NO AST search was
|
|
performed
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_4_AST_INDEX_OFFSET 0x00000010
|
|
#define RX_PPDU_END_USER_STATS_4_AST_INDEX_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_4_AST_INDEX_MASK 0x0000ffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD
|
|
|
|
Field only valid when Frame_control_info_valid is set.
|
|
|
|
|
|
|
|
Last successfully received Frame_control field of data
|
|
frame (excluding Data NULL/ QoS Null) for this user
|
|
|
|
Mainly used to track the PM state of the transmitted
|
|
device
|
|
|
|
|
|
|
|
NOTE: only data frame info is needed, as control and
|
|
management frames are already routed to the FW.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD_OFFSET 0x00000010
|
|
#define RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL
|
|
|
|
Field only valid when Data_sequence_control_info_valid
|
|
is set.
|
|
|
|
|
|
|
|
Sequence control field of the first data frame
|
|
(excluding Data NULL or QoS Data null) received for this
|
|
user with correct FCS
|
|
|
|
|
|
|
|
NOTE: only data frame info is needed, as control and
|
|
management frames are already routed to the FW.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL_OFFSET 0x00000014
|
|
#define RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL_MASK 0x0000ffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD
|
|
|
|
Field only valid when QoS_control_info_valid is set.
|
|
|
|
|
|
|
|
Last successfully received QoS_control field of data
|
|
frame (excluding Data NULL/ QoS Null) for this user
|
|
|
|
|
|
|
|
Note that in case of multi TID, this field can only
|
|
reflect the last properly received MPDU, and thus can not
|
|
indicate all potentially different TIDs that had been
|
|
received earlier.
|
|
|
|
|
|
|
|
There are however per TID fields, that will contain
|
|
among other things all buffer status info: See
|
|
|
|
QoSCtrl_15_8_tid???
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD_OFFSET 0x00000014
|
|
#define RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD
|
|
|
|
Field only valid when HT_control_info_valid is set.
|
|
|
|
|
|
|
|
Last successfully received
|
|
HT_CONTROL/VHT_CONTROL/HE_CONTROL field of data frames,
|
|
excluding QoS Null frames for this user.
|
|
|
|
|
|
|
|
NOTE: HT control fields from QoS Null frames are
|
|
captured in field HT_control_NULL_field
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD_OFFSET 0x00000018
|
|
#define RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD_MASK 0xffffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0
|
|
|
|
Bitmap indicates in order of received MPDUs, which MPDUs
|
|
had an passing FCS or had an error.
|
|
|
|
1: FCS OK
|
|
|
|
0: FCS error
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0_OFFSET 0x0000001c
|
|
#define RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0_MASK 0xffffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32
|
|
|
|
Bitmap indicates in order of received MPDUs, which MPDUs
|
|
had an passing FCS or had an error.
|
|
|
|
1: FCS OK
|
|
|
|
0: FCS error
|
|
|
|
|
|
|
|
NOTE: for users 0, 1, 2 and 3, additional bitmap info
|
|
(up to 256 bitmap window) is provided in
|
|
RX_PPDU_END_USER_STATS_EXT TLV
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32_OFFSET 0x00000020
|
|
#define RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32_MASK 0xffffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain UDP frames.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT_OFFSET 0x00000024
|
|
#define RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT_MASK 0x0000ffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain TCP frames.
|
|
|
|
|
|
|
|
(Note: This does NOT include TCP-ACK)
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT_OFFSET 0x00000024
|
|
#define RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain neither UDP or TCP frames.
|
|
|
|
|
|
|
|
Includes Management and control frames.
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT_OFFSET 0x00000028
|
|
#define RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT_MASK 0x0000ffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT
|
|
|
|
Field filled in by RX OLE
|
|
|
|
Set to 0 by RXPCU
|
|
|
|
|
|
|
|
The number of MSDUs that are part of MPDUs without FCS
|
|
error, that contain TCP ack frames.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT_OFFSET 0x00000028
|
|
#define RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR
|
|
|
|
Pointer that SW uses to refer back to an expected
|
|
response reception. Used for Rate adaptation purposes.
|
|
|
|
When a reception occurrs that is not tied to an expected
|
|
response, this field is set to 0x0
|
|
|
|
|
|
|
|
Note: further on in this TLV there is also the field:
|
|
Sw_response_reference_ptr
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR_OFFSET 0x0000002c
|
|
#define RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR_MASK 0xffffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP
|
|
|
|
Whenever a frame is received that contains a QoS control
|
|
field (that includes QoS Data and/or QoS Null), the bit in
|
|
this field that corresponds to the received TID shall be
|
|
set.
|
|
|
|
...Bitmap[0] = TID0
|
|
|
|
...Bitmap[1] = TID1
|
|
|
|
Etc.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET 0x00000030
|
|
#define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP_MASK 0x0000ffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP
|
|
|
|
Field initialized to 0
|
|
|
|
For every QoS Data frame that is correctly received, the
|
|
EOSP bit of that frame is copied over into the corresponding
|
|
TID related field.
|
|
|
|
Note that this implies that the bits here represent the
|
|
EOSP bit status for each TID of the last MPDU received for
|
|
that TID.
|
|
|
|
|
|
|
|
received TID shall be set.
|
|
|
|
...eosp_bitmap[0] = eosp of TID0
|
|
|
|
...eosp_bitmap[1] = eosp of TID1
|
|
|
|
Etc.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET 0x00000030
|
|
#define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[0] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 0
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0_OFFSET 0x00000034
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0_MASK 0x000000ff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[1] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 1
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1_OFFSET 0x00000034
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1_MASK 0x0000ff00
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[2] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 2
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2_OFFSET 0x00000034
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2_MASK 0x00ff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[3] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 3
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3_OFFSET 0x00000034
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3_MASK 0xff000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[4] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 4
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4_OFFSET 0x00000038
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4_MASK 0x000000ff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[5] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 5
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5_OFFSET 0x00000038
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5_MASK 0x0000ff00
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[6] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 6
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6_OFFSET 0x00000038
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6_MASK 0x00ff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[7] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 7
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7_OFFSET 0x00000038
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7_MASK 0xff000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[8] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 8
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8_OFFSET 0x0000003c
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8_MASK 0x000000ff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[9] is
|
|
set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 9
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9_OFFSET 0x0000003c
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9_MASK 0x0000ff00
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[10]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 10
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10_OFFSET 0x0000003c
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10_MASK 0x00ff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[11]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 11
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11_OFFSET 0x0000003c
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11_MASK 0xff000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[12]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 12
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12_OFFSET 0x00000040
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12_MASK 0x000000ff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[13]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 13
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13_OFFSET 0x00000040
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13_MASK 0x0000ff00
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[14]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 14
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14_OFFSET 0x00000040
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14_MASK 0x00ff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15
|
|
|
|
Field only valid when Received_qos_data_tid_bitmap[15]
|
|
is set
|
|
|
|
|
|
|
|
QoS control field bits 15-8 of the last properly
|
|
received MPDU with a QoS control field embedded, with TID
|
|
== 15
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15_OFFSET 0x00000040
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15_MASK 0xff000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT
|
|
|
|
The number of bytes received within an MPDU for this
|
|
user with correct FCS. This includes the FCS field
|
|
|
|
|
|
|
|
NOTE:
|
|
|
|
The sum of the four fields.....
|
|
|
|
Mpdu_ok_byte_count +
|
|
|
|
mpdu_err_byte_count +
|
|
|
|
|
|
.....is the total number of bytes that were received for
|
|
this user from the PHY.
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT_OFFSET 0x00000044
|
|
#define RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT_MASK 0x01ffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0
|
|
|
|
Number of AMPDU delimiter received with correct
|
|
structure
|
|
|
|
LSB 7 bits from this counter
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0_OFFSET 0x00000044
|
|
#define RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0_LSB 25
|
|
#define RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0_MASK 0xfe000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT
|
|
|
|
The number of MPDU delimiter errors counted for this
|
|
user.
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT_OFFSET 0x00000048
|
|
#define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT_MASK 0x01ffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7
|
|
|
|
Number of AMPDU delimiters received with correct
|
|
structure
|
|
|
|
Bits 13-7 from this counter
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7_OFFSET 0x00000048
|
|
#define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7_LSB 25
|
|
#define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7_MASK 0xfe000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT
|
|
|
|
The number of bytes belonging to MPDUs with an FCS
|
|
error. This includes the FCS field.
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT_OFFSET 0x0000004c
|
|
#define RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT_MASK 0x01ffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14
|
|
|
|
Number of AMPDU delimiters received with correct
|
|
structure
|
|
|
|
Bits 20-14 from this counter
|
|
|
|
|
|
|
|
Note that this is a delimiter count and not byte count.
|
|
To get to the number of bytes occupied by these delimiters,
|
|
multiply this number by 4
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14_OFFSET 0x0000004c
|
|
#define RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14_LSB 25
|
|
#define RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14_MASK 0xfe000000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR
|
|
|
|
The number of times an MPDU delimiter error is detected
|
|
that is not immediately preceded by another MPDU delimiter
|
|
also with FCS error.
|
|
|
|
|
|
|
|
The counter saturates at 0xFFFF
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET 0x00000050
|
|
#define RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR_MASK 0x0000ffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_20_RESERVED_20A
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_20_RESERVED_20A_OFFSET 0x00000050
|
|
#define RX_PPDU_END_USER_STATS_20_RESERVED_20A_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_20_RESERVED_20A_MASK 0xffff0000
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD
|
|
|
|
|
|
|
|
|
|
Last successfully received
|
|
HT_CONTROL/VHT_CONTROL/HE_CONTROL field from QoS Null frame
|
|
for this user.
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD_OFFSET 0x00000054
|
|
#define RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD_MASK 0xffffffff
|
|
|
|
/* Description RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT
|
|
|
|
Extended Pointer that SW uses to refer back to an
|
|
expected response reception. Used for Rate adaptation
|
|
purposes.
|
|
|
|
When a reception occurrs that is not tied to an expected
|
|
response, this field is set to 0x0
|
|
|
|
|
|
|
|
Note: earlier on in this TLV there is also the field:
|
|
Sw_response_reference_ptr
|
|
|
|
<legal all>
|
|
*/
|
|
#define RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET 0x00000058
|
|
#define RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT_MASK 0xffffffff
|
|
|
|
|
|
#endif // _RX_PPDU_END_USER_STATS_H_
|