1 /* 2 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. 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 _RECEIVED_TRIGGER_INFO_H_ 18 #define _RECEIVED_TRIGGER_INFO_H_ 19 #if !defined(__ASSEMBLER__) 20 #endif 21 22 #include "received_trigger_info_details.h" 23 #define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO 6 24 25 #define NUM_OF_QWORDS_RECEIVED_TRIGGER_INFO 3 26 27 28 struct received_trigger_info { 29 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 30 struct received_trigger_info_details received_trigger_details; 31 uint32_t tlv64_padding : 32; // [31:0] 32 #else 33 struct received_trigger_info_details received_trigger_details; 34 uint32_t tlv64_padding : 32; // [31:0] 35 #endif 36 }; 37 38 39 /* Description RECEIVED_TRIGGER_DETAILS 40 41 Info related to the type of trigger (that potentially requires 42 SIFS response) that was received 43 */ 44 45 46 /* Description TRIGGER_TYPE 47 48 This field indicates for what type of trigger has been received 49 50 51 <enum 0 SCH_Qboost_trigger> 52 <enum 1 SCH_PSPOLL_trigger> 53 <enum 2 SCH_UAPSD_trigger> 54 <enum 3 SCH_11ax_trigger> 55 Field "AX_trigger_type" indicates the ID of the received 56 trigger 57 <enum 7 SCH_EHT_trigger> 58 Field "AX_trigger_type" indicates the ID of the received 59 trigger 60 <enum 4 SCH_11ax_wildcard_trigger> 61 Field "AX_trigger_type" indicates the ID of the received 62 trigger 63 <enum 5 SCH_11ax_unassoc_wildcard_trigger> 64 Field "AX_trigger_type" indicates the ID of the received 65 trigger 66 <enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type" 67 indicates the subtype of the received trigger 68 69 <legal 0-7> 70 */ 71 72 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_OFFSET 0x0000000000000000 73 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_LSB 0 74 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MSB 3 75 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MASK 0x000000000000000f 76 77 78 /* Description AX_TRIGGER_SOURCE 79 80 Field Only valid when Trigger_type is an 11ax related trigger 81 82 83 <enum 0 11ax_trigger_frame> 84 <enum 1 he_control_based_trigger> 85 86 <legal all> 87 */ 88 89 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_OFFSET 0x0000000000000000 90 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_LSB 4 91 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MSB 4 92 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MASK 0x0000000000000010 93 94 95 /* Description AX_TRIGGER_TYPE 96 97 Field Only valid when Trigger_type is an 11ax related trigger 98 99 100 The 11AX trigger type/ trigger number: 101 It identifies which trigger was received. 102 <enum 0 ax_trigger_basic> 103 <enum 1 ax_trigger_brpoll> 104 <enum 2 ax_trigger_mu_bar> 105 <enum 3 ax_trigger_mu_rts> 106 <enum 4 ax_trigger_buffer_size> 107 <enum 5 ax_trigger_gcr_mu_bar> 108 <enum 6 ax_trigger_BQRP> 109 <enum 7 ax_trigger_NDP_fb_report_poll> 110 <enum 8 ax_tb_ranging_trigger> Indicates the reception of 111 Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype 112 113 <enum 9 ax_trigger_reserved_9> 114 <enum 10 ax_trigger_reserved_10> 115 <enum 11 ax_trigger_reserved_11> 116 <enum 12 ax_trigger_reserved_12> 117 <enum 13 ax_trigger_reserved_13> 118 <enum 14 ax_trigger_reserved_14> 119 <enum 15 ax_trigger_reserved_15> 120 121 <legal all> 122 */ 123 124 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_OFFSET 0x0000000000000000 125 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_LSB 5 126 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MSB 8 127 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MASK 0x00000000000001e0 128 129 130 /* Description TRIGGER_SOURCE_STA_FULL_AID 131 132 The sta_full_aid of the sta/ap that generated the trigger. 133 134 Comes from the address_search_entry 135 136 <legal all> 137 */ 138 139 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET 0x0000000000000000 140 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB 9 141 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB 21 142 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK 0x00000000003ffe00 143 144 145 /* Description FRAME_CONTROL_VALID 146 147 When set, the 'frame_control' field contains valid info 148 <legal all> 149 */ 150 151 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_OFFSET 0x0000000000000000 152 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_LSB 22 153 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MSB 22 154 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MASK 0x0000000000400000 155 156 157 /* Description QOS_CONTROL_VALID 158 159 When set, the 'QoS_control' field contains valid info 160 <legal all> 161 */ 162 163 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_OFFSET 0x0000000000000000 164 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_LSB 23 165 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MSB 23 166 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MASK 0x0000000000800000 167 168 169 /* Description HE_CONTROL_INFO_VALID 170 171 When set, the 'HE control' field contains valid info 172 <legal all> 173 */ 174 175 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_OFFSET 0x0000000000000000 176 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_LSB 24 177 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MSB 24 178 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MASK 0x0000000001000000 179 180 181 /* Description RANGING_TRIGGER_SUBTYPE 182 183 Field only valid if AX_Trigger_type = ax_tb_ranging_trigger 184 185 186 Indicates the Trigger subtype for the current ranging TF 187 188 189 <enum 0 TF_Poll> 190 <enum 1 TF_Sound> 191 <enum 2 TF_Secure_Sound> 192 <enum 3 TF_Report> 193 194 <legal 0-3> 195 */ 196 197 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000000 198 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB 25 199 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB 28 200 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK 0x000000001e000000 201 202 203 /* Description RESERVED_0B 204 205 <legal 0> 206 */ 207 208 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000 209 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_LSB 29 210 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MSB 31 211 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MASK 0x00000000e0000000 212 213 214 /* Description PHY_PPDU_ID 215 216 A ppdu counter value that PHY increments for every PPDU 217 received. The counter value wraps around 218 <legal all> 219 */ 220 221 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000 222 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_LSB 32 223 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MSB 47 224 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff00000000 225 226 227 /* Description LSIG_RESPONSE_LENGTH 228 229 Field only valid in case of OFDMA trigger 230 231 Indicates the value of the L-SIG Length field of the HE 232 trigger-based PPDU that is the response to the Trigger frame 233 234 235 <legal all> 236 */ 237 238 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET 0x0000000000000000 239 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_LSB 48 240 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MSB 59 241 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MASK 0x0fff000000000000 242 243 244 /* Description RESERVED_1A 245 246 <legal 0> 247 */ 248 249 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000 250 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_LSB 60 251 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MSB 63 252 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MASK 0xf000000000000000 253 254 255 /* Description FRAME_CONTROL 256 257 frame control field of the received frame 258 <legal all> 259 */ 260 261 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_OFFSET 0x0000000000000008 262 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_LSB 0 263 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MSB 15 264 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MASK 0x000000000000ffff 265 266 267 /* Description QOS_CONTROL 268 269 frame control field of the received frame (if present) 270 <legal all> 271 */ 272 273 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_OFFSET 0x0000000000000008 274 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_LSB 16 275 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MSB 31 276 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MASK 0x00000000ffff0000 277 278 279 /* Description SW_PEER_ID 280 281 A unique identifier for this STA. Extracted from the Address_Search_Entry 282 283 284 Used by the SCH to find linkage between this trigger and 285 potentially pre-programmed responses. 286 <legal all> 287 */ 288 289 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_OFFSET 0x0000000000000008 290 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_LSB 32 291 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MSB 47 292 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MASK 0x0000ffff00000000 293 294 295 /* Description RESERVED_3A 296 297 <legal 0> 298 */ 299 300 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_OFFSET 0x0000000000000008 301 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_LSB 48 302 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MSB 63 303 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MASK 0xffff000000000000 304 305 306 /* Description HE_CONTROL 307 308 Field only valid when HE_control_info_valid is set 309 310 This is the 'RAW HE_CONTROL field' that was present in the 311 frame. 312 <legal all> 313 */ 314 315 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_OFFSET 0x0000000000000010 316 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_LSB 0 317 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MSB 31 318 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MASK 0x00000000ffffffff 319 320 321 /* Description TLV64_PADDING 322 323 Automatic DWORD padding inserted while converting TLV32 324 to TLV64 for 64 bit ARCH 325 <legal 0> 326 */ 327 328 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_OFFSET 0x0000000000000010 329 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_LSB 32 330 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MSB 63 331 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MASK 0xffffffff00000000 332 333 334 335 #endif // RECEIVED_TRIGGER_INFO 336