12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150 |
- /*
- * Copyright (c) 2020, 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.
- */
- #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
-
- DO NOT USE
-
-
-
- Field not populated by MAC HW
-
- <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
-
- <enum 5 dot11ba>802.11ba (WUR) 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 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>
- 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 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>
- */
- /* 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
-
- DO NOT USE
-
-
-
- Field not populated by MAC HW
-
- <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
-
- <enum 5 dot11ba>802.11ba (WUR) 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 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_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 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_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_
|