1*5113495bSYour Name 2*5113495bSYour Name /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for any 5*5113495bSYour Name * purpose with or without fee is hereby granted, provided that the above 6*5113495bSYour Name * copyright notice and this permission notice appear in all copies. 7*5113495bSYour Name * 8*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*5113495bSYour Name * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*5113495bSYour Name * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*5113495bSYour Name * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*5113495bSYour Name * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*5113495bSYour Name * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*5113495bSYour Name * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*5113495bSYour Name */ 16*5113495bSYour Name 17*5113495bSYour Name 18*5113495bSYour Name 19*5113495bSYour Name 20*5113495bSYour Name 21*5113495bSYour Name 22*5113495bSYour Name 23*5113495bSYour Name 24*5113495bSYour Name 25*5113495bSYour Name 26*5113495bSYour Name #ifndef _RECEIVED_TRIGGER_INFO_DETAILS_H_ 27*5113495bSYour Name #define _RECEIVED_TRIGGER_INFO_DETAILS_H_ 28*5113495bSYour Name #if !defined(__ASSEMBLER__) 29*5113495bSYour Name #endif 30*5113495bSYour Name 31*5113495bSYour Name #define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO_DETAILS 5 32*5113495bSYour Name 33*5113495bSYour Name 34*5113495bSYour Name struct received_trigger_info_details { 35*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 36*5113495bSYour Name uint32_t trigger_type : 4, // [3:0] 37*5113495bSYour Name ax_trigger_source : 1, // [4:4] 38*5113495bSYour Name ax_trigger_type : 4, // [8:5] 39*5113495bSYour Name trigger_source_sta_full_aid : 13, // [21:9] 40*5113495bSYour Name frame_control_valid : 1, // [22:22] 41*5113495bSYour Name qos_control_valid : 1, // [23:23] 42*5113495bSYour Name he_control_info_valid : 1, // [24:24] 43*5113495bSYour Name ranging_trigger_subtype : 4, // [28:25] 44*5113495bSYour Name reserved_0b : 3; // [31:29] 45*5113495bSYour Name uint32_t phy_ppdu_id : 16, // [15:0] 46*5113495bSYour Name lsig_response_length : 12, // [27:16] 47*5113495bSYour Name reserved_1a : 4; // [31:28] 48*5113495bSYour Name uint32_t frame_control : 16, // [15:0] 49*5113495bSYour Name qos_control : 16; // [31:16] 50*5113495bSYour Name uint32_t sw_peer_id : 16, // [15:0] 51*5113495bSYour Name reserved_3a : 16; // [31:16] 52*5113495bSYour Name uint32_t he_control : 32; // [31:0] 53*5113495bSYour Name #else 54*5113495bSYour Name uint32_t reserved_0b : 3, // [31:29] 55*5113495bSYour Name ranging_trigger_subtype : 4, // [28:25] 56*5113495bSYour Name he_control_info_valid : 1, // [24:24] 57*5113495bSYour Name qos_control_valid : 1, // [23:23] 58*5113495bSYour Name frame_control_valid : 1, // [22:22] 59*5113495bSYour Name trigger_source_sta_full_aid : 13, // [21:9] 60*5113495bSYour Name ax_trigger_type : 4, // [8:5] 61*5113495bSYour Name ax_trigger_source : 1, // [4:4] 62*5113495bSYour Name trigger_type : 4; // [3:0] 63*5113495bSYour Name uint32_t reserved_1a : 4, // [31:28] 64*5113495bSYour Name lsig_response_length : 12, // [27:16] 65*5113495bSYour Name phy_ppdu_id : 16; // [15:0] 66*5113495bSYour Name uint32_t qos_control : 16, // [31:16] 67*5113495bSYour Name frame_control : 16; // [15:0] 68*5113495bSYour Name uint32_t reserved_3a : 16, // [31:16] 69*5113495bSYour Name sw_peer_id : 16; // [15:0] 70*5113495bSYour Name uint32_t he_control : 32; // [31:0] 71*5113495bSYour Name #endif 72*5113495bSYour Name }; 73*5113495bSYour Name 74*5113495bSYour Name 75*5113495bSYour Name /* Description TRIGGER_TYPE 76*5113495bSYour Name 77*5113495bSYour Name This field indicates for what type of trigger has been received 78*5113495bSYour Name 79*5113495bSYour Name 80*5113495bSYour Name <enum 0 SCH_Qboost_trigger> 81*5113495bSYour Name <enum 1 SCH_PSPOLL_trigger> 82*5113495bSYour Name <enum 2 SCH_UAPSD_trigger> 83*5113495bSYour Name <enum 3 SCH_11ax_trigger> 84*5113495bSYour Name Field "AX_trigger_type" indicates the ID of the received 85*5113495bSYour Name trigger 86*5113495bSYour Name <enum 7 SCH_EHT_trigger> 87*5113495bSYour Name Field "AX_trigger_type" indicates the ID of the received 88*5113495bSYour Name trigger 89*5113495bSYour Name <enum 4 SCH_11ax_wildcard_trigger> 90*5113495bSYour Name Field "AX_trigger_type" indicates the ID of the received 91*5113495bSYour Name trigger 92*5113495bSYour Name <enum 5 SCH_11ax_unassoc_wildcard_trigger> 93*5113495bSYour Name Field "AX_trigger_type" indicates the ID of the received 94*5113495bSYour Name trigger 95*5113495bSYour Name <enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type" 96*5113495bSYour Name indicates the subtype of the received trigger 97*5113495bSYour Name 98*5113495bSYour Name <legal 0-7> 99*5113495bSYour Name */ 100*5113495bSYour Name 101*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_OFFSET 0x00000000 102*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_LSB 0 103*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MSB 3 104*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MASK 0x0000000f 105*5113495bSYour Name 106*5113495bSYour Name 107*5113495bSYour Name /* Description AX_TRIGGER_SOURCE 108*5113495bSYour Name 109*5113495bSYour Name Field Only valid when Trigger_type is an 11ax related trigger 110*5113495bSYour Name 111*5113495bSYour Name 112*5113495bSYour Name <enum 0 11ax_trigger_frame> 113*5113495bSYour Name <enum 1 he_control_based_trigger> 114*5113495bSYour Name 115*5113495bSYour Name <legal all> 116*5113495bSYour Name */ 117*5113495bSYour Name 118*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_OFFSET 0x00000000 119*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_LSB 4 120*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MSB 4 121*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MASK 0x00000010 122*5113495bSYour Name 123*5113495bSYour Name 124*5113495bSYour Name /* Description AX_TRIGGER_TYPE 125*5113495bSYour Name 126*5113495bSYour Name Field Only valid when Trigger_type is an 11ax related trigger 127*5113495bSYour Name 128*5113495bSYour Name 129*5113495bSYour Name The 11AX trigger type/ trigger number: 130*5113495bSYour Name It identifies which trigger was received. 131*5113495bSYour Name <enum 0 ax_trigger_basic> 132*5113495bSYour Name <enum 1 ax_trigger_brpoll> 133*5113495bSYour Name <enum 2 ax_trigger_mu_bar> 134*5113495bSYour Name <enum 3 ax_trigger_mu_rts> 135*5113495bSYour Name <enum 4 ax_trigger_buffer_size> 136*5113495bSYour Name <enum 5 ax_trigger_gcr_mu_bar> 137*5113495bSYour Name <enum 6 ax_trigger_BQRP> 138*5113495bSYour Name <enum 7 ax_trigger_NDP_fb_report_poll> 139*5113495bSYour Name <enum 8 ax_tb_ranging_trigger> Indicates the reception of 140*5113495bSYour Name Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype 141*5113495bSYour Name 142*5113495bSYour Name <enum 9 ax_trigger_reserved_9> 143*5113495bSYour Name <enum 10 ax_trigger_reserved_10> 144*5113495bSYour Name <enum 11 ax_trigger_reserved_11> 145*5113495bSYour Name <enum 12 ax_trigger_reserved_12> 146*5113495bSYour Name <enum 13 ax_trigger_reserved_13> 147*5113495bSYour Name <enum 14 ax_trigger_reserved_14> 148*5113495bSYour Name <enum 15 ax_trigger_reserved_15> 149*5113495bSYour Name 150*5113495bSYour Name <legal all> 151*5113495bSYour Name */ 152*5113495bSYour Name 153*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_OFFSET 0x00000000 154*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_LSB 5 155*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MSB 8 156*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MASK 0x000001e0 157*5113495bSYour Name 158*5113495bSYour Name 159*5113495bSYour Name /* Description TRIGGER_SOURCE_STA_FULL_AID 160*5113495bSYour Name 161*5113495bSYour Name The sta_full_aid of the sta/ap that generated the trigger. 162*5113495bSYour Name 163*5113495bSYour Name Comes from the address_search_entry 164*5113495bSYour Name 165*5113495bSYour Name <legal all> 166*5113495bSYour Name */ 167*5113495bSYour Name 168*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET 0x00000000 169*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB 9 170*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB 21 171*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK 0x003ffe00 172*5113495bSYour Name 173*5113495bSYour Name 174*5113495bSYour Name /* Description FRAME_CONTROL_VALID 175*5113495bSYour Name 176*5113495bSYour Name When set, the 'frame_control' field contains valid info 177*5113495bSYour Name <legal all> 178*5113495bSYour Name */ 179*5113495bSYour Name 180*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_OFFSET 0x00000000 181*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_LSB 22 182*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MSB 22 183*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MASK 0x00400000 184*5113495bSYour Name 185*5113495bSYour Name 186*5113495bSYour Name /* Description QOS_CONTROL_VALID 187*5113495bSYour Name 188*5113495bSYour Name When set, the 'QoS_control' field contains valid info 189*5113495bSYour Name <legal all> 190*5113495bSYour Name */ 191*5113495bSYour Name 192*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_OFFSET 0x00000000 193*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_LSB 23 194*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MSB 23 195*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MASK 0x00800000 196*5113495bSYour Name 197*5113495bSYour Name 198*5113495bSYour Name /* Description HE_CONTROL_INFO_VALID 199*5113495bSYour Name 200*5113495bSYour Name When set, the 'HE control' field contains valid info 201*5113495bSYour Name <legal all> 202*5113495bSYour Name */ 203*5113495bSYour Name 204*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_OFFSET 0x00000000 205*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_LSB 24 206*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MSB 24 207*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MASK 0x01000000 208*5113495bSYour Name 209*5113495bSYour Name 210*5113495bSYour Name /* Description RANGING_TRIGGER_SUBTYPE 211*5113495bSYour Name 212*5113495bSYour Name Field only valid if AX_Trigger_type = ax_tb_ranging_trigger 213*5113495bSYour Name 214*5113495bSYour Name 215*5113495bSYour Name Indicates the Trigger subtype for the current ranging TF 216*5113495bSYour Name 217*5113495bSYour Name 218*5113495bSYour Name <enum 0 TF_Poll> 219*5113495bSYour Name <enum 1 TF_Sound> 220*5113495bSYour Name <enum 2 TF_Secure_Sound> 221*5113495bSYour Name <enum 3 TF_Report> 222*5113495bSYour Name 223*5113495bSYour Name <legal 0-3> 224*5113495bSYour Name */ 225*5113495bSYour Name 226*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET 0x00000000 227*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB 25 228*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB 28 229*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK 0x1e000000 230*5113495bSYour Name 231*5113495bSYour Name 232*5113495bSYour Name /* Description RESERVED_0B 233*5113495bSYour Name 234*5113495bSYour Name <legal 0> 235*5113495bSYour Name */ 236*5113495bSYour Name 237*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_OFFSET 0x00000000 238*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_LSB 29 239*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MSB 31 240*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MASK 0xe0000000 241*5113495bSYour Name 242*5113495bSYour Name 243*5113495bSYour Name /* Description PHY_PPDU_ID 244*5113495bSYour Name 245*5113495bSYour Name A ppdu counter value that PHY increments for every PPDU 246*5113495bSYour Name received. The counter value wraps around 247*5113495bSYour Name <legal all> 248*5113495bSYour Name */ 249*5113495bSYour Name 250*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000004 251*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_LSB 0 252*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MSB 15 253*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff 254*5113495bSYour Name 255*5113495bSYour Name 256*5113495bSYour Name /* Description LSIG_RESPONSE_LENGTH 257*5113495bSYour Name 258*5113495bSYour Name Field only valid in case of OFDMA trigger 259*5113495bSYour Name 260*5113495bSYour Name Indicates the value of the L-SIG Length field of the HE 261*5113495bSYour Name trigger-based PPDU that is the response to the Trigger frame 262*5113495bSYour Name 263*5113495bSYour Name 264*5113495bSYour Name <legal all> 265*5113495bSYour Name */ 266*5113495bSYour Name 267*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET 0x00000004 268*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_LSB 16 269*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MSB 27 270*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MASK 0x0fff0000 271*5113495bSYour Name 272*5113495bSYour Name 273*5113495bSYour Name /* Description RESERVED_1A 274*5113495bSYour Name 275*5113495bSYour Name <legal 0> 276*5113495bSYour Name */ 277*5113495bSYour Name 278*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_OFFSET 0x00000004 279*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_LSB 28 280*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MSB 31 281*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MASK 0xf0000000 282*5113495bSYour Name 283*5113495bSYour Name 284*5113495bSYour Name /* Description FRAME_CONTROL 285*5113495bSYour Name 286*5113495bSYour Name frame control field of the received frame 287*5113495bSYour Name <legal all> 288*5113495bSYour Name */ 289*5113495bSYour Name 290*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_OFFSET 0x00000008 291*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_LSB 0 292*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MSB 15 293*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MASK 0x0000ffff 294*5113495bSYour Name 295*5113495bSYour Name 296*5113495bSYour Name /* Description QOS_CONTROL 297*5113495bSYour Name 298*5113495bSYour Name frame control field of the received frame (if present) 299*5113495bSYour Name <legal all> 300*5113495bSYour Name */ 301*5113495bSYour Name 302*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_OFFSET 0x00000008 303*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_LSB 16 304*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MSB 31 305*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MASK 0xffff0000 306*5113495bSYour Name 307*5113495bSYour Name 308*5113495bSYour Name /* Description SW_PEER_ID 309*5113495bSYour Name 310*5113495bSYour Name A unique identifier for this STA. Extracted from the Address_Search_Entry 311*5113495bSYour Name 312*5113495bSYour Name 313*5113495bSYour Name Used by the SCH to find linkage between this trigger and 314*5113495bSYour Name potentially pre-programmed responses. 315*5113495bSYour Name <legal all> 316*5113495bSYour Name */ 317*5113495bSYour Name 318*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_OFFSET 0x0000000c 319*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_LSB 0 320*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MSB 15 321*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MASK 0x0000ffff 322*5113495bSYour Name 323*5113495bSYour Name 324*5113495bSYour Name /* Description RESERVED_3A 325*5113495bSYour Name 326*5113495bSYour Name <legal 0> 327*5113495bSYour Name */ 328*5113495bSYour Name 329*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_OFFSET 0x0000000c 330*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_LSB 16 331*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MSB 31 332*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MASK 0xffff0000 333*5113495bSYour Name 334*5113495bSYour Name 335*5113495bSYour Name /* Description HE_CONTROL 336*5113495bSYour Name 337*5113495bSYour Name Field only valid when HE_control_info_valid is set 338*5113495bSYour Name 339*5113495bSYour Name This is the 'RAW HE_CONTROL field' that was present in the 340*5113495bSYour Name frame. 341*5113495bSYour Name <legal all> 342*5113495bSYour Name */ 343*5113495bSYour Name 344*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_OFFSET 0x00000010 345*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_LSB 0 346*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MSB 31 347*5113495bSYour Name #define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MASK 0xffffffff 348*5113495bSYour Name 349*5113495bSYour Name 350*5113495bSYour Name 351*5113495bSYour Name #endif // RECEIVED_TRIGGER_INFO_DETAILS 352