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