1 /* 2 * Copyright (c) 2020, The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef _RX_PPDU_END_USER_STATS_EXT_H_ 18 #define _RX_PPDU_END_USER_STATS_EXT_H_ 19 #if !defined(__ASSEMBLER__) 20 #endif 21 22 #include "rx_rxpcu_classification_overview.h" 23 24 // ################ START SUMMARY ################# 25 // 26 // Dword Fields 27 // 0 struct rx_rxpcu_classification_overview rxpcu_classification_details; 28 // 1 fcs_ok_bitmap_95_64[31:0] 29 // 2 fcs_ok_bitmap_127_96[31:0] 30 // 3 fcs_ok_bitmap_159_128[31:0] 31 // 4 fcs_ok_bitmap_191_160[31:0] 32 // 5 fcs_ok_bitmap_223_192[31:0] 33 // 6 fcs_ok_bitmap_255_224[31:0] 34 // 35 // ################ END SUMMARY ################# 36 37 #define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS_EXT 7 38 39 struct rx_ppdu_end_user_stats_ext { 40 struct rx_rxpcu_classification_overview rxpcu_classification_details; 41 uint32_t fcs_ok_bitmap_95_64 : 32; //[31:0] 42 uint32_t fcs_ok_bitmap_127_96 : 32; //[31:0] 43 uint32_t fcs_ok_bitmap_159_128 : 32; //[31:0] 44 uint32_t fcs_ok_bitmap_191_160 : 32; //[31:0] 45 uint32_t fcs_ok_bitmap_223_192 : 32; //[31:0] 46 uint32_t fcs_ok_bitmap_255_224 : 32; //[31:0] 47 }; 48 49 /* 50 51 struct rx_rxpcu_classification_overview rxpcu_classification_details 52 53 Details related to what RXPCU classification types of 54 MPDUs have been received 55 56 fcs_ok_bitmap_95_64 57 58 Bitmap indicates in order of received MPDUs, which MPDUs 59 had an passing FCS or had an error. 60 61 1: FCS OK 62 63 0: FCS error 64 65 <legal all> 66 67 fcs_ok_bitmap_127_96 68 69 Bitmap indicates in order of received MPDUs, which MPDUs 70 had an passing FCS or had an error. 71 72 1: FCS OK 73 74 0: FCS error 75 76 <legal all> 77 78 fcs_ok_bitmap_159_128 79 80 Bitmap indicates in order of received MPDUs, which MPDUs 81 had an passing FCS or had an error. 82 83 1: FCS OK 84 85 0: FCS error 86 87 <legal all> 88 89 fcs_ok_bitmap_191_160 90 91 Bitmap indicates in order of received MPDUs, which MPDUs 92 had an passing FCS or had an error. 93 94 1: FCS OK 95 96 0: FCS error 97 98 <legal all> 99 100 fcs_ok_bitmap_223_192 101 102 Bitmap indicates in order of received MPDUs, which MPDUs 103 had an passing FCS or had an error. 104 105 1: FCS OK 106 107 0: FCS error 108 109 <legal all> 110 111 fcs_ok_bitmap_255_224 112 113 Bitmap indicates in order of received MPDUs, which MPDUs 114 had an passing FCS or had an error. 115 116 1: FCS OK 117 118 0: FCS error 119 120 <legal all> 121 */ 122 123 124 /* EXTERNAL REFERENCE : struct rx_rxpcu_classification_overview rxpcu_classification_details */ 125 126 127 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS 128 129 When set, at least one Filter Pass MPDU has been 130 received. FCS might or might not have been passing. 131 132 133 134 For MU UL, in TLVs RX_PPDU_END and 135 RX_PPDU_END_STATUS_DONE, this field is the OR of all the 136 users. 137 138 <legal all> 139 */ 140 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x00000000 141 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0 142 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x00000001 143 144 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK 145 146 When set, at least one Filter Pass MPDU has been 147 received that has a correct FCS. 148 149 150 151 For MU UL, in TLVs RX_PPDU_END and 152 RX_PPDU_END_STATUS_DONE, this field is the OR of all the 153 users. 154 155 156 157 <legal all> 158 */ 159 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x00000000 160 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1 161 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x00000002 162 163 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS 164 165 When set, at least one Monitor Direct MPDU has been 166 received. FCS might or might not have been passing 167 168 169 170 For MU UL, in TLVs RX_PPDU_END and 171 RX_PPDU_END_STATUS_DONE, this field is the OR of all the 172 users. 173 174 <legal all> 175 */ 176 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x00000000 177 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2 178 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x00000004 179 180 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK 181 182 When set, at least one Monitor Direct MPDU has been 183 received that has a correct FCS. 184 185 186 187 For MU UL, in TLVs RX_PPDU_END and 188 RX_PPDU_END_STATUS_DONE, this field is the OR of all the 189 users. 190 191 192 193 <legal all> 194 */ 195 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x00000000 196 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3 197 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x00000008 198 199 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS 200 201 When set, at least one Monitor Direct MPDU has been 202 received. FCS might or might not have been passing. 203 204 205 206 For MU UL, in TLVs RX_PPDU_END and 207 RX_PPDU_END_STATUS_DONE, this field is the OR of all the 208 users. 209 210 <legal all> 211 */ 212 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x00000000 213 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4 214 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x00000010 215 216 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK 217 218 When set, at least one Monitor Direct MPDU has been 219 received that has a correct FCS. 220 221 222 223 For MU UL, in TLVs RX_PPDU_END and 224 RX_PPDU_END_STATUS_DONE, this field is the OR of all the 225 users. 226 227 <legal all> 228 */ 229 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x00000000 230 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5 231 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x00000020 232 233 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED 234 235 When set, PPDU reception was aborted by the PHY 236 237 <legal all> 238 */ 239 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x00000000 240 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6 241 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x00000040 242 243 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0 244 245 <legal 0> 246 */ 247 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x00000000 248 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 7 249 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x0000ff80 250 251 /* Description RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID 252 253 A ppdu counter value that PHY increments for every PPDU 254 received. The counter value wraps around 255 256 <legal all> 257 */ 258 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000 259 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16 260 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0xffff0000 261 262 /* Description RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64 263 264 Bitmap indicates in order of received MPDUs, which MPDUs 265 had an passing FCS or had an error. 266 267 1: FCS OK 268 269 0: FCS error 270 271 <legal all> 272 */ 273 #define RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64_OFFSET 0x00000004 274 #define RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64_LSB 0 275 #define RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64_MASK 0xffffffff 276 277 /* Description RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96 278 279 Bitmap indicates in order of received MPDUs, which MPDUs 280 had an passing FCS or had an error. 281 282 1: FCS OK 283 284 0: FCS error 285 286 <legal all> 287 */ 288 #define RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96_OFFSET 0x00000008 289 #define RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96_LSB 0 290 #define RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96_MASK 0xffffffff 291 292 /* Description RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128 293 294 Bitmap indicates in order of received MPDUs, which MPDUs 295 had an passing FCS or had an error. 296 297 1: FCS OK 298 299 0: FCS error 300 301 <legal all> 302 */ 303 #define RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128_OFFSET 0x0000000c 304 #define RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128_LSB 0 305 #define RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128_MASK 0xffffffff 306 307 /* Description RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160 308 309 Bitmap indicates in order of received MPDUs, which MPDUs 310 had an passing FCS or had an error. 311 312 1: FCS OK 313 314 0: FCS error 315 316 <legal all> 317 */ 318 #define RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160_OFFSET 0x00000010 319 #define RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160_LSB 0 320 #define RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160_MASK 0xffffffff 321 322 /* Description RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192 323 324 Bitmap indicates in order of received MPDUs, which MPDUs 325 had an passing FCS or had an error. 326 327 1: FCS OK 328 329 0: FCS error 330 331 <legal all> 332 */ 333 #define RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192_OFFSET 0x00000014 334 #define RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192_LSB 0 335 #define RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192_MASK 0xffffffff 336 337 /* Description RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224 338 339 Bitmap indicates in order of received MPDUs, which MPDUs 340 had an passing FCS or had an error. 341 342 1: FCS OK 343 344 0: FCS error 345 346 <legal all> 347 */ 348 #define RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224_OFFSET 0x00000018 349 #define RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224_LSB 0 350 #define RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224_MASK 0xffffffff 351 352 353 #endif // _RX_PPDU_END_USER_STATS_EXT_H_ 354