1 /*
2  * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #ifndef _RXPT_CLASSIFY_INFO_H_
20 #define _RXPT_CLASSIFY_INFO_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 
25 // ################ START SUMMARY #################
26 //
27 //	Dword	Fields
28 //	0	reo_destination_indication[4:0], use_toeplitz_hash_2_clfy[5], use_toeplitz_hash_4_clfy[6], use_flow_id_toeplitz_clfy[7], reserved_0a[31:8]
29 //
30 // ################ END SUMMARY #################
31 
32 #define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1
33 
34 struct rxpt_classify_info {
35              uint32_t reo_destination_indication      :  5, //[4:0]
36                       use_toeplitz_hash_2_clfy        :  1, //[5]
37                       use_toeplitz_hash_4_clfy        :  1, //[6]
38                       use_flow_id_toeplitz_clfy       :  1, //[7]
39                       reserved_0a                     : 24; //[31:8]
40 };
41 
42 /*
43 
44 reo_destination_indication
45 
46 			The ID of the REO exit ring where the MSDU frame shall
47 			push after (MPDU level) reordering has finished.
48 
49 
50 
51 			<enum 0 reo_destination_tcl> Reo will push the frame
52 			into the REO2TCL ring
53 
54 			<enum 1 reo_destination_sw1> Reo will push the frame
55 			into the REO2SW1 ring
56 
57 			<enum 2 reo_destination_sw2> Reo will push the frame
58 			into the REO2SW1 ring
59 
60 			<enum 3 reo_destination_sw3> Reo will push the frame
61 			into the REO2SW1 ring
62 
63 			<enum 4 reo_destination_sw4> Reo will push the frame
64 			into the REO2SW1 ring
65 
66 			<enum 5 reo_destination_release> Reo will push the frame
67 			into the REO_release ring
68 
69 			<enum 6 reo_destination_fw> Reo will push the frame into
70 			the REO2FW ring
71 
72 			<enum 7 reo_destination_7> REO remaps this
73 
74 			<enum 8 reo_destination_8> REO remaps this <enum 9
75 			reo_destination_9> REO remaps this <enum 10
76 			reo_destination_10> REO remaps this
77 
78 			<enum 11 reo_destination_11> REO remaps this
79 
80 			<enum 12 reo_destination_12> REO remaps this <enum 13
81 			reo_destination_13> REO remaps this
82 
83 			<enum 14 reo_destination_14> REO remaps this
84 
85 			<enum 15 reo_destination_15> REO remaps this
86 
87 			<enum 16 reo_destination_16> REO remaps this
88 
89 			<enum 17 reo_destination_17> REO remaps this
90 
91 			<enum 18 reo_destination_18> REO remaps this
92 
93 			<enum 19 reo_destination_19> REO remaps this
94 
95 			<enum 20 reo_destination_20> REO remaps this
96 
97 			<enum 21 reo_destination_21> REO remaps this
98 
99 			<enum 22 reo_destination_22> REO remaps this
100 
101 			<enum 23 reo_destination_23> REO remaps this
102 
103 			<enum 24 reo_destination_24> REO remaps this
104 
105 			<enum 25 reo_destination_25> REO remaps this
106 
107 			<enum 26 reo_destination_26> REO remaps this
108 
109 			<enum 27 reo_destination_27> REO remaps this
110 
111 			<enum 28 reo_destination_28> REO remaps this
112 
113 			<enum 29 reo_destination_29> REO remaps this
114 
115 			<enum 30 reo_destination_30> REO remaps this
116 
117 			<enum 31 reo_destination_31> REO remaps this
118 
119 
120 
121 			<legal all>
122 
123 use_toeplitz_hash_2_clfy
124 
125 			indication to Rx OLE to enable classification based on
126 			'hash_2_toeplitz' .
127 
128 			<legal all>
129 
130 use_toeplitz_hash_4_clfy
131 
132 			indication to Rx OLE to enable classification based on
133 			'hash_4_toeplitz' .
134 
135 			<legal all>
136 
137 use_flow_id_toeplitz_clfy
138 
139 			indication to Rx OLE to enable classification based on
140 			'flow_id_toeplitz' from Common Parser, in case flow search
141 			fails
142 
143 			<legal all>
144 
145 reserved_0a
146 
147 			<legal 0>
148 */
149 
150 
151 /* Description		RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION
152 
153 			The ID of the REO exit ring where the MSDU frame shall
154 			push after (MPDU level) reordering has finished.
155 
156 
157 
158 			<enum 0 reo_destination_tcl> Reo will push the frame
159 			into the REO2TCL ring
160 
161 			<enum 1 reo_destination_sw1> Reo will push the frame
162 			into the REO2SW1 ring
163 
164 			<enum 2 reo_destination_sw2> Reo will push the frame
165 			into the REO2SW1 ring
166 
167 			<enum 3 reo_destination_sw3> Reo will push the frame
168 			into the REO2SW1 ring
169 
170 			<enum 4 reo_destination_sw4> Reo will push the frame
171 			into the REO2SW1 ring
172 
173 			<enum 5 reo_destination_release> Reo will push the frame
174 			into the REO_release ring
175 
176 			<enum 6 reo_destination_fw> Reo will push the frame into
177 			the REO2FW ring
178 
179 			<enum 7 reo_destination_7> REO remaps this
180 
181 			<enum 8 reo_destination_8> REO remaps this <enum 9
182 			reo_destination_9> REO remaps this <enum 10
183 			reo_destination_10> REO remaps this
184 
185 			<enum 11 reo_destination_11> REO remaps this
186 
187 			<enum 12 reo_destination_12> REO remaps this <enum 13
188 			reo_destination_13> REO remaps this
189 
190 			<enum 14 reo_destination_14> REO remaps this
191 
192 			<enum 15 reo_destination_15> REO remaps this
193 
194 			<enum 16 reo_destination_16> REO remaps this
195 
196 			<enum 17 reo_destination_17> REO remaps this
197 
198 			<enum 18 reo_destination_18> REO remaps this
199 
200 			<enum 19 reo_destination_19> REO remaps this
201 
202 			<enum 20 reo_destination_20> REO remaps this
203 
204 			<enum 21 reo_destination_21> REO remaps this
205 
206 			<enum 22 reo_destination_22> REO remaps this
207 
208 			<enum 23 reo_destination_23> REO remaps this
209 
210 			<enum 24 reo_destination_24> REO remaps this
211 
212 			<enum 25 reo_destination_25> REO remaps this
213 
214 			<enum 26 reo_destination_26> REO remaps this
215 
216 			<enum 27 reo_destination_27> REO remaps this
217 
218 			<enum 28 reo_destination_28> REO remaps this
219 
220 			<enum 29 reo_destination_29> REO remaps this
221 
222 			<enum 30 reo_destination_30> REO remaps this
223 
224 			<enum 31 reo_destination_31> REO remaps this
225 
226 
227 
228 			<legal all>
229 */
230 #define RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION_OFFSET       0x00000000
231 #define RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION_LSB          0
232 #define RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION_MASK         0x0000001f
233 
234 /* Description		RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_2_CLFY
235 
236 			indication to Rx OLE to enable classification based on
237 			'hash_2_toeplitz' .
238 
239 			<legal all>
240 */
241 #define RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_2_CLFY_OFFSET         0x00000000
242 #define RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_2_CLFY_LSB            5
243 #define RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_2_CLFY_MASK           0x00000020
244 
245 /* Description		RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_4_CLFY
246 
247 			indication to Rx OLE to enable classification based on
248 			'hash_4_toeplitz' .
249 
250 			<legal all>
251 */
252 #define RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_4_CLFY_OFFSET         0x00000000
253 #define RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_4_CLFY_LSB            6
254 #define RXPT_CLASSIFY_INFO_0_USE_TOEPLITZ_HASH_4_CLFY_MASK           0x00000040
255 
256 /* Description		RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY
257 
258 			indication to Rx OLE to enable classification based on
259 			'flow_id_toeplitz' from Common Parser, in case flow search
260 			fails
261 
262 			<legal all>
263 */
264 #define RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET        0x00000000
265 #define RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY_LSB           7
266 #define RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY_MASK          0x00000080
267 
268 /* Description		RXPT_CLASSIFY_INFO_0_RESERVED_0A
269 
270 			<legal 0>
271 */
272 #define RXPT_CLASSIFY_INFO_0_RESERVED_0A_OFFSET                      0x00000000
273 #define RXPT_CLASSIFY_INFO_0_RESERVED_0A_LSB                         8
274 #define RXPT_CLASSIFY_INFO_0_RESERVED_0A_MASK                        0xffffff00
275 
276 
277 #endif // _RXPT_CLASSIFY_INFO_H_
278