1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152 |
- /*
- * 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_
|