net/bnxt: add Tx TruFlow table config for P4 device
[dpdk.git] / drivers / net / iavf / iavf_ipsec_crypto_capabilities.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation
3  */
4
5 #ifndef _IAVF_IPSEC_CRYPTO_CAPABILITIES_H_
6 #define _IAVF_IPSEC_CRYPTO_CAPABILITIES_H_
7
8 static const struct rte_cryptodev_capabilities iavf_crypto_capabilities[] = {
9         {       /* SHA1 HMAC */
10                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
11                 {.sym = {
12                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
13                         {.auth = {
14                                 .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
15                                 .block_size = 64,
16                                 .key_size = {
17                                         .min = 1,
18                                         .max = 64,
19                                         .increment = 1
20                                 },
21                                 .digest_size = {
22                                         .min = 20,
23                                         .max = 20,
24                                         .increment = 0
25                                 },
26                                 .iv_size = { 0 }
27                         }, }
28                 }, }
29         },
30         {       /* SHA256 HMAC */
31                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
32                 {.sym = {
33                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
34                         {.auth = {
35                                 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
36                                 .block_size = 64,
37                                 .key_size = {
38                                         .min = 1,
39                                         .max = 64,
40                                         .increment = 1
41                                 },
42                                 .digest_size = {
43                                         .min = 32,
44                                         .max = 32,
45                                         .increment = 0
46                                 },
47                                 .iv_size = { 0 }
48                         }, }
49                 }, }
50         },
51         {       /* SHA384 HMAC */
52                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
53                 {.sym = {
54                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
55                         {.auth = {
56                                 .algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
57                                 .block_size = 128,
58                                 .key_size = {
59                                         .min = 1,
60                                         .max = 128,
61                                         .increment = 1
62                                 },
63                                 .digest_size = {
64                                         .min = 48,
65                                         .max = 48,
66                                         .increment = 0
67                                 },
68                                 .iv_size = { 0 }
69                         }, }
70                 }, }
71         },
72         {       /* SHA512 HMAC */
73                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
74                 {.sym = {
75                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
76                         {.auth = {
77                                 .algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
78                                 .block_size = 128,
79                                 .key_size = {
80                                         .min = 1,
81                                         .max = 128,
82                                         .increment = 1
83                                 },
84                                 .digest_size = {
85                                         .min = 64,
86                                         .max = 64,
87                                         .increment = 0
88                                 },
89                                 .iv_size = { 0 }
90                         }, }
91                 }, }
92         },
93         {       /* MD5 HMAC */
94                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
95                 {.sym = {
96                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
97                         {.auth = {
98                                 .algo = RTE_CRYPTO_AUTH_MD5_HMAC,
99                                 .block_size = 64,
100                                 .key_size = {
101                                         .min = 1,
102                                         .max = 64,
103                                         .increment = 1
104                                 },
105                                 .digest_size = {
106                                         .min = 16,
107                                         .max = 16,
108                                         .increment = 0
109                                 },
110                                 .iv_size = { 0 }
111                         }, }
112                 }, }
113         },
114         {       /* AES XCBC MAC */
115                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
116                 {.sym = {
117                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
118                         {.auth = {
119                                 .algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
120                                 .block_size = 16,
121                                 .key_size = {
122                                         .min = 16,
123                                         .max = 16,
124                                         .increment = 0
125                                 },
126                                 .digest_size = {
127                                         .min = 16,
128                                         .max = 16,
129                                         .increment = 0
130                                 },
131                                 .aad_size = { 0 },
132                                 .iv_size = { 0 }
133                         }, }
134                 }, }
135         },
136         {       /* AES GCM */
137                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
138                 {.sym = {
139                         .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
140                         {.aead = {
141                                 .algo = RTE_CRYPTO_AEAD_AES_GCM,
142                                 .block_size = 16,
143                                 .key_size = {
144                                         .min = 16,
145                                         .max = 32,
146                                         .increment = 8
147                                 },
148                                 .digest_size = {
149                                         .min = 8,
150                                         .max = 16,
151                                         .increment = 4
152                                 },
153                                 .aad_size = {
154                                         .min = 0,
155                                         .max = 240,
156                                         .increment = 1
157                                 },
158                                 .iv_size = {
159                                         .min = 8,
160                                         .max = 8,
161                                         .increment = 0
162                                 },
163                         }, }
164                 }, }
165         },
166         {       /* ChaCha20-Poly1305 */
167                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
168                 {.sym = {
169                         .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
170                         {.aead = {
171                                 .algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305,
172                                 .block_size = 16,
173                                 .key_size = {
174                                         .min = 32,
175                                         .max = 32,
176                                         .increment = 0
177                                 },
178                                 .digest_size = {
179                                         .min = 8,
180                                         .max = 16,
181                                         .increment = 4
182                                 },
183                                 .aad_size = {
184                                         .min = 0,
185                                         .max = 240,
186                                         .increment = 1
187                                 },
188                                 .iv_size = {
189                                         .min = 12,
190                                         .max = 12,
191                                         .increment = 0
192                                 },
193                         }, }
194                 }, }
195         },
196         {       /* AES CCM */
197                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
198                 {.sym = {
199                         .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
200                         {.aead = {
201                                 .algo = RTE_CRYPTO_AEAD_AES_CCM,
202                                 .block_size = 16,
203                                 .key_size = {
204                                         .min = 16,
205                                         .max = 32,
206                                         .increment = 8
207                                 },
208                                 .digest_size = {
209                                         .min = 8,
210                                         .max = 16,
211                                         .increment = 4
212                                 },
213                                 .aad_size = {
214                                         .min = 0,
215                                         .max = 240,
216                                         .increment = 1
217                                 },
218                                 .iv_size = {
219                                         .min = 12,
220                                         .max = 12,
221                                         .increment = 0
222                                 },
223                         }, }
224                 }, }
225         },
226         {       /* AES GMAC (AUTH) */
227                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
228                 {.sym = {
229                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
230                         {.auth = {
231                                 .algo = RTE_CRYPTO_AUTH_AES_GMAC,
232                                 .block_size = 16,
233                                 .key_size = {
234                                         .min = 16,
235                                         .max = 32,
236                                         .increment = 8
237                                 },
238                                 .digest_size = {
239                                         .min = 8,
240                                         .max = 16,
241                                         .increment = 4
242                                 },
243                                 .iv_size = {
244                                         .min = 12,
245                                         .max = 12,
246                                         .increment = 0
247                                 }
248                         }, }
249                 }, }
250         },
251         {       /* AES CMAC (AUTH) */
252                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
253                 {.sym = {
254                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
255                         {.auth = {
256                                 .algo = RTE_CRYPTO_AUTH_AES_CMAC,
257                                 .block_size = 16,
258                                 .key_size = {
259                                         .min = 16,
260                                         .max = 32,
261                                         .increment = 8
262                                 },
263                                 .digest_size = {
264                                         .min = 8,
265                                         .max = 16,
266                                         .increment = 4
267                                 },
268                                 .iv_size = {
269                                         .min = 12,
270                                         .max = 12,
271                                         .increment = 0
272                                 }
273                         }, }
274                 }, }
275         },
276         {       /* AES CBC */
277                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
278                 {.sym = {
279                         .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
280                         {.cipher = {
281                                 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
282                                 .block_size = 16,
283                                 .key_size = {
284                                         .min = 16,
285                                         .max = 32,
286                                         .increment = 8
287                                 },
288                                 .iv_size = {
289                                         .min = 16,
290                                         .max = 16,
291                                         .increment = 0
292                                 }
293                         }, }
294                 }, }
295         },
296         {       /* AES CTR */
297                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
298                 {.sym = {
299                         .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
300                         {.cipher = {
301                                 .algo = RTE_CRYPTO_CIPHER_AES_CTR,
302                                 .block_size = 16,
303                                 .key_size = {
304                                         .min = 16,
305                                         .max = 32,
306                                         .increment = 8
307                                 },
308                                 .iv_size = {
309                                         .min = 8,
310                                         .max = 8,
311                                         .increment = 0
312                                 }
313                         }, }
314                 }, }
315         },
316         {       /* NULL (AUTH) */
317                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
318                 {.sym = {
319                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
320                         {.auth = {
321                                 .algo = RTE_CRYPTO_AUTH_NULL,
322                                 .block_size = 1,
323                                 .key_size = {
324                                         .min = 0,
325                                         .max = 0,
326                                         .increment = 0
327                                 },
328                                 .digest_size = {
329                                         .min = 0,
330                                         .max = 0,
331                                         .increment = 0
332                                 },
333                                 .iv_size = { 0 }
334                         }, },
335                 }, },
336         },
337         {       /* NULL (CIPHER) */
338                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
339                 {.sym = {
340                         .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
341                         {.cipher = {
342                                 .algo = RTE_CRYPTO_CIPHER_NULL,
343                                 .block_size = 1,
344                                 .key_size = {
345                                         .min = 0,
346                                         .max = 0,
347                                         .increment = 0
348                                 },
349                                 .iv_size = {
350                                         .min = 0,
351                                         .max = 0,
352                                         .increment = 0
353                                 }
354                         }, },
355                 }, }
356         },
357         {       /* 3DES CBC */
358                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
359                 {.sym = {
360                         .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
361                         {.cipher = {
362                                 .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
363                                 .block_size = 8,
364                                 .key_size = {
365                                         .min = 24,
366                                         .max = 24,
367                                         .increment = 0
368                                 },
369                                 .iv_size = {
370                                         .min = 8,
371                                         .max = 8,
372                                         .increment = 0
373                                 }
374                         }, }
375                 }, }
376         },
377         {
378                 .op = RTE_CRYPTO_OP_TYPE_UNDEFINED,
379         }
380 };
381
382
383 #endif /* _IAVF_IPSEC_CRYPTO_CAPABILITIES_H_ */