xref: /wlan-driver/fw-api/hw/qca5332/rxpt_classify_info.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 _RXPT_CLASSIFY_INFO_H_
27*5113495bSYour Name #define _RXPT_CLASSIFY_INFO_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1
32*5113495bSYour Name 
33*5113495bSYour Name 
34*5113495bSYour Name struct rxpt_classify_info {
35*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
36*5113495bSYour Name              uint32_t reo_destination_indication                              :  5, // [4:0]
37*5113495bSYour Name                       lmac_peer_id_msb                                        :  2, // [6:5]
38*5113495bSYour Name                       use_flow_id_toeplitz_clfy                               :  1, // [7:7]
39*5113495bSYour Name                       pkt_selection_fp_ucast_data                             :  1, // [8:8]
40*5113495bSYour Name                       pkt_selection_fp_mcast_data                             :  1, // [9:9]
41*5113495bSYour Name                       pkt_selection_fp_1000                                   :  1, // [10:10]
42*5113495bSYour Name                       rxdma0_source_ring_selection                            :  3, // [13:11]
43*5113495bSYour Name                       rxdma0_destination_ring_selection                       :  3, // [16:14]
44*5113495bSYour Name                       mcast_echo_drop_enable                                  :  1, // [17:17]
45*5113495bSYour Name                       wds_learning_detect_en                                  :  1, // [18:18]
46*5113495bSYour Name                       intrabss_check_en                                       :  1, // [19:19]
47*5113495bSYour Name                       use_ppe                                                 :  1, // [20:20]
48*5113495bSYour Name                       ppe_routing_enable                                      :  1, // [21:21]
49*5113495bSYour Name                       reserved_0b                                             : 10; // [31:22]
50*5113495bSYour Name #else
51*5113495bSYour Name              uint32_t reserved_0b                                             : 10, // [31:22]
52*5113495bSYour Name                       ppe_routing_enable                                      :  1, // [21:21]
53*5113495bSYour Name                       use_ppe                                                 :  1, // [20:20]
54*5113495bSYour Name                       intrabss_check_en                                       :  1, // [19:19]
55*5113495bSYour Name                       wds_learning_detect_en                                  :  1, // [18:18]
56*5113495bSYour Name                       mcast_echo_drop_enable                                  :  1, // [17:17]
57*5113495bSYour Name                       rxdma0_destination_ring_selection                       :  3, // [16:14]
58*5113495bSYour Name                       rxdma0_source_ring_selection                            :  3, // [13:11]
59*5113495bSYour Name                       pkt_selection_fp_1000                                   :  1, // [10:10]
60*5113495bSYour Name                       pkt_selection_fp_mcast_data                             :  1, // [9:9]
61*5113495bSYour Name                       pkt_selection_fp_ucast_data                             :  1, // [8:8]
62*5113495bSYour Name                       use_flow_id_toeplitz_clfy                               :  1, // [7:7]
63*5113495bSYour Name                       lmac_peer_id_msb                                        :  2, // [6:5]
64*5113495bSYour Name                       reo_destination_indication                              :  5; // [4:0]
65*5113495bSYour Name #endif
66*5113495bSYour Name };
67*5113495bSYour Name 
68*5113495bSYour Name 
69*5113495bSYour Name /* Description		REO_DESTINATION_INDICATION
70*5113495bSYour Name 
71*5113495bSYour Name 			The ID of the REO exit ring where the MSDU frame shall push
72*5113495bSYour Name 			 after (MPDU level) reordering has finished.
73*5113495bSYour Name 
74*5113495bSYour Name 			<enum 0 reo_destination_sw0> Reo will push the frame into
75*5113495bSYour Name 			 the REO2SW0 ring
76*5113495bSYour Name 			<enum 1 reo_destination_sw1> Reo will push the frame into
77*5113495bSYour Name 			 the REO2SW1 ring
78*5113495bSYour Name 			<enum 2 reo_destination_sw2> Reo will push the frame into
79*5113495bSYour Name 			 the REO2SW2 ring
80*5113495bSYour Name 			<enum 3 reo_destination_sw3> Reo will push the frame into
81*5113495bSYour Name 			 the REO2SW3 ring
82*5113495bSYour Name 			<enum 4 reo_destination_sw4> Reo will push the frame into
83*5113495bSYour Name 			 the REO2SW4 ring
84*5113495bSYour Name 			<enum 5 reo_destination_release> Reo will push the frame
85*5113495bSYour Name 			 into the REO_release ring
86*5113495bSYour Name 			<enum 6 reo_destination_fw> Reo will push the frame into
87*5113495bSYour Name 			 the REO2FW ring
88*5113495bSYour Name 			<enum 7 reo_destination_sw5> Reo will push the frame into
89*5113495bSYour Name 			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
90*5113495bSYour Name 			 ring, e.g. Pine)
91*5113495bSYour Name 			<enum 8 reo_destination_sw6> Reo will push the frame into
92*5113495bSYour Name 			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
93*5113495bSYour Name 			 ring, e.g. Pine)
94*5113495bSYour Name 			<enum 9 reo_destination_sw7> Reo will push the frame into
95*5113495bSYour Name 			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
96*5113495bSYour Name 			 ring)
97*5113495bSYour Name 			<enum 10 reo_destination_sw8> Reo will push the frame into
98*5113495bSYour Name 			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
99*5113495bSYour Name 			 ring)
100*5113495bSYour Name 			<enum 11 reo_destination_11> REO remaps this
101*5113495bSYour Name 			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13>
102*5113495bSYour Name 			REO remaps this
103*5113495bSYour Name 			<enum 14 reo_destination_14> REO remaps this
104*5113495bSYour Name 			<enum 15 reo_destination_15> REO remaps this
105*5113495bSYour Name 			<enum 16 reo_destination_16> REO remaps this
106*5113495bSYour Name 			<enum 17 reo_destination_17> REO remaps this
107*5113495bSYour Name 			<enum 18 reo_destination_18> REO remaps this
108*5113495bSYour Name 			<enum 19 reo_destination_19> REO remaps this
109*5113495bSYour Name 			<enum 20 reo_destination_20> REO remaps this
110*5113495bSYour Name 			<enum 21 reo_destination_21> REO remaps this
111*5113495bSYour Name 			<enum 22 reo_destination_22> REO remaps this
112*5113495bSYour Name 			<enum 23 reo_destination_23> REO remaps this
113*5113495bSYour Name 			<enum 24 reo_destination_24> REO remaps this
114*5113495bSYour Name 			<enum 25 reo_destination_25> REO remaps this
115*5113495bSYour Name 			<enum 26 reo_destination_26> REO remaps this
116*5113495bSYour Name 			<enum 27 reo_destination_27> REO remaps this
117*5113495bSYour Name 			<enum 28 reo_destination_28> REO remaps this
118*5113495bSYour Name 			<enum 29 reo_destination_29> REO remaps this
119*5113495bSYour Name 			<enum 30 reo_destination_30> REO remaps this
120*5113495bSYour Name 			<enum 31 reo_destination_31> REO remaps this
121*5113495bSYour Name 
122*5113495bSYour Name 			<legal all>
123*5113495bSYour Name */
124*5113495bSYour Name 
125*5113495bSYour Name #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_OFFSET                        0x00000000
126*5113495bSYour Name #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_LSB                           0
127*5113495bSYour Name #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MSB                           4
128*5113495bSYour Name #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MASK                          0x0000001f
129*5113495bSYour Name 
130*5113495bSYour Name 
131*5113495bSYour Name /* Description		LMAC_PEER_ID_MSB
132*5113495bSYour Name 
133*5113495bSYour Name 			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_'sb
134*5113495bSYour Name 			 is 2'b00, Rx OLE uses a REO desination indicati'n of {1'b1,
135*5113495bSYour Name 			hash[3:0]} using the chosen Toeplitz hash from Common Parser
136*5113495bSYour Name 			 if flow search fails.
137*5113495bSYour Name 			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_msb
138*5113495bSYour Name 			 's not 2'b00, Rx OLE uses a REO desination indication of
139*5113495bSYour Name 			 {lmac_peer_id_msb, hash[2:0]} using the chosen Toeplitz
140*5113495bSYour Name 			 hash from Common Parser if flow search fails.
141*5113495bSYour Name 			This LMAC/peer-based routing is not supported in Hastings80
142*5113495bSYour Name 			 and HastingsPrime.
143*5113495bSYour Name 			<legal all>
144*5113495bSYour Name */
145*5113495bSYour Name 
146*5113495bSYour Name #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_OFFSET                                  0x00000000
147*5113495bSYour Name #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_LSB                                     5
148*5113495bSYour Name #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MSB                                     6
149*5113495bSYour Name #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MASK                                    0x00000060
150*5113495bSYour Name 
151*5113495bSYour Name 
152*5113495bSYour Name /* Description		USE_FLOW_ID_TOEPLITZ_CLFY
153*5113495bSYour Name 
154*5113495bSYour Name 			Indication to Rx OLE to enable REO destination routing based
155*5113495bSYour Name 			 on the chosen Toeplitz hash from Common Parser, in case
156*5113495bSYour Name 			 flow search fails
157*5113495bSYour Name 			<legal all>
158*5113495bSYour Name */
159*5113495bSYour Name 
160*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET                         0x00000000
161*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_LSB                            7
162*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MSB                            7
163*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MASK                           0x00000080
164*5113495bSYour Name 
165*5113495bSYour Name 
166*5113495bSYour Name /* Description		PKT_SELECTION_FP_UCAST_DATA
167*5113495bSYour Name 
168*5113495bSYour Name 			Filter pass Unicast data frame (matching rxpcu_filter_pass
169*5113495bSYour Name 			 and sw_frame_group_Unicast_data) routing selection
170*5113495bSYour Name 			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
171*5113495bSYour Name 
172*5113495bSYour Name 			1'b0: source and destination rings are selected from the
173*5113495bSYour Name 			 RxOLE register settings for the packet type
174*5113495bSYour Name 
175*5113495bSYour Name 			1'b1: source ring and destination ring is selected from
176*5113495bSYour Name 			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
177*5113495bSYour Name 			 fields in this STRUCT
178*5113495bSYour Name 			<legal all>
179*5113495bSYour Name */
180*5113495bSYour Name 
181*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_OFFSET                       0x00000000
182*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_LSB                          8
183*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MSB                          8
184*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MASK                         0x00000100
185*5113495bSYour Name 
186*5113495bSYour Name 
187*5113495bSYour Name /* Description		PKT_SELECTION_FP_MCAST_DATA
188*5113495bSYour Name 
189*5113495bSYour Name 			Filter pass Multicast data frame (matching rxpcu_filter_pass
190*5113495bSYour Name 			 and sw_frame_group_Multicast_data) routing selection
191*5113495bSYour Name 			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
192*5113495bSYour Name 
193*5113495bSYour Name 			1'b0: source and destination rings are selected from the
194*5113495bSYour Name 			 RxOLE register settings for the packet type
195*5113495bSYour Name 
196*5113495bSYour Name 			1'b1: source ring and destination ring is selected from
197*5113495bSYour Name 			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
198*5113495bSYour Name 			 fields in this STRUCT
199*5113495bSYour Name 			<legal all>
200*5113495bSYour Name */
201*5113495bSYour Name 
202*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_OFFSET                       0x00000000
203*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_LSB                          9
204*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MSB                          9
205*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MASK                         0x00000200
206*5113495bSYour Name 
207*5113495bSYour Name 
208*5113495bSYour Name /* Description		PKT_SELECTION_FP_1000
209*5113495bSYour Name 
210*5113495bSYour Name 			Filter pass BAR frame (matching rxpcu_filter_pass and sw_frame_group_ctrl_1000)
211*5113495bSYour Name 			routing selection
212*5113495bSYour Name 			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
213*5113495bSYour Name 
214*5113495bSYour Name 			1'b0: source and destination rings are selected from the
215*5113495bSYour Name 			 RxOLE register settings for the packet type
216*5113495bSYour Name 
217*5113495bSYour Name 			1'b1: source ring and destination ring is selected from
218*5113495bSYour Name 			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
219*5113495bSYour Name 			 fields in this STRUCT
220*5113495bSYour Name 			<legal all>
221*5113495bSYour Name */
222*5113495bSYour Name 
223*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_OFFSET                             0x00000000
224*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_LSB                                10
225*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MSB                                10
226*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MASK                               0x00000400
227*5113495bSYour Name 
228*5113495bSYour Name 
229*5113495bSYour Name /* Description		RXDMA0_SOURCE_RING_SELECTION
230*5113495bSYour Name 
231*5113495bSYour Name 			Field only valid when for the received frame type the corresponding
232*5113495bSYour Name 			 pkt_selection_fp_... bit is set
233*5113495bSYour Name 
234*5113495bSYour Name 			<enum 0 sw2rxdma0_0_buf_source_ring> The data buffer for
235*5113495bSYour Name 			 this frame shall be sourced by sw2rxdma0 buffer source
236*5113495bSYour Name 			ring.
237*5113495bSYour Name 			<enum 1 fw2rxdma0_pmac0_buf_source_ring> The data buffer
238*5113495bSYour Name 			 for this frame shall be sourced by fw2rxdma buffer source
239*5113495bSYour Name 			 ring for PMAC0.
240*5113495bSYour Name 			<enum 2 sw2rxdma0_1_buf_source_ring> The data buffer for
241*5113495bSYour Name 			 this frame shall be sourced by sw2rxdma1 buffer source
242*5113495bSYour Name 			ring.
243*5113495bSYour Name 			<enum 3 no_buffer_rxdma0_ring> The frame shall not be written
244*5113495bSYour Name 			 to any data buffer.
245*5113495bSYour Name 			<enum 4 sw2rxdma0_exception_buf_source_ring> The data buffer
246*5113495bSYour Name 			 for this frame shall be sourced by sw2rxdma_exception buffer
247*5113495bSYour Name 			 source ring.
248*5113495bSYour Name 			<enum 5 fw2rxdma0_pmac1_buf_source_ring> The data buffer
249*5113495bSYour Name 			 for this frame shall be sourced by fw2rxdma buffer source
250*5113495bSYour Name 			 ring for PMAC1.
251*5113495bSYour Name 
252*5113495bSYour Name 			<legal 0-5>
253*5113495bSYour Name */
254*5113495bSYour Name 
255*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_OFFSET                      0x00000000
256*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_LSB                         11
257*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MSB                         13
258*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MASK                        0x00003800
259*5113495bSYour Name 
260*5113495bSYour Name 
261*5113495bSYour Name /* Description		RXDMA0_DESTINATION_RING_SELECTION
262*5113495bSYour Name 
263*5113495bSYour Name 			Field only valid when for the received frame type the corresponding
264*5113495bSYour Name 			 pkt_selection_fp_... bit is set
265*5113495bSYour Name 
266*5113495bSYour Name 			<enum 0  rxdma_release_ring> RXDMA0 shall push the frame
267*5113495bSYour Name 			 to the Release ring. Effectively this means the frame needs
268*5113495bSYour Name 			 to be dropped.
269*5113495bSYour Name 			<enum 1  rxdma2fw_pmac0_ring> RXDMA0 shall push the frame
270*5113495bSYour Name 			 to the FW ring for PMAC0.
271*5113495bSYour Name 			<enum 2  rxdma2sw_ring> RXDMA0 shall push the frame to the
272*5113495bSYour Name 			 SW ring.
273*5113495bSYour Name 			<enum 3  rxdma2reo_ring> RXDMA0 shall push the frame to
274*5113495bSYour Name 			the REO entrance ring.
275*5113495bSYour Name 			<enum 4  rxdma2fw_pmac1_ring> RXDMA0 shall push the frame
276*5113495bSYour Name 			 to the FW ring for PMAC1.
277*5113495bSYour Name 			<enum 5 rxdma2reo_remote0_ring> RXDMA0 shall push the frame
278*5113495bSYour Name 			 to the first MLO REO entrance ring.
279*5113495bSYour Name 			<enum 6 rxdma2reo_remote1_ring> RXDMA0 shall push the frame
280*5113495bSYour Name 			 to the second MLO REO entrance ring.
281*5113495bSYour Name 
282*5113495bSYour Name 			<legal 0-6>
283*5113495bSYour Name */
284*5113495bSYour Name 
285*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_OFFSET                 0x00000000
286*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_LSB                    14
287*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MSB                    16
288*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MASK                   0x0001c000
289*5113495bSYour Name 
290*5113495bSYour Name 
291*5113495bSYour Name /* Description		MCAST_ECHO_DROP_ENABLE
292*5113495bSYour Name 
293*5113495bSYour Name 			If set, for multicast packets, multicast echo check (i.e.
294*5113495bSYour Name 			SA search with mcast_echo_check = 1) shall be performed
295*5113495bSYour Name 			by RXOLE, and any multicast echo packets should be indicated
296*5113495bSYour Name 			 to RXDMA for release to WBM
297*5113495bSYour Name 
298*5113495bSYour Name 			<legal all>
299*5113495bSYour Name */
300*5113495bSYour Name 
301*5113495bSYour Name #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_OFFSET                            0x00000000
302*5113495bSYour Name #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_LSB                               17
303*5113495bSYour Name #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MSB                               17
304*5113495bSYour Name #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MASK                              0x00020000
305*5113495bSYour Name 
306*5113495bSYour Name 
307*5113495bSYour Name /* Description		WDS_LEARNING_DETECT_EN
308*5113495bSYour Name 
309*5113495bSYour Name 			If set, WDS learning detection based on SA search and notification
310*5113495bSYour Name 			 to FW (using RXDMA0 status ring) is enabled and the "timestamp"
311*5113495bSYour Name 			field in address search failure cache-only entry should
312*5113495bSYour Name 			be used to avoid multiple WDS learning notifications.
313*5113495bSYour Name 
314*5113495bSYour Name 			<legal all>
315*5113495bSYour Name */
316*5113495bSYour Name 
317*5113495bSYour Name #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_OFFSET                            0x00000000
318*5113495bSYour Name #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_LSB                               18
319*5113495bSYour Name #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MSB                               18
320*5113495bSYour Name #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MASK                              0x00040000
321*5113495bSYour Name 
322*5113495bSYour Name 
323*5113495bSYour Name /* Description		INTRABSS_CHECK_EN
324*5113495bSYour Name 
325*5113495bSYour Name 			If set, intra-BSS routing detection is enabled
326*5113495bSYour Name 
327*5113495bSYour Name 			<legal all>
328*5113495bSYour Name */
329*5113495bSYour Name 
330*5113495bSYour Name #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_OFFSET                                 0x00000000
331*5113495bSYour Name #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_LSB                                    19
332*5113495bSYour Name #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MSB                                    19
333*5113495bSYour Name #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MASK                                   0x00080000
334*5113495bSYour Name 
335*5113495bSYour Name 
336*5113495bSYour Name /* Description		USE_PPE
337*5113495bSYour Name 
338*5113495bSYour Name 			Indicates to RXDMA to ignore the REO_destination_indication
339*5113495bSYour Name 			 and use a programmed value corresponding to the REO2PPE
340*5113495bSYour Name 			 ring
341*5113495bSYour Name 
342*5113495bSYour Name 			This override to REO2PPE for packets requiring multiple
343*5113495bSYour Name 			buffers shall be disabled based on an RXDMA configuration,
344*5113495bSYour Name 			as PPE may not support such packets.
345*5113495bSYour Name 
346*5113495bSYour Name 			Supported only in full AP chips like Waikiki, not in client/soft
347*5113495bSYour Name 			 AP chips like Hamilton
348*5113495bSYour Name 			<legal all>
349*5113495bSYour Name */
350*5113495bSYour Name 
351*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_PPE_OFFSET                                           0x00000000
352*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_PPE_LSB                                              20
353*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_PPE_MSB                                              20
354*5113495bSYour Name #define RXPT_CLASSIFY_INFO_USE_PPE_MASK                                             0x00100000
355*5113495bSYour Name 
356*5113495bSYour Name 
357*5113495bSYour Name /* Description		PPE_ROUTING_ENABLE
358*5113495bSYour Name 
359*5113495bSYour Name 			Global enable/disable bit for routing to PPE, used to disable
360*5113495bSYour Name 			 PPE routing even if RXOLE CCE or flow search indicate 'Use_PPE'
361*5113495bSYour Name 
362*5113495bSYour Name 
363*5113495bSYour Name 			This is set by SW for peers which are being handled by a
364*5113495bSYour Name 			 host SW/accelerator subsystem that also handles packet
365*5113495bSYour Name 			buffer management for WiFi-to-PPE routing.
366*5113495bSYour Name 
367*5113495bSYour Name 			This is cleared by SW for peers which are being handled
368*5113495bSYour Name 			by a different subsystem, completely disabling WiFi-to-PPE
369*5113495bSYour Name 			 routing for such peers.
370*5113495bSYour Name 
371*5113495bSYour Name 			<legal all>
372*5113495bSYour Name */
373*5113495bSYour Name 
374*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_OFFSET                                0x00000000
375*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_LSB                                   21
376*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MSB                                   21
377*5113495bSYour Name #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MASK                                  0x00200000
378*5113495bSYour Name 
379*5113495bSYour Name 
380*5113495bSYour Name /* Description		RESERVED_0B
381*5113495bSYour Name 
382*5113495bSYour Name 			<legal 0>
383*5113495bSYour Name */
384*5113495bSYour Name 
385*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RESERVED_0B_OFFSET                                       0x00000000
386*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RESERVED_0B_LSB                                          22
387*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RESERVED_0B_MSB                                          31
388*5113495bSYour Name #define RXPT_CLASSIFY_INFO_RESERVED_0B_MASK                                         0xffc00000
389*5113495bSYour Name 
390*5113495bSYour Name 
391*5113495bSYour Name 
392*5113495bSYour Name #endif   // RXPT_CLASSIFY_INFO
393