xref: /wlan-driver/fw-api/hw/qcn6432/rx_attention.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2023 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 #ifndef _RX_ATTENTION_H_
18*5113495bSYour Name #define _RX_ATTENTION_H_
19*5113495bSYour Name #if !defined(__ASSEMBLER__)
20*5113495bSYour Name #endif
21*5113495bSYour Name 
22*5113495bSYour Name #define NUM_OF_DWORDS_RX_ATTENTION 4
23*5113495bSYour Name 
24*5113495bSYour Name #define NUM_OF_QWORDS_RX_ATTENTION 2
25*5113495bSYour Name 
26*5113495bSYour Name 
27*5113495bSYour Name struct rx_attention {
28*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
29*5113495bSYour Name              uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
30*5113495bSYour Name                       sw_frame_group_id                                       :  7, // [8:2]
31*5113495bSYour Name                       reserved_0                                              :  7, // [15:9]
32*5113495bSYour Name                       phy_ppdu_id                                             : 16; // [31:16]
33*5113495bSYour Name              uint32_t first_mpdu                                              :  1, // [0:0]
34*5113495bSYour Name                       reserved_1a                                             :  1, // [1:1]
35*5113495bSYour Name                       mcast_bcast                                             :  1, // [2:2]
36*5113495bSYour Name                       ast_index_not_found                                     :  1, // [3:3]
37*5113495bSYour Name                       ast_index_timeout                                       :  1, // [4:4]
38*5113495bSYour Name                       power_mgmt                                              :  1, // [5:5]
39*5113495bSYour Name                       non_qos                                                 :  1, // [6:6]
40*5113495bSYour Name                       null_data                                               :  1, // [7:7]
41*5113495bSYour Name                       mgmt_type                                               :  1, // [8:8]
42*5113495bSYour Name                       ctrl_type                                               :  1, // [9:9]
43*5113495bSYour Name                       more_data                                               :  1, // [10:10]
44*5113495bSYour Name                       eosp                                                    :  1, // [11:11]
45*5113495bSYour Name                       a_msdu_error                                            :  1, // [12:12]
46*5113495bSYour Name                       fragment_flag                                           :  1, // [13:13]
47*5113495bSYour Name                       order                                                   :  1, // [14:14]
48*5113495bSYour Name                       cce_match                                               :  1, // [15:15]
49*5113495bSYour Name                       overflow_err                                            :  1, // [16:16]
50*5113495bSYour Name                       msdu_length_err                                         :  1, // [17:17]
51*5113495bSYour Name                       tcp_udp_chksum_fail                                     :  1, // [18:18]
52*5113495bSYour Name                       ip_chksum_fail                                          :  1, // [19:19]
53*5113495bSYour Name                       sa_idx_invalid                                          :  1, // [20:20]
54*5113495bSYour Name                       da_idx_invalid                                          :  1, // [21:21]
55*5113495bSYour Name                       reserved_1b                                             :  1, // [22:22]
56*5113495bSYour Name                       rx_in_tx_decrypt_byp                                    :  1, // [23:23]
57*5113495bSYour Name                       encrypt_required                                        :  1, // [24:24]
58*5113495bSYour Name                       directed                                                :  1, // [25:25]
59*5113495bSYour Name                       buffer_fragment                                         :  1, // [26:26]
60*5113495bSYour Name                       mpdu_length_err                                         :  1, // [27:27]
61*5113495bSYour Name                       tkip_mic_err                                            :  1, // [28:28]
62*5113495bSYour Name                       decrypt_err                                             :  1, // [29:29]
63*5113495bSYour Name                       unencrypted_frame_err                                   :  1, // [30:30]
64*5113495bSYour Name                       fcs_err                                                 :  1; // [31:31]
65*5113495bSYour Name              uint32_t flow_idx_timeout                                        :  1, // [0:0]
66*5113495bSYour Name                       flow_idx_invalid                                        :  1, // [1:1]
67*5113495bSYour Name                       wifi_parser_error                                       :  1, // [2:2]
68*5113495bSYour Name                       amsdu_parser_error                                      :  1, // [3:3]
69*5113495bSYour Name                       sa_idx_timeout                                          :  1, // [4:4]
70*5113495bSYour Name                       da_idx_timeout                                          :  1, // [5:5]
71*5113495bSYour Name                       msdu_limit_error                                        :  1, // [6:6]
72*5113495bSYour Name                       da_is_valid                                             :  1, // [7:7]
73*5113495bSYour Name                       da_is_mcbc                                              :  1, // [8:8]
74*5113495bSYour Name                       sa_is_valid                                             :  1, // [9:9]
75*5113495bSYour Name                       decrypt_status_code                                     :  3, // [12:10]
76*5113495bSYour Name                       rx_bitmap_not_updated                                   :  1, // [13:13]
77*5113495bSYour Name                       reserved_2                                              : 17, // [30:14]
78*5113495bSYour Name                       msdu_done                                               :  1; // [31:31]
79*5113495bSYour Name              uint32_t tlv64_padding                                           : 32; // [31:0]
80*5113495bSYour Name #else
81*5113495bSYour Name              uint32_t phy_ppdu_id                                             : 16, // [31:16]
82*5113495bSYour Name                       reserved_0                                              :  7, // [15:9]
83*5113495bSYour Name                       sw_frame_group_id                                       :  7, // [8:2]
84*5113495bSYour Name                       rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
85*5113495bSYour Name              uint32_t fcs_err                                                 :  1, // [31:31]
86*5113495bSYour Name                       unencrypted_frame_err                                   :  1, // [30:30]
87*5113495bSYour Name                       decrypt_err                                             :  1, // [29:29]
88*5113495bSYour Name                       tkip_mic_err                                            :  1, // [28:28]
89*5113495bSYour Name                       mpdu_length_err                                         :  1, // [27:27]
90*5113495bSYour Name                       buffer_fragment                                         :  1, // [26:26]
91*5113495bSYour Name                       directed                                                :  1, // [25:25]
92*5113495bSYour Name                       encrypt_required                                        :  1, // [24:24]
93*5113495bSYour Name                       rx_in_tx_decrypt_byp                                    :  1, // [23:23]
94*5113495bSYour Name                       reserved_1b                                             :  1, // [22:22]
95*5113495bSYour Name                       da_idx_invalid                                          :  1, // [21:21]
96*5113495bSYour Name                       sa_idx_invalid                                          :  1, // [20:20]
97*5113495bSYour Name                       ip_chksum_fail                                          :  1, // [19:19]
98*5113495bSYour Name                       tcp_udp_chksum_fail                                     :  1, // [18:18]
99*5113495bSYour Name                       msdu_length_err                                         :  1, // [17:17]
100*5113495bSYour Name                       overflow_err                                            :  1, // [16:16]
101*5113495bSYour Name                       cce_match                                               :  1, // [15:15]
102*5113495bSYour Name                       order                                                   :  1, // [14:14]
103*5113495bSYour Name                       fragment_flag                                           :  1, // [13:13]
104*5113495bSYour Name                       a_msdu_error                                            :  1, // [12:12]
105*5113495bSYour Name                       eosp                                                    :  1, // [11:11]
106*5113495bSYour Name                       more_data                                               :  1, // [10:10]
107*5113495bSYour Name                       ctrl_type                                               :  1, // [9:9]
108*5113495bSYour Name                       mgmt_type                                               :  1, // [8:8]
109*5113495bSYour Name                       null_data                                               :  1, // [7:7]
110*5113495bSYour Name                       non_qos                                                 :  1, // [6:6]
111*5113495bSYour Name                       power_mgmt                                              :  1, // [5:5]
112*5113495bSYour Name                       ast_index_timeout                                       :  1, // [4:4]
113*5113495bSYour Name                       ast_index_not_found                                     :  1, // [3:3]
114*5113495bSYour Name                       mcast_bcast                                             :  1, // [2:2]
115*5113495bSYour Name                       reserved_1a                                             :  1, // [1:1]
116*5113495bSYour Name                       first_mpdu                                              :  1; // [0:0]
117*5113495bSYour Name              uint32_t msdu_done                                               :  1, // [31:31]
118*5113495bSYour Name                       reserved_2                                              : 17, // [30:14]
119*5113495bSYour Name                       rx_bitmap_not_updated                                   :  1, // [13:13]
120*5113495bSYour Name                       decrypt_status_code                                     :  3, // [12:10]
121*5113495bSYour Name                       sa_is_valid                                             :  1, // [9:9]
122*5113495bSYour Name                       da_is_mcbc                                              :  1, // [8:8]
123*5113495bSYour Name                       da_is_valid                                             :  1, // [7:7]
124*5113495bSYour Name                       msdu_limit_error                                        :  1, // [6:6]
125*5113495bSYour Name                       da_idx_timeout                                          :  1, // [5:5]
126*5113495bSYour Name                       sa_idx_timeout                                          :  1, // [4:4]
127*5113495bSYour Name                       amsdu_parser_error                                      :  1, // [3:3]
128*5113495bSYour Name                       wifi_parser_error                                       :  1, // [2:2]
129*5113495bSYour Name                       flow_idx_invalid                                        :  1, // [1:1]
130*5113495bSYour Name                       flow_idx_timeout                                        :  1; // [0:0]
131*5113495bSYour Name              uint32_t tlv64_padding                                           : 32; // [31:0]
132*5113495bSYour Name #endif
133*5113495bSYour Name };
134*5113495bSYour Name 
135*5113495bSYour Name 
136*5113495bSYour Name /* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
137*5113495bSYour Name 
138*5113495bSYour Name 			Field indicates what the reason was that this MPDU frame
139*5113495bSYour Name 			 was allowed to come into the receive path by RXPCU
140*5113495bSYour Name 			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
141*5113495bSYour Name 			 filter programming of rxpcu
142*5113495bSYour Name 			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
143*5113495bSYour Name 			 regular frame filter and would have been dropped, were
144*5113495bSYour Name 			it not for the frame fitting into the 'monitor_client' category.
145*5113495bSYour Name 
146*5113495bSYour Name 			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the
147*5113495bSYour Name 			regular frame filter and also did not pass the rxpcu_monitor_client
148*5113495bSYour Name 			 filter. It would have been dropped accept that it did pass
149*5113495bSYour Name 			 the 'monitor_other' category.
150*5113495bSYour Name 			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
151*5113495bSYour Name 			 the normal frame filter programming of RXPCU but additionally
152*5113495bSYour Name 			 fit into the 'monitor_override_client' category.
153*5113495bSYour Name 			<legal 0-3>
154*5113495bSYour Name */
155*5113495bSYour Name 
156*5113495bSYour Name #define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                           0x0000000000000000
157*5113495bSYour Name #define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                              0
158*5113495bSYour Name #define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                              1
159*5113495bSYour Name #define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                             0x0000000000000003
160*5113495bSYour Name 
161*5113495bSYour Name 
162*5113495bSYour Name /* Description		SW_FRAME_GROUP_ID
163*5113495bSYour Name 
164*5113495bSYour Name 			SW processes frames based on certain classifications. This
165*5113495bSYour Name 			 field indicates to what sw classification this MPDU is
166*5113495bSYour Name 			mapped.
167*5113495bSYour Name 			The classification is given in priority order
168*5113495bSYour Name 
169*5113495bSYour Name 			<enum 0 sw_frame_group_NDP_frame>
170*5113495bSYour Name 
171*5113495bSYour Name 			<enum 1 sw_frame_group_Multicast_data>
172*5113495bSYour Name 			<enum 2 sw_frame_group_Unicast_data>
173*5113495bSYour Name 			<enum 3 sw_frame_group_Null_data > This includes mpdus of
174*5113495bSYour Name 			 type Data Null.
175*5113495bSYour Name 			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
176*5113495bSYour Name 			 Null frames except in UL MU or TB PPDUs.
177*5113495bSYour Name 			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes
178*5113495bSYour Name 			QoS Null frames in UL MU or TB PPDUs.
179*5113495bSYour Name 
180*5113495bSYour Name 			<enum 4 sw_frame_group_mgmt_0000 >
181*5113495bSYour Name 			<enum 5 sw_frame_group_mgmt_0001 >
182*5113495bSYour Name 			<enum 6 sw_frame_group_mgmt_0010 >
183*5113495bSYour Name 			<enum 7 sw_frame_group_mgmt_0011 >
184*5113495bSYour Name 			<enum 8 sw_frame_group_mgmt_0100 >
185*5113495bSYour Name 			<enum 9 sw_frame_group_mgmt_0101 >
186*5113495bSYour Name 			<enum 10 sw_frame_group_mgmt_0110 >
187*5113495bSYour Name 			<enum 11 sw_frame_group_mgmt_0111 >
188*5113495bSYour Name 			<enum 12 sw_frame_group_mgmt_1000 >
189*5113495bSYour Name 			<enum 13 sw_frame_group_mgmt_1001 >
190*5113495bSYour Name 			<enum 14 sw_frame_group_mgmt_1010 >
191*5113495bSYour Name 			<enum 15 sw_frame_group_mgmt_1011 >
192*5113495bSYour Name 			<enum 16 sw_frame_group_mgmt_1100 >
193*5113495bSYour Name 			<enum 17 sw_frame_group_mgmt_1101 >
194*5113495bSYour Name 			<enum 18 sw_frame_group_mgmt_1110 >
195*5113495bSYour Name 			<enum 19 sw_frame_group_mgmt_1111 >
196*5113495bSYour Name 
197*5113495bSYour Name 			<enum 20 sw_frame_group_ctrl_0000 >
198*5113495bSYour Name 			<enum 21 sw_frame_group_ctrl_0001 >
199*5113495bSYour Name 			<enum 22 sw_frame_group_ctrl_0010 >
200*5113495bSYour Name 			<enum 23 sw_frame_group_ctrl_0011 >
201*5113495bSYour Name 			<enum 24 sw_frame_group_ctrl_0100 >
202*5113495bSYour Name 			<enum 25 sw_frame_group_ctrl_0101 >
203*5113495bSYour Name 			<enum 26 sw_frame_group_ctrl_0110 >
204*5113495bSYour Name 			<enum 27 sw_frame_group_ctrl_0111 >
205*5113495bSYour Name 			<enum 28 sw_frame_group_ctrl_1000 >
206*5113495bSYour Name 			<enum 29 sw_frame_group_ctrl_1001 >
207*5113495bSYour Name 			<enum 30 sw_frame_group_ctrl_1010 >
208*5113495bSYour Name 			<enum 31 sw_frame_group_ctrl_1011 >
209*5113495bSYour Name 			<enum 32 sw_frame_group_ctrl_1100 >
210*5113495bSYour Name 			<enum 33 sw_frame_group_ctrl_1101 >
211*5113495bSYour Name 			<enum 34 sw_frame_group_ctrl_1110 >
212*5113495bSYour Name 			<enum 35 sw_frame_group_ctrl_1111 >
213*5113495bSYour Name 
214*5113495bSYour Name 			<enum 36 sw_frame_group_unsupported> This covers type 3
215*5113495bSYour Name 			and protocol version != 0
216*5113495bSYour Name 
217*5113495bSYour Name 			<enum 37 sw_frame_group_phy_error> PHY reported an error
218*5113495bSYour Name 
219*5113495bSYour Name 
220*5113495bSYour Name 			<legal 0-39>
221*5113495bSYour Name */
222*5113495bSYour Name 
223*5113495bSYour Name #define RX_ATTENTION_SW_FRAME_GROUP_ID_OFFSET                                       0x0000000000000000
224*5113495bSYour Name #define RX_ATTENTION_SW_FRAME_GROUP_ID_LSB                                          2
225*5113495bSYour Name #define RX_ATTENTION_SW_FRAME_GROUP_ID_MSB                                          8
226*5113495bSYour Name #define RX_ATTENTION_SW_FRAME_GROUP_ID_MASK                                         0x00000000000001fc
227*5113495bSYour Name 
228*5113495bSYour Name 
229*5113495bSYour Name /* Description		RESERVED_0
230*5113495bSYour Name 
231*5113495bSYour Name 			<legal 0>
232*5113495bSYour Name */
233*5113495bSYour Name 
234*5113495bSYour Name #define RX_ATTENTION_RESERVED_0_OFFSET                                              0x0000000000000000
235*5113495bSYour Name #define RX_ATTENTION_RESERVED_0_LSB                                                 9
236*5113495bSYour Name #define RX_ATTENTION_RESERVED_0_MSB                                                 15
237*5113495bSYour Name #define RX_ATTENTION_RESERVED_0_MASK                                                0x000000000000fe00
238*5113495bSYour Name 
239*5113495bSYour Name 
240*5113495bSYour Name /* Description		PHY_PPDU_ID
241*5113495bSYour Name 
242*5113495bSYour Name 			A ppdu counter value that PHY increments for every PPDU
243*5113495bSYour Name 			received. The counter value wraps around
244*5113495bSYour Name 			<legal all>
245*5113495bSYour Name */
246*5113495bSYour Name 
247*5113495bSYour Name #define RX_ATTENTION_PHY_PPDU_ID_OFFSET                                             0x0000000000000000
248*5113495bSYour Name #define RX_ATTENTION_PHY_PPDU_ID_LSB                                                16
249*5113495bSYour Name #define RX_ATTENTION_PHY_PPDU_ID_MSB                                                31
250*5113495bSYour Name #define RX_ATTENTION_PHY_PPDU_ID_MASK                                               0x00000000ffff0000
251*5113495bSYour Name 
252*5113495bSYour Name 
253*5113495bSYour Name /* Description		FIRST_MPDU
254*5113495bSYour Name 
255*5113495bSYour Name 			Indicates the first MSDU of the PPDU.  If both first_mpdu
256*5113495bSYour Name 			 and last_mpdu are set in the MSDU then this is a not an
257*5113495bSYour Name 			 A-MPDU frame but a stand alone MPDU.  Interior MPDU in
258*5113495bSYour Name 			an A-MPDU shall have both first_mpdu and last_mpdu bits
259*5113495bSYour Name 			set to 0.  The PPDU start status will only be valid when
260*5113495bSYour Name 			 this bit is set.
261*5113495bSYour Name */
262*5113495bSYour Name 
263*5113495bSYour Name #define RX_ATTENTION_FIRST_MPDU_OFFSET                                              0x0000000000000000
264*5113495bSYour Name #define RX_ATTENTION_FIRST_MPDU_LSB                                                 32
265*5113495bSYour Name #define RX_ATTENTION_FIRST_MPDU_MSB                                                 32
266*5113495bSYour Name #define RX_ATTENTION_FIRST_MPDU_MASK                                                0x0000000100000000
267*5113495bSYour Name 
268*5113495bSYour Name 
269*5113495bSYour Name /* Description		RESERVED_1A
270*5113495bSYour Name 
271*5113495bSYour Name 			<legal 0>
272*5113495bSYour Name */
273*5113495bSYour Name 
274*5113495bSYour Name #define RX_ATTENTION_RESERVED_1A_OFFSET                                             0x0000000000000000
275*5113495bSYour Name #define RX_ATTENTION_RESERVED_1A_LSB                                                33
276*5113495bSYour Name #define RX_ATTENTION_RESERVED_1A_MSB                                                33
277*5113495bSYour Name #define RX_ATTENTION_RESERVED_1A_MASK                                               0x0000000200000000
278*5113495bSYour Name 
279*5113495bSYour Name 
280*5113495bSYour Name /* Description		MCAST_BCAST
281*5113495bSYour Name 
282*5113495bSYour Name 			Multicast / broadcast indicator.  Only set when the MAC
283*5113495bSYour Name 			address 1 bit 0 is set indicating mcast/bcast and the BSSID
284*5113495bSYour Name 			 matches one of the 4 BSSID registers. Only set when first_msdu
285*5113495bSYour Name 			 is set.
286*5113495bSYour Name */
287*5113495bSYour Name 
288*5113495bSYour Name #define RX_ATTENTION_MCAST_BCAST_OFFSET                                             0x0000000000000000
289*5113495bSYour Name #define RX_ATTENTION_MCAST_BCAST_LSB                                                34
290*5113495bSYour Name #define RX_ATTENTION_MCAST_BCAST_MSB                                                34
291*5113495bSYour Name #define RX_ATTENTION_MCAST_BCAST_MASK                                               0x0000000400000000
292*5113495bSYour Name 
293*5113495bSYour Name 
294*5113495bSYour Name /* Description		AST_INDEX_NOT_FOUND
295*5113495bSYour Name 
296*5113495bSYour Name 			Only valid when first_msdu is set.
297*5113495bSYour Name 
298*5113495bSYour Name 			Indicates no AST matching entries within the the max search
299*5113495bSYour Name 			 count.
300*5113495bSYour Name */
301*5113495bSYour Name 
302*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_NOT_FOUND_OFFSET                                     0x0000000000000000
303*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_NOT_FOUND_LSB                                        35
304*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_NOT_FOUND_MSB                                        35
305*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_NOT_FOUND_MASK                                       0x0000000800000000
306*5113495bSYour Name 
307*5113495bSYour Name 
308*5113495bSYour Name /* Description		AST_INDEX_TIMEOUT
309*5113495bSYour Name 
310*5113495bSYour Name 			Only valid when first_msdu is set.
311*5113495bSYour Name 
312*5113495bSYour Name 			Indicates an unsuccessful search in the address seach table
313*5113495bSYour Name 			 due to timeout.
314*5113495bSYour Name */
315*5113495bSYour Name 
316*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_TIMEOUT_OFFSET                                       0x0000000000000000
317*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_TIMEOUT_LSB                                          36
318*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_TIMEOUT_MSB                                          36
319*5113495bSYour Name #define RX_ATTENTION_AST_INDEX_TIMEOUT_MASK                                         0x0000001000000000
320*5113495bSYour Name 
321*5113495bSYour Name 
322*5113495bSYour Name /* Description		POWER_MGMT
323*5113495bSYour Name 
324*5113495bSYour Name 			Power management bit set in the 802.11 header.  Only set
325*5113495bSYour Name 			 when first_msdu is set.
326*5113495bSYour Name */
327*5113495bSYour Name 
328*5113495bSYour Name #define RX_ATTENTION_POWER_MGMT_OFFSET                                              0x0000000000000000
329*5113495bSYour Name #define RX_ATTENTION_POWER_MGMT_LSB                                                 37
330*5113495bSYour Name #define RX_ATTENTION_POWER_MGMT_MSB                                                 37
331*5113495bSYour Name #define RX_ATTENTION_POWER_MGMT_MASK                                                0x0000002000000000
332*5113495bSYour Name 
333*5113495bSYour Name 
334*5113495bSYour Name /* Description		NON_QOS
335*5113495bSYour Name 
336*5113495bSYour Name 			Set if packet is not a non-QoS data frame.  Only set when
337*5113495bSYour Name 			 first_msdu is set.
338*5113495bSYour Name */
339*5113495bSYour Name 
340*5113495bSYour Name #define RX_ATTENTION_NON_QOS_OFFSET                                                 0x0000000000000000
341*5113495bSYour Name #define RX_ATTENTION_NON_QOS_LSB                                                    38
342*5113495bSYour Name #define RX_ATTENTION_NON_QOS_MSB                                                    38
343*5113495bSYour Name #define RX_ATTENTION_NON_QOS_MASK                                                   0x0000004000000000
344*5113495bSYour Name 
345*5113495bSYour Name 
346*5113495bSYour Name /* Description		NULL_DATA
347*5113495bSYour Name 
348*5113495bSYour Name 			Set if frame type indicates either null data or QoS null
349*5113495bSYour Name 			 data format.  Only set when first_msdu is set.
350*5113495bSYour Name */
351*5113495bSYour Name 
352*5113495bSYour Name #define RX_ATTENTION_NULL_DATA_OFFSET                                               0x0000000000000000
353*5113495bSYour Name #define RX_ATTENTION_NULL_DATA_LSB                                                  39
354*5113495bSYour Name #define RX_ATTENTION_NULL_DATA_MSB                                                  39
355*5113495bSYour Name #define RX_ATTENTION_NULL_DATA_MASK                                                 0x0000008000000000
356*5113495bSYour Name 
357*5113495bSYour Name 
358*5113495bSYour Name /* Description		MGMT_TYPE
359*5113495bSYour Name 
360*5113495bSYour Name 			Set if packet is a management packet.  Only set when first_msdu
361*5113495bSYour Name 			 is set.
362*5113495bSYour Name */
363*5113495bSYour Name 
364*5113495bSYour Name #define RX_ATTENTION_MGMT_TYPE_OFFSET                                               0x0000000000000000
365*5113495bSYour Name #define RX_ATTENTION_MGMT_TYPE_LSB                                                  40
366*5113495bSYour Name #define RX_ATTENTION_MGMT_TYPE_MSB                                                  40
367*5113495bSYour Name #define RX_ATTENTION_MGMT_TYPE_MASK                                                 0x0000010000000000
368*5113495bSYour Name 
369*5113495bSYour Name 
370*5113495bSYour Name /* Description		CTRL_TYPE
371*5113495bSYour Name 
372*5113495bSYour Name 			Set if packet is a control packet.  Only set when first_msdu
373*5113495bSYour Name 			 is set.
374*5113495bSYour Name */
375*5113495bSYour Name 
376*5113495bSYour Name #define RX_ATTENTION_CTRL_TYPE_OFFSET                                               0x0000000000000000
377*5113495bSYour Name #define RX_ATTENTION_CTRL_TYPE_LSB                                                  41
378*5113495bSYour Name #define RX_ATTENTION_CTRL_TYPE_MSB                                                  41
379*5113495bSYour Name #define RX_ATTENTION_CTRL_TYPE_MASK                                                 0x0000020000000000
380*5113495bSYour Name 
381*5113495bSYour Name 
382*5113495bSYour Name /* Description		MORE_DATA
383*5113495bSYour Name 
384*5113495bSYour Name 			Set if more bit in frame control is set.  Only set when
385*5113495bSYour Name 			first_msdu is set.
386*5113495bSYour Name */
387*5113495bSYour Name 
388*5113495bSYour Name #define RX_ATTENTION_MORE_DATA_OFFSET                                               0x0000000000000000
389*5113495bSYour Name #define RX_ATTENTION_MORE_DATA_LSB                                                  42
390*5113495bSYour Name #define RX_ATTENTION_MORE_DATA_MSB                                                  42
391*5113495bSYour Name #define RX_ATTENTION_MORE_DATA_MASK                                                 0x0000040000000000
392*5113495bSYour Name 
393*5113495bSYour Name 
394*5113495bSYour Name /* Description		EOSP
395*5113495bSYour Name 
396*5113495bSYour Name 			Set if the EOSP (end of service period) bit in the QoS control
397*5113495bSYour Name 			 field is set.  Only set when first_msdu is set.
398*5113495bSYour Name */
399*5113495bSYour Name 
400*5113495bSYour Name #define RX_ATTENTION_EOSP_OFFSET                                                    0x0000000000000000
401*5113495bSYour Name #define RX_ATTENTION_EOSP_LSB                                                       43
402*5113495bSYour Name #define RX_ATTENTION_EOSP_MSB                                                       43
403*5113495bSYour Name #define RX_ATTENTION_EOSP_MASK                                                      0x0000080000000000
404*5113495bSYour Name 
405*5113495bSYour Name 
406*5113495bSYour Name /* Description		A_MSDU_ERROR
407*5113495bSYour Name 
408*5113495bSYour Name 			Set if number of MSDUs in A-MSDU is above a threshold or
409*5113495bSYour Name 			 if the size of the MSDU is invalid.  This receive buffer
410*5113495bSYour Name 			 will contain all of the remainder of the MSDUs in this
411*5113495bSYour Name 			MPDU without decapsulation.
412*5113495bSYour Name */
413*5113495bSYour Name 
414*5113495bSYour Name #define RX_ATTENTION_A_MSDU_ERROR_OFFSET                                            0x0000000000000000
415*5113495bSYour Name #define RX_ATTENTION_A_MSDU_ERROR_LSB                                               44
416*5113495bSYour Name #define RX_ATTENTION_A_MSDU_ERROR_MSB                                               44
417*5113495bSYour Name #define RX_ATTENTION_A_MSDU_ERROR_MASK                                              0x0000100000000000
418*5113495bSYour Name 
419*5113495bSYour Name 
420*5113495bSYour Name /* Description		FRAGMENT_FLAG
421*5113495bSYour Name 
422*5113495bSYour Name 			Indicates that this is an 802.11 fragment frame.  This is
423*5113495bSYour Name 			 set when either the more_frag bit is set in the frame control
424*5113495bSYour Name 			 or the fragment number is not zero.  Only set when first_msdu
425*5113495bSYour Name 			 is set.
426*5113495bSYour Name */
427*5113495bSYour Name 
428*5113495bSYour Name #define RX_ATTENTION_FRAGMENT_FLAG_OFFSET                                           0x0000000000000000
429*5113495bSYour Name #define RX_ATTENTION_FRAGMENT_FLAG_LSB                                              45
430*5113495bSYour Name #define RX_ATTENTION_FRAGMENT_FLAG_MSB                                              45
431*5113495bSYour Name #define RX_ATTENTION_FRAGMENT_FLAG_MASK                                             0x0000200000000000
432*5113495bSYour Name 
433*5113495bSYour Name 
434*5113495bSYour Name /* Description		ORDER
435*5113495bSYour Name 
436*5113495bSYour Name 			Set if the order bit in the frame control is set.  Only
437*5113495bSYour Name 			set when first_msdu is set.
438*5113495bSYour Name */
439*5113495bSYour Name 
440*5113495bSYour Name #define RX_ATTENTION_ORDER_OFFSET                                                   0x0000000000000000
441*5113495bSYour Name #define RX_ATTENTION_ORDER_LSB                                                      46
442*5113495bSYour Name #define RX_ATTENTION_ORDER_MSB                                                      46
443*5113495bSYour Name #define RX_ATTENTION_ORDER_MASK                                                     0x0000400000000000
444*5113495bSYour Name 
445*5113495bSYour Name 
446*5113495bSYour Name /* Description		CCE_MATCH
447*5113495bSYour Name 
448*5113495bSYour Name 			Indicates that this status has a corresponding MSDU that
449*5113495bSYour Name 			 requires FW processing.  The OLE will have classification
450*5113495bSYour Name 			 ring mask registers which will indicate the ring(s) for
451*5113495bSYour Name 			 packets and descriptors which need FW attention.
452*5113495bSYour Name */
453*5113495bSYour Name 
454*5113495bSYour Name #define RX_ATTENTION_CCE_MATCH_OFFSET                                               0x0000000000000000
455*5113495bSYour Name #define RX_ATTENTION_CCE_MATCH_LSB                                                  47
456*5113495bSYour Name #define RX_ATTENTION_CCE_MATCH_MSB                                                  47
457*5113495bSYour Name #define RX_ATTENTION_CCE_MATCH_MASK                                                 0x0000800000000000
458*5113495bSYour Name 
459*5113495bSYour Name 
460*5113495bSYour Name /* Description		OVERFLOW_ERR
461*5113495bSYour Name 
462*5113495bSYour Name 			RXPCU Receive FIFO ran out of space to receive the full
463*5113495bSYour Name 			MPDU. Therefor this MPDU is terminated early and is thus
464*5113495bSYour Name 			 corrupted.
465*5113495bSYour Name 
466*5113495bSYour Name 			This MPDU will not be ACKed.
467*5113495bSYour Name 			RXPCU might still be able to correctly receive the following
468*5113495bSYour Name 			 MPDUs in the PPDU if enough fifo space became available
469*5113495bSYour Name 			 in time
470*5113495bSYour Name */
471*5113495bSYour Name 
472*5113495bSYour Name #define RX_ATTENTION_OVERFLOW_ERR_OFFSET                                            0x0000000000000000
473*5113495bSYour Name #define RX_ATTENTION_OVERFLOW_ERR_LSB                                               48
474*5113495bSYour Name #define RX_ATTENTION_OVERFLOW_ERR_MSB                                               48
475*5113495bSYour Name #define RX_ATTENTION_OVERFLOW_ERR_MASK                                              0x0001000000000000
476*5113495bSYour Name 
477*5113495bSYour Name 
478*5113495bSYour Name /* Description		MSDU_LENGTH_ERR
479*5113495bSYour Name 
480*5113495bSYour Name 			Indicates that the MSDU length from the 802.3 encapsulated
481*5113495bSYour Name 			 length field extends beyond the MPDU boundary or if the
482*5113495bSYour Name 			 length is less than 14 bytes.
483*5113495bSYour Name 			Merged with original "other_msdu_err": Indicates that the
484*5113495bSYour Name 			 MSDU threshold was exceeded and thus all the rest of the
485*5113495bSYour Name 			 MSDUs will not be scattered and will not be decasulated
486*5113495bSYour Name 			 but will be DMA'ed in RAW format as a single MSDU buffer
487*5113495bSYour Name 
488*5113495bSYour Name */
489*5113495bSYour Name 
490*5113495bSYour Name #define RX_ATTENTION_MSDU_LENGTH_ERR_OFFSET                                         0x0000000000000000
491*5113495bSYour Name #define RX_ATTENTION_MSDU_LENGTH_ERR_LSB                                            49
492*5113495bSYour Name #define RX_ATTENTION_MSDU_LENGTH_ERR_MSB                                            49
493*5113495bSYour Name #define RX_ATTENTION_MSDU_LENGTH_ERR_MASK                                           0x0002000000000000
494*5113495bSYour Name 
495*5113495bSYour Name 
496*5113495bSYour Name /* Description		TCP_UDP_CHKSUM_FAIL
497*5113495bSYour Name 
498*5113495bSYour Name 			Indicates that the computed checksum (tcp_udp_chksum in 'RX_MSDU_END')
499*5113495bSYour Name 			did not match the checksum in the TCP/UDP header.
500*5113495bSYour Name */
501*5113495bSYour Name 
502*5113495bSYour Name #define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_OFFSET                                     0x0000000000000000
503*5113495bSYour Name #define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_LSB                                        50
504*5113495bSYour Name #define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_MSB                                        50
505*5113495bSYour Name #define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_MASK                                       0x0004000000000000
506*5113495bSYour Name 
507*5113495bSYour Name 
508*5113495bSYour Name /* Description		IP_CHKSUM_FAIL
509*5113495bSYour Name 
510*5113495bSYour Name 			Indicates that the computed checksum (ip_hdr_chksum in 'RX_MSDU_END')
511*5113495bSYour Name 			did not match the checksum in the IP header.
512*5113495bSYour Name */
513*5113495bSYour Name 
514*5113495bSYour Name #define RX_ATTENTION_IP_CHKSUM_FAIL_OFFSET                                          0x0000000000000000
515*5113495bSYour Name #define RX_ATTENTION_IP_CHKSUM_FAIL_LSB                                             51
516*5113495bSYour Name #define RX_ATTENTION_IP_CHKSUM_FAIL_MSB                                             51
517*5113495bSYour Name #define RX_ATTENTION_IP_CHKSUM_FAIL_MASK                                            0x0008000000000000
518*5113495bSYour Name 
519*5113495bSYour Name 
520*5113495bSYour Name /* Description		SA_IDX_INVALID
521*5113495bSYour Name 
522*5113495bSYour Name 			Indicates no matching entry was found in the address search
523*5113495bSYour Name 			 table for the source MAC address.
524*5113495bSYour Name */
525*5113495bSYour Name 
526*5113495bSYour Name #define RX_ATTENTION_SA_IDX_INVALID_OFFSET                                          0x0000000000000000
527*5113495bSYour Name #define RX_ATTENTION_SA_IDX_INVALID_LSB                                             52
528*5113495bSYour Name #define RX_ATTENTION_SA_IDX_INVALID_MSB                                             52
529*5113495bSYour Name #define RX_ATTENTION_SA_IDX_INVALID_MASK                                            0x0010000000000000
530*5113495bSYour Name 
531*5113495bSYour Name 
532*5113495bSYour Name /* Description		DA_IDX_INVALID
533*5113495bSYour Name 
534*5113495bSYour Name 			Indicates no matching entry was found in the address search
535*5113495bSYour Name 			 table for the destination MAC address.
536*5113495bSYour Name */
537*5113495bSYour Name 
538*5113495bSYour Name #define RX_ATTENTION_DA_IDX_INVALID_OFFSET                                          0x0000000000000000
539*5113495bSYour Name #define RX_ATTENTION_DA_IDX_INVALID_LSB                                             53
540*5113495bSYour Name #define RX_ATTENTION_DA_IDX_INVALID_MSB                                             53
541*5113495bSYour Name #define RX_ATTENTION_DA_IDX_INVALID_MASK                                            0x0020000000000000
542*5113495bSYour Name 
543*5113495bSYour Name 
544*5113495bSYour Name /* Description		RESERVED_1B
545*5113495bSYour Name 
546*5113495bSYour Name 			<legal 0>
547*5113495bSYour Name */
548*5113495bSYour Name 
549*5113495bSYour Name #define RX_ATTENTION_RESERVED_1B_OFFSET                                             0x0000000000000000
550*5113495bSYour Name #define RX_ATTENTION_RESERVED_1B_LSB                                                54
551*5113495bSYour Name #define RX_ATTENTION_RESERVED_1B_MSB                                                54
552*5113495bSYour Name #define RX_ATTENTION_RESERVED_1B_MASK                                               0x0040000000000000
553*5113495bSYour Name 
554*5113495bSYour Name 
555*5113495bSYour Name /* Description		RX_IN_TX_DECRYPT_BYP
556*5113495bSYour Name 
557*5113495bSYour Name 			Indicates that RX packet is not decrypted as Crypto is busy
558*5113495bSYour Name 			 with TX packet processing.
559*5113495bSYour Name */
560*5113495bSYour Name 
561*5113495bSYour Name #define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_OFFSET                                    0x0000000000000000
562*5113495bSYour Name #define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_LSB                                       55
563*5113495bSYour Name #define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_MSB                                       55
564*5113495bSYour Name #define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_MASK                                      0x0080000000000000
565*5113495bSYour Name 
566*5113495bSYour Name 
567*5113495bSYour Name /* Description		ENCRYPT_REQUIRED
568*5113495bSYour Name 
569*5113495bSYour Name 			Indicates that this data type frame is not encrypted even
570*5113495bSYour Name 			 if the policy for this MPDU requires encryption as indicated
571*5113495bSYour Name 			 in the peer entry key type.
572*5113495bSYour Name */
573*5113495bSYour Name 
574*5113495bSYour Name #define RX_ATTENTION_ENCRYPT_REQUIRED_OFFSET                                        0x0000000000000000
575*5113495bSYour Name #define RX_ATTENTION_ENCRYPT_REQUIRED_LSB                                           56
576*5113495bSYour Name #define RX_ATTENTION_ENCRYPT_REQUIRED_MSB                                           56
577*5113495bSYour Name #define RX_ATTENTION_ENCRYPT_REQUIRED_MASK                                          0x0100000000000000
578*5113495bSYour Name 
579*5113495bSYour Name 
580*5113495bSYour Name /* Description		DIRECTED
581*5113495bSYour Name 
582*5113495bSYour Name 			MPDU is a directed packet which means that the RA matched
583*5113495bSYour Name 			 our STA addresses.  In proxySTA it means that the TA matched
584*5113495bSYour Name 			 an entry in our address search table with the corresponding
585*5113495bSYour Name 			 "no_ack" bit is the address search entry cleared.
586*5113495bSYour Name */
587*5113495bSYour Name 
588*5113495bSYour Name #define RX_ATTENTION_DIRECTED_OFFSET                                                0x0000000000000000
589*5113495bSYour Name #define RX_ATTENTION_DIRECTED_LSB                                                   57
590*5113495bSYour Name #define RX_ATTENTION_DIRECTED_MSB                                                   57
591*5113495bSYour Name #define RX_ATTENTION_DIRECTED_MASK                                                  0x0200000000000000
592*5113495bSYour Name 
593*5113495bSYour Name 
594*5113495bSYour Name /* Description		BUFFER_FRAGMENT
595*5113495bSYour Name 
596*5113495bSYour Name 			Indicates that at least one of the rx buffers has been fragmented.
597*5113495bSYour Name 			 If set the FW should look at the rx_frag_info descriptor
598*5113495bSYour Name 			 described below.
599*5113495bSYour Name */
600*5113495bSYour Name 
601*5113495bSYour Name #define RX_ATTENTION_BUFFER_FRAGMENT_OFFSET                                         0x0000000000000000
602*5113495bSYour Name #define RX_ATTENTION_BUFFER_FRAGMENT_LSB                                            58
603*5113495bSYour Name #define RX_ATTENTION_BUFFER_FRAGMENT_MSB                                            58
604*5113495bSYour Name #define RX_ATTENTION_BUFFER_FRAGMENT_MASK                                           0x0400000000000000
605*5113495bSYour Name 
606*5113495bSYour Name 
607*5113495bSYour Name /* Description		MPDU_LENGTH_ERR
608*5113495bSYour Name 
609*5113495bSYour Name 			Indicates that the MPDU was pre-maturely terminated resulting
610*5113495bSYour Name 			 in a truncated MPDU.  Don't trust the MPDU length field.
611*5113495bSYour Name 
612*5113495bSYour Name */
613*5113495bSYour Name 
614*5113495bSYour Name #define RX_ATTENTION_MPDU_LENGTH_ERR_OFFSET                                         0x0000000000000000
615*5113495bSYour Name #define RX_ATTENTION_MPDU_LENGTH_ERR_LSB                                            59
616*5113495bSYour Name #define RX_ATTENTION_MPDU_LENGTH_ERR_MSB                                            59
617*5113495bSYour Name #define RX_ATTENTION_MPDU_LENGTH_ERR_MASK                                           0x0800000000000000
618*5113495bSYour Name 
619*5113495bSYour Name 
620*5113495bSYour Name /* Description		TKIP_MIC_ERR
621*5113495bSYour Name 
622*5113495bSYour Name 			Indicates that the MPDU Michael integrity check failed
623*5113495bSYour Name */
624*5113495bSYour Name 
625*5113495bSYour Name #define RX_ATTENTION_TKIP_MIC_ERR_OFFSET                                            0x0000000000000000
626*5113495bSYour Name #define RX_ATTENTION_TKIP_MIC_ERR_LSB                                               60
627*5113495bSYour Name #define RX_ATTENTION_TKIP_MIC_ERR_MSB                                               60
628*5113495bSYour Name #define RX_ATTENTION_TKIP_MIC_ERR_MASK                                              0x1000000000000000
629*5113495bSYour Name 
630*5113495bSYour Name 
631*5113495bSYour Name /* Description		DECRYPT_ERR
632*5113495bSYour Name 
633*5113495bSYour Name 			Indicates that the MPDU decrypt integrity check failed or
634*5113495bSYour Name 			 CRYPTO received an encrypted frame, but did not get a valid
635*5113495bSYour Name 			 corresponding key id in the peer entry.
636*5113495bSYour Name */
637*5113495bSYour Name 
638*5113495bSYour Name #define RX_ATTENTION_DECRYPT_ERR_OFFSET                                             0x0000000000000000
639*5113495bSYour Name #define RX_ATTENTION_DECRYPT_ERR_LSB                                                61
640*5113495bSYour Name #define RX_ATTENTION_DECRYPT_ERR_MSB                                                61
641*5113495bSYour Name #define RX_ATTENTION_DECRYPT_ERR_MASK                                               0x2000000000000000
642*5113495bSYour Name 
643*5113495bSYour Name 
644*5113495bSYour Name /* Description		UNENCRYPTED_FRAME_ERR
645*5113495bSYour Name 
646*5113495bSYour Name 			Copied here by RX OLE from the RX_MPDU_END TLV
647*5113495bSYour Name */
648*5113495bSYour Name 
649*5113495bSYour Name #define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_OFFSET                                   0x0000000000000000
650*5113495bSYour Name #define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_LSB                                      62
651*5113495bSYour Name #define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_MSB                                      62
652*5113495bSYour Name #define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_MASK                                     0x4000000000000000
653*5113495bSYour Name 
654*5113495bSYour Name 
655*5113495bSYour Name /* Description		FCS_ERR
656*5113495bSYour Name 
657*5113495bSYour Name 			Indicates that the MPDU FCS check failed
658*5113495bSYour Name */
659*5113495bSYour Name 
660*5113495bSYour Name #define RX_ATTENTION_FCS_ERR_OFFSET                                                 0x0000000000000000
661*5113495bSYour Name #define RX_ATTENTION_FCS_ERR_LSB                                                    63
662*5113495bSYour Name #define RX_ATTENTION_FCS_ERR_MSB                                                    63
663*5113495bSYour Name #define RX_ATTENTION_FCS_ERR_MASK                                                   0x8000000000000000
664*5113495bSYour Name 
665*5113495bSYour Name 
666*5113495bSYour Name /* Description		FLOW_IDX_TIMEOUT
667*5113495bSYour Name 
668*5113495bSYour Name 			Indicates an unsuccessful flow search due to the expiring
669*5113495bSYour Name 			 of the search timer.
670*5113495bSYour Name 			<legal all>
671*5113495bSYour Name */
672*5113495bSYour Name 
673*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_TIMEOUT_OFFSET                                        0x0000000000000008
674*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_TIMEOUT_LSB                                           0
675*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_TIMEOUT_MSB                                           0
676*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_TIMEOUT_MASK                                          0x0000000000000001
677*5113495bSYour Name 
678*5113495bSYour Name 
679*5113495bSYour Name /* Description		FLOW_IDX_INVALID
680*5113495bSYour Name 
681*5113495bSYour Name 			flow id is not valid
682*5113495bSYour Name 			<legal all>
683*5113495bSYour Name */
684*5113495bSYour Name 
685*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_INVALID_OFFSET                                        0x0000000000000008
686*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_INVALID_LSB                                           1
687*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_INVALID_MSB                                           1
688*5113495bSYour Name #define RX_ATTENTION_FLOW_IDX_INVALID_MASK                                          0x0000000000000002
689*5113495bSYour Name 
690*5113495bSYour Name 
691*5113495bSYour Name /* Description		WIFI_PARSER_ERROR
692*5113495bSYour Name 
693*5113495bSYour Name 			Indicates that the WiFi frame has one of the following errors
694*5113495bSYour Name 
695*5113495bSYour Name 			o has less than minimum allowed bytes as per standard
696*5113495bSYour Name 			o has incomplete VLAN LLC/SNAP (only for non A-MSDUs)
697*5113495bSYour Name 			<legal all>
698*5113495bSYour Name */
699*5113495bSYour Name 
700*5113495bSYour Name #define RX_ATTENTION_WIFI_PARSER_ERROR_OFFSET                                       0x0000000000000008
701*5113495bSYour Name #define RX_ATTENTION_WIFI_PARSER_ERROR_LSB                                          2
702*5113495bSYour Name #define RX_ATTENTION_WIFI_PARSER_ERROR_MSB                                          2
703*5113495bSYour Name #define RX_ATTENTION_WIFI_PARSER_ERROR_MASK                                         0x0000000000000004
704*5113495bSYour Name 
705*5113495bSYour Name 
706*5113495bSYour Name /* Description		AMSDU_PARSER_ERROR
707*5113495bSYour Name 
708*5113495bSYour Name 			A-MSDU could not be properly de-agregated.
709*5113495bSYour Name 			<legal all>
710*5113495bSYour Name */
711*5113495bSYour Name 
712*5113495bSYour Name #define RX_ATTENTION_AMSDU_PARSER_ERROR_OFFSET                                      0x0000000000000008
713*5113495bSYour Name #define RX_ATTENTION_AMSDU_PARSER_ERROR_LSB                                         3
714*5113495bSYour Name #define RX_ATTENTION_AMSDU_PARSER_ERROR_MSB                                         3
715*5113495bSYour Name #define RX_ATTENTION_AMSDU_PARSER_ERROR_MASK                                        0x0000000000000008
716*5113495bSYour Name 
717*5113495bSYour Name 
718*5113495bSYour Name /* Description		SA_IDX_TIMEOUT
719*5113495bSYour Name 
720*5113495bSYour Name 			Indicates an unsuccessful MAC source address search due
721*5113495bSYour Name 			to the expiring of the search timer.
722*5113495bSYour Name */
723*5113495bSYour Name 
724*5113495bSYour Name #define RX_ATTENTION_SA_IDX_TIMEOUT_OFFSET                                          0x0000000000000008
725*5113495bSYour Name #define RX_ATTENTION_SA_IDX_TIMEOUT_LSB                                             4
726*5113495bSYour Name #define RX_ATTENTION_SA_IDX_TIMEOUT_MSB                                             4
727*5113495bSYour Name #define RX_ATTENTION_SA_IDX_TIMEOUT_MASK                                            0x0000000000000010
728*5113495bSYour Name 
729*5113495bSYour Name 
730*5113495bSYour Name /* Description		DA_IDX_TIMEOUT
731*5113495bSYour Name 
732*5113495bSYour Name 			Indicates an unsuccessful MAC destination address search
733*5113495bSYour Name 			 due to the expiring of the search timer.
734*5113495bSYour Name */
735*5113495bSYour Name 
736*5113495bSYour Name #define RX_ATTENTION_DA_IDX_TIMEOUT_OFFSET                                          0x0000000000000008
737*5113495bSYour Name #define RX_ATTENTION_DA_IDX_TIMEOUT_LSB                                             5
738*5113495bSYour Name #define RX_ATTENTION_DA_IDX_TIMEOUT_MSB                                             5
739*5113495bSYour Name #define RX_ATTENTION_DA_IDX_TIMEOUT_MASK                                            0x0000000000000020
740*5113495bSYour Name 
741*5113495bSYour Name 
742*5113495bSYour Name /* Description		MSDU_LIMIT_ERROR
743*5113495bSYour Name 
744*5113495bSYour Name 			Indicates that the MSDU threshold was exceeded and thus
745*5113495bSYour Name 			all the rest of the MSDUs will not be scattered and will
746*5113495bSYour Name 			 not be decasulated but will be DMA'ed in RAW format as
747*5113495bSYour Name 			a single MSDU buffer
748*5113495bSYour Name */
749*5113495bSYour Name 
750*5113495bSYour Name #define RX_ATTENTION_MSDU_LIMIT_ERROR_OFFSET                                        0x0000000000000008
751*5113495bSYour Name #define RX_ATTENTION_MSDU_LIMIT_ERROR_LSB                                           6
752*5113495bSYour Name #define RX_ATTENTION_MSDU_LIMIT_ERROR_MSB                                           6
753*5113495bSYour Name #define RX_ATTENTION_MSDU_LIMIT_ERROR_MASK                                          0x0000000000000040
754*5113495bSYour Name 
755*5113495bSYour Name 
756*5113495bSYour Name /* Description		DA_IS_VALID
757*5113495bSYour Name 
758*5113495bSYour Name 			Indicates that OLE found a valid DA entry
759*5113495bSYour Name */
760*5113495bSYour Name 
761*5113495bSYour Name #define RX_ATTENTION_DA_IS_VALID_OFFSET                                             0x0000000000000008
762*5113495bSYour Name #define RX_ATTENTION_DA_IS_VALID_LSB                                                7
763*5113495bSYour Name #define RX_ATTENTION_DA_IS_VALID_MSB                                                7
764*5113495bSYour Name #define RX_ATTENTION_DA_IS_VALID_MASK                                               0x0000000000000080
765*5113495bSYour Name 
766*5113495bSYour Name 
767*5113495bSYour Name /* Description		DA_IS_MCBC
768*5113495bSYour Name 
769*5113495bSYour Name 			Field Only valid if "da_is_valid" is set
770*5113495bSYour Name 
771*5113495bSYour Name 			Indicates the DA address was a Multicast of Broadcast address.
772*5113495bSYour Name 
773*5113495bSYour Name */
774*5113495bSYour Name 
775*5113495bSYour Name #define RX_ATTENTION_DA_IS_MCBC_OFFSET                                              0x0000000000000008
776*5113495bSYour Name #define RX_ATTENTION_DA_IS_MCBC_LSB                                                 8
777*5113495bSYour Name #define RX_ATTENTION_DA_IS_MCBC_MSB                                                 8
778*5113495bSYour Name #define RX_ATTENTION_DA_IS_MCBC_MASK                                                0x0000000000000100
779*5113495bSYour Name 
780*5113495bSYour Name 
781*5113495bSYour Name /* Description		SA_IS_VALID
782*5113495bSYour Name 
783*5113495bSYour Name 			Indicates that OLE found a valid SA entry
784*5113495bSYour Name */
785*5113495bSYour Name 
786*5113495bSYour Name #define RX_ATTENTION_SA_IS_VALID_OFFSET                                             0x0000000000000008
787*5113495bSYour Name #define RX_ATTENTION_SA_IS_VALID_LSB                                                9
788*5113495bSYour Name #define RX_ATTENTION_SA_IS_VALID_MSB                                                9
789*5113495bSYour Name #define RX_ATTENTION_SA_IS_VALID_MASK                                               0x0000000000000200
790*5113495bSYour Name 
791*5113495bSYour Name 
792*5113495bSYour Name /* Description		DECRYPT_STATUS_CODE
793*5113495bSYour Name 
794*5113495bSYour Name 			Field provides insight into the decryption performed
795*5113495bSYour Name 
796*5113495bSYour Name 			<enum 0 decrypt_ok> Frame had protection enabled and decrypted
797*5113495bSYour Name 			 properly
798*5113495bSYour Name 			<enum 1 decrypt_unprotected_frame > Frame is unprotected
799*5113495bSYour Name 			 and hence bypassed
800*5113495bSYour Name 			<enum 2 decrypt_data_err > Frame has protection enabled
801*5113495bSYour Name 			and could not be properly decrypted due to MIC/ICV mismatch
802*5113495bSYour Name 			 etc.
803*5113495bSYour Name 			<enum 3 decrypt_key_invalid > Frame has protection enabled
804*5113495bSYour Name 			 but the key that was required to decrypt this frame was
805*5113495bSYour Name 			 not valid
806*5113495bSYour Name 			<enum 4 decrypt_peer_entry_invalid > Frame has protection
807*5113495bSYour Name 			 enabled but the key that was required to decrypt this frame
808*5113495bSYour Name 			 was not valid
809*5113495bSYour Name 			<enum 5 decrypt_other > Reserved for other indications
810*5113495bSYour Name 
811*5113495bSYour Name 			<legal 0 - 5>
812*5113495bSYour Name */
813*5113495bSYour Name 
814*5113495bSYour Name #define RX_ATTENTION_DECRYPT_STATUS_CODE_OFFSET                                     0x0000000000000008
815*5113495bSYour Name #define RX_ATTENTION_DECRYPT_STATUS_CODE_LSB                                        10
816*5113495bSYour Name #define RX_ATTENTION_DECRYPT_STATUS_CODE_MSB                                        12
817*5113495bSYour Name #define RX_ATTENTION_DECRYPT_STATUS_CODE_MASK                                       0x0000000000001c00
818*5113495bSYour Name 
819*5113495bSYour Name 
820*5113495bSYour Name /* Description		RX_BITMAP_NOT_UPDATED
821*5113495bSYour Name 
822*5113495bSYour Name 			Frame is received, but RXPCU could not update the receive
823*5113495bSYour Name 			 bitmap due to (temporary) fifo contraints.
824*5113495bSYour Name 			<legal all>
825*5113495bSYour Name */
826*5113495bSYour Name 
827*5113495bSYour Name #define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_OFFSET                                   0x0000000000000008
828*5113495bSYour Name #define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_LSB                                      13
829*5113495bSYour Name #define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_MSB                                      13
830*5113495bSYour Name #define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_MASK                                     0x0000000000002000
831*5113495bSYour Name 
832*5113495bSYour Name 
833*5113495bSYour Name /* Description		RESERVED_2
834*5113495bSYour Name 
835*5113495bSYour Name 			<legal 0>
836*5113495bSYour Name */
837*5113495bSYour Name 
838*5113495bSYour Name #define RX_ATTENTION_RESERVED_2_OFFSET                                              0x0000000000000008
839*5113495bSYour Name #define RX_ATTENTION_RESERVED_2_LSB                                                 14
840*5113495bSYour Name #define RX_ATTENTION_RESERVED_2_MSB                                                 30
841*5113495bSYour Name #define RX_ATTENTION_RESERVED_2_MASK                                                0x000000007fffc000
842*5113495bSYour Name 
843*5113495bSYour Name 
844*5113495bSYour Name /* Description		MSDU_DONE
845*5113495bSYour Name 
846*5113495bSYour Name 			If set indicates that the RX packet data, RX header data,
847*5113495bSYour Name 			RX PPDU start descriptor, RX MPDU start/end descriptor,
848*5113495bSYour Name 			RX MSDU start/end descriptors and RX Attention descriptor
849*5113495bSYour Name 			 are all valid.  This bit must be in the last octet of the
850*5113495bSYour Name 			 descriptor.
851*5113495bSYour Name */
852*5113495bSYour Name 
853*5113495bSYour Name #define RX_ATTENTION_MSDU_DONE_OFFSET                                               0x0000000000000008
854*5113495bSYour Name #define RX_ATTENTION_MSDU_DONE_LSB                                                  31
855*5113495bSYour Name #define RX_ATTENTION_MSDU_DONE_MSB                                                  31
856*5113495bSYour Name #define RX_ATTENTION_MSDU_DONE_MASK                                                 0x0000000080000000
857*5113495bSYour Name 
858*5113495bSYour Name 
859*5113495bSYour Name /* Description		TLV64_PADDING
860*5113495bSYour Name 
861*5113495bSYour Name 			Automatic DWORD padding inserted while converting TLV32
862*5113495bSYour Name 			to TLV64 for 64 bit ARCH
863*5113495bSYour Name 			<legal 0>
864*5113495bSYour Name */
865*5113495bSYour Name 
866*5113495bSYour Name #define RX_ATTENTION_TLV64_PADDING_OFFSET                                           0x0000000000000008
867*5113495bSYour Name #define RX_ATTENTION_TLV64_PADDING_LSB                                              32
868*5113495bSYour Name #define RX_ATTENTION_TLV64_PADDING_MSB                                              63
869*5113495bSYour Name #define RX_ATTENTION_TLV64_PADDING_MASK                                             0xffffffff00000000
870*5113495bSYour Name 
871*5113495bSYour Name 
872*5113495bSYour Name 
873*5113495bSYour Name #endif   // RX_ATTENTION
874