
Added qcn6432 target header files based on E3R47 under qcn6432 to make fw-api project compatible to host. Change-Id: I3bdf6298281323f4f0fe75aed04db93cd698ee1f CRs-Fixed: 3463782
1840 líneas
80 KiB
C
1840 líneas
80 KiB
C
/*
|
|
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. 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.
|
|
*/
|
|
|
|
#ifndef _RX_PPDU_END_USER_STATS_H_
|
|
#define _RX_PPDU_END_USER_STATS_H_
|
|
#if !defined(__ASSEMBLER__)
|
|
#endif
|
|
|
|
#include "rx_rxpcu_classification_overview.h"
|
|
#define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 30
|
|
|
|
#define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS 15
|
|
|
|
|
|
struct rx_ppdu_end_user_stats {
|
|
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
|
struct rx_rxpcu_classification_overview rxpcu_classification_details;
|
|
uint32_t sta_full_aid : 13, // [12:0]
|
|
mcs : 4, // [16:13]
|
|
nss : 3, // [19:17]
|
|
expected_response_ack_or_ba : 1, // [20:20]
|
|
reserved_1a : 11; // [31:21]
|
|
uint32_t sw_peer_id : 16, // [15:0]
|
|
mpdu_cnt_fcs_err : 11, // [26:16]
|
|
sw2rxdma0_buf_source_used : 1, // [27:27]
|
|
fw2rxdma_pmac0_buf_source_used : 1, // [28:28]
|
|
sw2rxdma1_buf_source_used : 1, // [29:29]
|
|
sw2rxdma_exception_buf_source_used : 1, // [30:30]
|
|
fw2rxdma_pmac1_buf_source_used : 1; // [31:31]
|
|
uint32_t mpdu_cnt_fcs_ok : 11, // [10:0]
|
|
frame_control_info_valid : 1, // [11:11]
|
|
qos_control_info_valid : 1, // [12:12]
|
|
ht_control_info_valid : 1, // [13:13]
|
|
data_sequence_control_info_valid : 1, // [14:14]
|
|
ht_control_info_null_valid : 1, // [15:15]
|
|
rxdma2fw_pmac1_ring_used : 1, // [16:16]
|
|
rxdma2reo_ring_used : 1, // [17:17]
|
|
rxdma2fw_pmac0_ring_used : 1, // [18:18]
|
|
rxdma2sw_ring_used : 1, // [19:19]
|
|
rxdma_release_ring_used : 1, // [20:20]
|
|
ht_control_field_pkt_type : 4, // [24:21]
|
|
rxdma2reo_remote0_ring_used : 1, // [25:25]
|
|
rxdma2reo_remote1_ring_used : 1, // [26:26]
|
|
reserved_3b : 5; // [31:27]
|
|
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]
|
|
retried_msdu_count : 16; // [31:16]
|
|
uint32_t ht_control_null_field : 32; // [31:0]
|
|
uint32_t sw_response_reference_ptr_ext : 32; // [31:0]
|
|
uint32_t corrupted_due_to_fifo_delay : 1, // [0:0]
|
|
frame_control_info_null_valid : 1, // [1:1]
|
|
frame_control_field_null : 16, // [17:2]
|
|
retried_mpdu_count : 11, // [28:18]
|
|
reserved_23a : 3; // [31:29]
|
|
uint32_t rxpcu_mpdu_filter_in_category : 2, // [1:0]
|
|
sw_frame_group_id : 7, // [8:2]
|
|
reserved_24a : 4, // [12:9]
|
|
frame_control_info_mgmt_ctrl_valid : 1, // [13:13]
|
|
mac_addr_ad2_valid : 1, // [14:14]
|
|
mcast_bcast : 1, // [15:15]
|
|
frame_control_field_mgmt_ctrl : 16; // [31:16]
|
|
uint32_t user_ppdu_len : 24, // [23:0]
|
|
reserved_25a : 8; // [31:24]
|
|
uint32_t mac_addr_ad2_31_0 : 32; // [31:0]
|
|
uint32_t mac_addr_ad2_47_32 : 16, // [15:0]
|
|
amsdu_msdu_count : 16; // [31:16]
|
|
uint32_t non_amsdu_msdu_count : 16, // [15:0]
|
|
ucast_msdu_count : 16; // [31:16]
|
|
uint32_t bcast_msdu_count : 16, // [15:0]
|
|
mcast_bcast_msdu_count : 16; // [31:16]
|
|
#else
|
|
struct rx_rxpcu_classification_overview rxpcu_classification_details;
|
|
uint32_t reserved_1a : 11, // [31:21]
|
|
expected_response_ack_or_ba : 1, // [20:20]
|
|
nss : 3, // [19:17]
|
|
mcs : 4, // [16:13]
|
|
sta_full_aid : 13; // [12:0]
|
|
uint32_t fw2rxdma_pmac1_buf_source_used : 1, // [31:31]
|
|
sw2rxdma_exception_buf_source_used : 1, // [30:30]
|
|
sw2rxdma1_buf_source_used : 1, // [29:29]
|
|
fw2rxdma_pmac0_buf_source_used : 1, // [28:28]
|
|
sw2rxdma0_buf_source_used : 1, // [27:27]
|
|
mpdu_cnt_fcs_err : 11, // [26:16]
|
|
sw_peer_id : 16; // [15:0]
|
|
uint32_t reserved_3b : 5, // [31:27]
|
|
rxdma2reo_remote1_ring_used : 1, // [26:26]
|
|
rxdma2reo_remote0_ring_used : 1, // [25:25]
|
|
ht_control_field_pkt_type : 4, // [24:21]
|
|
rxdma_release_ring_used : 1, // [20:20]
|
|
rxdma2sw_ring_used : 1, // [19:19]
|
|
rxdma2fw_pmac0_ring_used : 1, // [18:18]
|
|
rxdma2reo_ring_used : 1, // [17:17]
|
|
rxdma2fw_pmac1_ring_used : 1, // [16:16]
|
|
ht_control_info_null_valid : 1, // [15:15]
|
|
data_sequence_control_info_valid : 1, // [14:14]
|
|
ht_control_info_valid : 1, // [13:13]
|
|
qos_control_info_valid : 1, // [12:12]
|
|
frame_control_info_valid : 1, // [11:11]
|
|
mpdu_cnt_fcs_ok : 11; // [10:0]
|
|
uint32_t frame_control_field : 16, // [31:16]
|
|
ast_index : 16; // [15:0]
|
|
uint32_t qos_control_field : 16, // [31:16]
|
|
first_data_seq_ctrl : 16; // [15:0]
|
|
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 tcp_msdu_count : 16, // [31:16]
|
|
udp_msdu_count : 16; // [15:0]
|
|
uint32_t tcp_ack_msdu_count : 16, // [31:16]
|
|
other_msdu_count : 16; // [15:0]
|
|
uint32_t sw_response_reference_ptr : 32; // [31:0]
|
|
uint32_t received_qos_data_tid_eosp_bitmap : 16, // [31:16]
|
|
received_qos_data_tid_bitmap : 16; // [15:0]
|
|
uint32_t qosctrl_15_8_tid3 : 8, // [31:24]
|
|
qosctrl_15_8_tid2 : 8, // [23:16]
|
|
qosctrl_15_8_tid1 : 8, // [15:8]
|
|
qosctrl_15_8_tid0 : 8; // [7:0]
|
|
uint32_t qosctrl_15_8_tid7 : 8, // [31:24]
|
|
qosctrl_15_8_tid6 : 8, // [23:16]
|
|
qosctrl_15_8_tid5 : 8, // [15:8]
|
|
qosctrl_15_8_tid4 : 8; // [7:0]
|
|
uint32_t qosctrl_15_8_tid11 : 8, // [31:24]
|
|
qosctrl_15_8_tid10 : 8, // [23:16]
|
|
qosctrl_15_8_tid9 : 8, // [15:8]
|
|
qosctrl_15_8_tid8 : 8; // [7:0]
|
|
uint32_t qosctrl_15_8_tid15 : 8, // [31:24]
|
|
qosctrl_15_8_tid14 : 8, // [23:16]
|
|
qosctrl_15_8_tid13 : 8, // [15:8]
|
|
qosctrl_15_8_tid12 : 8; // [7:0]
|
|
uint32_t ampdu_delim_ok_count_6_0 : 7, // [31:25]
|
|
mpdu_ok_byte_count : 25; // [24:0]
|
|
uint32_t ampdu_delim_ok_count_13_7 : 7, // [31:25]
|
|
ampdu_delim_err_count : 25; // [24:0]
|
|
uint32_t ampdu_delim_ok_count_20_14 : 7, // [31:25]
|
|
mpdu_err_byte_count : 25; // [24:0]
|
|
uint32_t retried_msdu_count : 16, // [31:16]
|
|
non_consecutive_delimiter_err : 16; // [15:0]
|
|
uint32_t ht_control_null_field : 32; // [31:0]
|
|
uint32_t sw_response_reference_ptr_ext : 32; // [31:0]
|
|
uint32_t reserved_23a : 3, // [31:29]
|
|
retried_mpdu_count : 11, // [28:18]
|
|
frame_control_field_null : 16, // [17:2]
|
|
frame_control_info_null_valid : 1, // [1:1]
|
|
corrupted_due_to_fifo_delay : 1; // [0:0]
|
|
uint32_t frame_control_field_mgmt_ctrl : 16, // [31:16]
|
|
mcast_bcast : 1, // [15:15]
|
|
mac_addr_ad2_valid : 1, // [14:14]
|
|
frame_control_info_mgmt_ctrl_valid : 1, // [13:13]
|
|
reserved_24a : 4, // [12:9]
|
|
sw_frame_group_id : 7, // [8:2]
|
|
rxpcu_mpdu_filter_in_category : 2; // [1:0]
|
|
uint32_t reserved_25a : 8, // [31:24]
|
|
user_ppdu_len : 24; // [23:0]
|
|
uint32_t mac_addr_ad2_31_0 : 32; // [31:0]
|
|
uint32_t amsdu_msdu_count : 16, // [31:16]
|
|
mac_addr_ad2_47_32 : 16; // [15:0]
|
|
uint32_t ucast_msdu_count : 16, // [31:16]
|
|
non_amsdu_msdu_count : 16; // [15:0]
|
|
uint32_t mcast_bcast_msdu_count : 16, // [31:16]
|
|
bcast_msdu_count : 16; // [15:0]
|
|
#endif
|
|
};
|
|
|
|
|
|
/* Description RXPCU_CLASSIFICATION_DETAILS
|
|
|
|
Details related to what RXPCU classification types of MPDUs
|
|
have been received
|
|
*/
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB 0
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x0000000000000001
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
|
|
|
|
|
|
/* Description PHYRX_ABORT_RECEIVED
|
|
|
|
When set, PPDU reception was aborted by the PHY
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
|
|
|
|
|
|
/* Description FILTER_PASS_MONITOR_OVRD_MPDUS
|
|
|
|
When set, at least one 'Filter Pass Monitor Override' 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_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
|
|
|
|
|
|
/* Description FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK
|
|
|
|
When set, at least one 'Filter Pass Monitor Override' 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_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
|
|
|
|
|
|
/* Description RESERVED_0
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 9
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x000000000000fe00
|
|
|
|
|
|
/* Description 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_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description STA_FULL_AID
|
|
|
|
Consumer: FW
|
|
Producer: RXPCU
|
|
|
|
The full AID of this station.
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_STA_FULL_AID_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_STA_FULL_AID_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_STA_FULL_AID_MSB 44
|
|
#define RX_PPDU_END_USER_STATS_STA_FULL_AID_MASK 0x00001fff00000000
|
|
|
|
|
|
/* Description 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_MCS_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_MCS_LSB 45
|
|
#define RX_PPDU_END_USER_STATS_MCS_MSB 48
|
|
#define RX_PPDU_END_USER_STATS_MCS_MASK 0x0001e00000000000
|
|
|
|
|
|
/* Description 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_NSS_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_NSS_LSB 49
|
|
#define RX_PPDU_END_USER_STATS_NSS_MSB 51
|
|
#define RX_PPDU_END_USER_STATS_NSS_MASK 0x000e000000000000
|
|
|
|
|
|
/* Description EXPECTED_RESPONSE_ACK_OR_BA
|
|
|
|
When set, it indicates an Ack or BA matching 'EXPECTED_RESPONSE'
|
|
from TXPCU
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_LSB 52
|
|
#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MSB 52
|
|
#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MASK 0x0010000000000000
|
|
|
|
|
|
/* Description RESERVED_1A
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_1A_OFFSET 0x0000000000000000
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_1A_LSB 53
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_1A_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_1A_MASK 0xffe0000000000000
|
|
|
|
|
|
/* Description SW_PEER_ID
|
|
|
|
This field indicates a unique peer identifier, set from
|
|
the field 'sw_peer_id' in the AST entry corresponding to
|
|
this MPDU. It is provided by RXPCU.
|
|
A value of 0xFFFF indicates no AST entry was found or no
|
|
AST search was performed.
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_SW_PEER_ID_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_SW_PEER_ID_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_SW_PEER_ID_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_SW_PEER_ID_MASK 0x000000000000ffff
|
|
|
|
|
|
/* Description 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_MPDU_CNT_FCS_ERR_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MSB 26
|
|
#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MASK 0x0000000007ff0000
|
|
|
|
|
|
/* Description SW2RXDMA0_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
When set, RXDMA has used the sw2rxdma0 buffer ring as source
|
|
for at least one of the frames in this PPDU.
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_LSB 27
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MSB 27
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MASK 0x0000000008000000
|
|
|
|
|
|
/* Description FW2RXDMA_PMAC0_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
When set, RXDMA has used the fw2rxdma buffer ring for PMAC0
|
|
as source for at least one of the frames in this PPDU.
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_LSB 28
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MSB 28
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MASK 0x0000000010000000
|
|
|
|
|
|
/* Description SW2RXDMA1_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
When set, RXDMA has used the sw2rxdma1 buffer ring as source
|
|
for at least one of the frames in this PPDU.
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_LSB 29
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MSB 29
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MASK 0x0000000020000000
|
|
|
|
|
|
/* Description SW2RXDMA_EXCEPTION_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
When set, RXDMA has used the sw2rxdma_exception buffer ring
|
|
as source for at least one of the frames in this PPDU.
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_LSB 30
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MSB 30
|
|
#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MASK 0x0000000040000000
|
|
|
|
|
|
/* Description FW2RXDMA_PMAC1_BUF_SOURCE_USED
|
|
|
|
Field filled in by RXDMA
|
|
|
|
When set, RXDMA has used the fw2rxdma buffer ring for PMAC1
|
|
as source for at least one of the frames in this PPDU.
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_LSB 31
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MASK 0x0000000080000000
|
|
|
|
|
|
/* Description 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_MPDU_CNT_FCS_OK_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MSB 42
|
|
#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MASK 0x000007ff00000000
|
|
|
|
|
|
/* Description FRAME_CONTROL_INFO_VALID
|
|
|
|
When set, the frame_control_info field contains valid information
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_LSB 43
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MSB 43
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MASK 0x0000080000000000
|
|
|
|
|
|
/* Description QOS_CONTROL_INFO_VALID
|
|
|
|
When set, the QoS_control_info field contains valid information
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_LSB 44
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MSB 44
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MASK 0x0000100000000000
|
|
|
|
|
|
/* Description HT_CONTROL_INFO_VALID
|
|
|
|
When set, the HT_control_field contains valid information
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_LSB 45
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MSB 45
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MASK 0x0000200000000000
|
|
|
|
|
|
/* Description DATA_SEQUENCE_CONTROL_INFO_VALID
|
|
|
|
When set, the First_data_seq_ctrl field contains valid information
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB 46
|
|
#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MSB 46
|
|
#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK 0x0000400000000000
|
|
|
|
|
|
/* Description HT_CONTROL_INFO_NULL_VALID
|
|
|
|
When set, the HT_control_NULL_field contains valid information
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_LSB 47
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MASK 0x0000800000000000
|
|
|
|
|
|
/* Description RXDMA2FW_PMAC1_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_RXDMA2FW_PMAC1_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MSB 48
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MASK 0x0001000000000000
|
|
|
|
|
|
/* Description 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_RXDMA2REO_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_LSB 49
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MSB 49
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MASK 0x0002000000000000
|
|
|
|
|
|
/* Description RXDMA2FW_PMAC0_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_RXDMA2FW_PMAC0_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_LSB 50
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MSB 50
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MASK 0x0004000000000000
|
|
|
|
|
|
/* Description 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_RXDMA2SW_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_LSB 51
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MSB 51
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MASK 0x0008000000000000
|
|
|
|
|
|
/* Description 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_RXDMA_RELEASE_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_LSB 52
|
|
#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MSB 52
|
|
#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MASK 0x0010000000000000
|
|
|
|
|
|
/* Description 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
|
|
<enum 5 dot11ba>802.11ba (WUR) PPDU type
|
|
<enum 6 dot11be>802.11be PPDU type
|
|
<enum 7 dot11az>802.11az (ranging) PPDU type
|
|
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
|
|
& aborted)
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_LSB 53
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MSB 56
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MASK 0x01e0000000000000
|
|
|
|
|
|
/* Description RXDMA2REO_REMOTE0_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_RXDMA2REO_REMOTE0_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_LSB 57
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MSB 57
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MASK 0x0200000000000000
|
|
|
|
|
|
/* Description RXDMA2REO_REMOTE1_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_RXDMA2REO_REMOTE1_RING_USED_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_LSB 58
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MSB 58
|
|
#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MASK 0x0400000000000000
|
|
|
|
|
|
/* Description RESERVED_3B
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_3B_OFFSET 0x0000000000000008
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_3B_LSB 59
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_3B_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_3B_MASK 0xf800000000000000
|
|
|
|
|
|
/* Description 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_AST_INDEX_OFFSET 0x0000000000000010
|
|
#define RX_PPDU_END_USER_STATS_AST_INDEX_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_AST_INDEX_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_AST_INDEX_MASK 0x000000000000ffff
|
|
|
|
|
|
/* Description 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_FRAME_CONTROL_FIELD_OFFSET 0x0000000000000010
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description 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_FIRST_DATA_SEQ_CTRL_OFFSET 0x0000000000000010
|
|
#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MASK 0x0000ffff00000000
|
|
|
|
|
|
/* Description 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_QOS_CONTROL_FIELD_OFFSET 0x0000000000000010
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MASK 0xffff000000000000
|
|
|
|
|
|
/* Description 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_HT_CONTROL_FIELD_OFFSET 0x0000000000000018
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MASK 0x00000000ffffffff
|
|
|
|
|
|
/* Description 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_FCS_OK_BITMAP_31_0_OFFSET 0x0000000000000018
|
|
#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MASK 0xffffffff00000000
|
|
|
|
|
|
/* Description 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_FCS_OK_BITMAP_63_32_OFFSET 0x0000000000000020
|
|
#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MASK 0x00000000ffffffff
|
|
|
|
|
|
/* Description 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_UDP_MSDU_COUNT_OFFSET 0x0000000000000020
|
|
#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MASK 0x0000ffff00000000
|
|
|
|
|
|
/* Description 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_TCP_MSDU_COUNT_OFFSET 0x0000000000000020
|
|
#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MASK 0xffff000000000000
|
|
|
|
|
|
/* Description 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_OTHER_MSDU_COUNT_OFFSET 0x0000000000000028
|
|
#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MASK 0x000000000000ffff
|
|
|
|
|
|
/* Description 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_TCP_ACK_MSDU_COUNT_OFFSET 0x0000000000000028
|
|
#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description SW_RESPONSE_REFERENCE_PTR
|
|
|
|
Pointer that SW uses to refer back to an expected response
|
|
reception. Used for Rate adaptation purposes.
|
|
When a reception occurs 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_ext.
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_OFFSET 0x0000000000000028
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MASK 0xffffffff00000000
|
|
|
|
|
|
/* Description 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_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET 0x0000000000000030
|
|
#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MASK 0x000000000000ffff
|
|
|
|
|
|
/* Description 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_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET 0x0000000000000030
|
|
#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID0_OFFSET 0x0000000000000030
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MSB 39
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MASK 0x000000ff00000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID1_OFFSET 0x0000000000000030
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_LSB 40
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MASK 0x0000ff0000000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID2_OFFSET 0x0000000000000030
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MSB 55
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MASK 0x00ff000000000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID3_OFFSET 0x0000000000000030
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_LSB 56
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MASK 0xff00000000000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID4_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MSB 7
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MASK 0x00000000000000ff
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID5_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MASK 0x000000000000ff00
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID6_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MSB 23
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MASK 0x0000000000ff0000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID7_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MASK 0x00000000ff000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID8_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MSB 39
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MASK 0x000000ff00000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID9_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_LSB 40
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MASK 0x0000ff0000000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID10_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MSB 55
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MASK 0x00ff000000000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID11_OFFSET 0x0000000000000038
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_LSB 56
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MASK 0xff00000000000000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID12_OFFSET 0x0000000000000040
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MSB 7
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MASK 0x00000000000000ff
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID13_OFFSET 0x0000000000000040
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_LSB 8
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MASK 0x000000000000ff00
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID14_OFFSET 0x0000000000000040
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MSB 23
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MASK 0x0000000000ff0000
|
|
|
|
|
|
/* Description 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_QOSCTRL_15_8_TID15_OFFSET 0x0000000000000040
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_LSB 24
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MASK 0x00000000ff000000
|
|
|
|
|
|
/* Description 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 +
|
|
(Ampdu_delim_ok_count x 4) + (Ampdu_delim_err_count x 4)
|
|
|
|
.....is the total number of bytes that were received for
|
|
this user from the PHY.
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_OFFSET 0x0000000000000040
|
|
#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MSB 56
|
|
#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MASK 0x01ffffff00000000
|
|
|
|
|
|
/* Description 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_AMPDU_DELIM_OK_COUNT_6_0_OFFSET 0x0000000000000040
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_LSB 57
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MASK 0xfe00000000000000
|
|
|
|
|
|
/* Description 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_AMPDU_DELIM_ERR_COUNT_OFFSET 0x0000000000000048
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MSB 24
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MASK 0x0000000001ffffff
|
|
|
|
|
|
/* Description 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_AMPDU_DELIM_OK_COUNT_13_7_OFFSET 0x0000000000000048
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_LSB 25
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MASK 0x00000000fe000000
|
|
|
|
|
|
/* Description 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_MPDU_ERR_BYTE_COUNT_OFFSET 0x0000000000000048
|
|
#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MSB 56
|
|
#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MASK 0x01ffffff00000000
|
|
|
|
|
|
/* Description 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_AMPDU_DELIM_OK_COUNT_20_14_OFFSET 0x0000000000000048
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_LSB 57
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MASK 0xfe00000000000000
|
|
|
|
|
|
/* Description 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_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET 0x0000000000000050
|
|
#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MASK 0x000000000000ffff
|
|
|
|
|
|
/* Description RETRIED_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 have the retry bit set.
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_OFFSET 0x0000000000000050
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description HT_CONTROL_NULL_FIELD
|
|
|
|
Field only valid when HT_control_info_NULL_valid is set.
|
|
|
|
|
|
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_HT_CONTROL_NULL_FIELD_OFFSET 0x0000000000000050
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MASK 0xffffffff00000000
|
|
|
|
|
|
/* Description SW_RESPONSE_REFERENCE_PTR_EXT
|
|
|
|
Extended Pointer info that SW uses to refer back to an expected
|
|
response transmission. Used for Rate adaptation purposes.
|
|
|
|
When a reception occurs 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_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET 0x0000000000000058
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MASK 0x00000000ffffffff
|
|
|
|
|
|
/* Description CORRUPTED_DUE_TO_FIFO_DELAY
|
|
|
|
Set if Rx PCU avoided a hang due to SFM delays by writing
|
|
a corrupted 'RX_PPDU_END_USER_STATS*' and/or 'RX_PPDU_END.'
|
|
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET 0x0000000000000058
|
|
#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MSB 32
|
|
#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MASK 0x0000000100000000
|
|
|
|
|
|
/* Description FRAME_CONTROL_INFO_NULL_VALID
|
|
|
|
When set, Frame_control_field_null contains valid information
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_OFFSET 0x0000000000000058
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_LSB 33
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MSB 33
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MASK 0x0000000200000000
|
|
|
|
|
|
/* Description FRAME_CONTROL_FIELD_NULL
|
|
|
|
Field only valid when Frame_control_info_null_valid is set.
|
|
|
|
|
|
Last successfully received Frame_control field of Data Null/QoS
|
|
Null for this user, mainly used to track the PM state of
|
|
the transmitted device
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_OFFSET 0x0000000000000058
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_LSB 34
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MSB 49
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MASK 0x0003fffc00000000
|
|
|
|
|
|
/* Description RETRIED_MPDU_COUNT
|
|
|
|
Field filled in by RXPCU
|
|
|
|
The number of MPDUs without FCS error, that have the retry
|
|
bit set.
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_OFFSET 0x0000000000000058
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_LSB 50
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MSB 60
|
|
#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MASK 0x1ffc000000000000
|
|
|
|
|
|
/* Description RESERVED_23A
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_23A_OFFSET 0x0000000000000058
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_23A_LSB 61
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_23A_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_23A_MASK 0xe000000000000000
|
|
|
|
|
|
/* Description RXPCU_MPDU_FILTER_IN_CATEGORY
|
|
|
|
Field indicates what the reason was that the last successfully
|
|
received MPDU was allowed to come into the receive path
|
|
by RXPCU.
|
|
<enum 0 rxpcu_filter_pass> The last MPDU passed the normal
|
|
frame filter programming of rxpcu
|
|
<enum 1 rxpcu_monitor_client> The last MPDU did NOT pass
|
|
the regular frame filter and would have been dropped, were
|
|
it not for the frame fitting into the 'monitor_client'
|
|
category.
|
|
<enum 2 rxpcu_monitor_other> The last MPDU did NOT pass
|
|
the regular frame filter and also did not pass the rxpcu_monitor_client
|
|
filter. It would have been dropped accept that it did pass
|
|
the 'monitor_other' category.
|
|
<enum 3 rxpcu_filter_pass_monitor_ovrd> The last MPDU passed
|
|
the normal frame filter programming of RXPCU but additionally
|
|
fit into the 'monitor_override_client' category.
|
|
|
|
<legal 0-3>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB 1
|
|
#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x0000000000000003
|
|
|
|
|
|
/* Description SW_FRAME_GROUP_ID
|
|
|
|
SW processes frames based on certain classifications. This
|
|
field indicates to what sw classification the last successfully
|
|
received MPDU is mapped.
|
|
The classification is given in priority order
|
|
|
|
<enum 0 sw_frame_group_NDP_frame>
|
|
|
|
<enum 1 sw_frame_group_Multicast_data>
|
|
<enum 2 sw_frame_group_Unicast_data>
|
|
<enum 3 sw_frame_group_Null_data > This includes mpdus of
|
|
type Data Null.
|
|
<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
|
|
Null frames except in UL MU or TB PPDUs.
|
|
<enum 39 sw_frame_group_QoS_Null_data_TB> This includes
|
|
QoS Null frames in UL MU or TB PPDUs.
|
|
|
|
<enum 4 sw_frame_group_mgmt_0000 >
|
|
<enum 5 sw_frame_group_mgmt_0001 >
|
|
<enum 6 sw_frame_group_mgmt_0010 >
|
|
<enum 7 sw_frame_group_mgmt_0011 >
|
|
<enum 8 sw_frame_group_mgmt_0100 >
|
|
<enum 9 sw_frame_group_mgmt_0101 >
|
|
<enum 10 sw_frame_group_mgmt_0110 >
|
|
<enum 11 sw_frame_group_mgmt_0111 >
|
|
<enum 12 sw_frame_group_mgmt_1000 >
|
|
<enum 13 sw_frame_group_mgmt_1001 >
|
|
<enum 14 sw_frame_group_mgmt_1010 >
|
|
<enum 15 sw_frame_group_mgmt_1011 >
|
|
<enum 16 sw_frame_group_mgmt_1100 >
|
|
<enum 17 sw_frame_group_mgmt_1101 >
|
|
<enum 18 sw_frame_group_mgmt_1110 >
|
|
<enum 19 sw_frame_group_mgmt_1111 >
|
|
|
|
<enum 20 sw_frame_group_ctrl_0000 >
|
|
<enum 21 sw_frame_group_ctrl_0001 >
|
|
<enum 22 sw_frame_group_ctrl_0010 >
|
|
<enum 23 sw_frame_group_ctrl_0011 >
|
|
<enum 24 sw_frame_group_ctrl_0100 >
|
|
<enum 25 sw_frame_group_ctrl_0101 >
|
|
<enum 26 sw_frame_group_ctrl_0110 >
|
|
<enum 27 sw_frame_group_ctrl_0111 >
|
|
<enum 28 sw_frame_group_ctrl_1000 >
|
|
<enum 29 sw_frame_group_ctrl_1001 >
|
|
<enum 30 sw_frame_group_ctrl_1010 >
|
|
<enum 31 sw_frame_group_ctrl_1011 >
|
|
<enum 32 sw_frame_group_ctrl_1100 >
|
|
<enum 33 sw_frame_group_ctrl_1101 >
|
|
<enum 34 sw_frame_group_ctrl_1110 >
|
|
<enum 35 sw_frame_group_ctrl_1111 >
|
|
|
|
<enum 36 sw_frame_group_unsupported> This covers type 3
|
|
and protocol version != 0
|
|
|
|
<enum 37 sw_frame_group_phy_error> PHY reported an error
|
|
|
|
|
|
<legal 0-39>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_LSB 2
|
|
#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MSB 8
|
|
#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MASK 0x00000000000001fc
|
|
|
|
|
|
/* Description RESERVED_24A
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_24A_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_24A_LSB 9
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_24A_MSB 12
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_24A_MASK 0x0000000000001e00
|
|
|
|
|
|
/* Description FRAME_CONTROL_INFO_MGMT_CTRL_VALID
|
|
|
|
When set, Frame_control_field_mgmt_ctrl contains valid information.
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_LSB 13
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MSB 13
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MASK 0x0000000000002000
|
|
|
|
|
|
/* Description MAC_ADDR_AD2_VALID
|
|
|
|
When set, the fields mac_addr_ad2_... contain valid information.
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_LSB 14
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MSB 14
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MASK 0x0000000000004000
|
|
|
|
|
|
/* Description MCAST_BCAST
|
|
|
|
Multicast / broadcast indicator
|
|
|
|
Only set when the MAC address 1 bit 0 is set indicating
|
|
mcast/bcast and the BSSID matches one of the BSSID registers,
|
|
for the last successfully received MPDU
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_LSB 15
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MASK 0x0000000000008000
|
|
|
|
|
|
/* Description FRAME_CONTROL_FIELD_MGMT_CTRL
|
|
|
|
Field only valid when Frame_control_info_mgmt_ctrl_valid
|
|
is set
|
|
|
|
Last successfully received 'Frame control' field of control
|
|
or management frames for this user, mainly used in Rx monitor
|
|
mode
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description USER_PPDU_LEN
|
|
|
|
The sum of the mpdu_length fields of all the 'RX_MPDU_START'
|
|
TLVs generated for this user for this PPDU
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MSB 55
|
|
#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MASK 0x00ffffff00000000
|
|
|
|
|
|
/* Description RESERVED_25A
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_25A_OFFSET 0x0000000000000060
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_25A_LSB 56
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_25A_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_RESERVED_25A_MASK 0xff00000000000000
|
|
|
|
|
|
/* Description MAC_ADDR_AD2_31_0
|
|
|
|
Field only valid when mac_addr_ad2_valid is set
|
|
|
|
The least significant 4 bytes of the last successfully received
|
|
frame's MAC Address AD2
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_OFFSET 0x0000000000000068
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MASK 0x00000000ffffffff
|
|
|
|
|
|
/* Description MAC_ADDR_AD2_47_32
|
|
|
|
Field only valid when mac_addr_ad2_valid is set
|
|
|
|
The 2 most significant bytes of the last successfully received
|
|
frame's MAC Address AD2
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_OFFSET 0x0000000000000068
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MASK 0x0000ffff00000000
|
|
|
|
|
|
/* Description AMSDU_MSDU_COUNT
|
|
|
|
Field filled in by RX OLE
|
|
Set to 0 by RXPCU
|
|
|
|
The number of MSDUs that are part of A-MSDUs that are part
|
|
of MPDUs without FCS error
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_OFFSET 0x0000000000000068
|
|
#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MASK 0xffff000000000000
|
|
|
|
|
|
/* Description NON_AMSDU_MSDU_COUNT
|
|
|
|
Field filled in by RX OLE
|
|
Set to 0 by RXPCU
|
|
|
|
The number of MSDUs that are not part of A-MSDUs that are
|
|
part of MPDUs without FCS error
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_OFFSET 0x0000000000000070
|
|
#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_LSB 0
|
|
#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MSB 15
|
|
#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MASK 0x000000000000ffff
|
|
|
|
|
|
/* Description UCAST_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 are directed to a unicast destination address
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_OFFSET 0x0000000000000070
|
|
#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_LSB 16
|
|
#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MSB 31
|
|
#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MASK 0x00000000ffff0000
|
|
|
|
|
|
/* Description BCAST_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,
|
|
whose destination addresses are broadcast (0xFFFF_FFFF_FFFF)
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_OFFSET 0x0000000000000070
|
|
#define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_LSB 32
|
|
#define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_MSB 47
|
|
#define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_MASK 0x0000ffff00000000
|
|
|
|
|
|
/* Description MCAST_BCAST_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,
|
|
whose destination addresses are either multicast or broadcast
|
|
|
|
<legal all>
|
|
*/
|
|
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_OFFSET 0x0000000000000070
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_LSB 48
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MSB 63
|
|
#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MASK 0xffff000000000000
|
|
|
|
|
|
|
|
#endif // RX_PPDU_END_USER_STATS
|