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