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