xref: /dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h (revision 0fbd75a99fc9d2c8c7618d677d3f50fb9872b80c)
1623326ddSAkhil Goyal /*-
2623326ddSAkhil Goyal  *   BSD LICENSE
3623326ddSAkhil Goyal  *
4623326ddSAkhil Goyal  *   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
5623326ddSAkhil Goyal  *   Copyright (c) 2016 NXP. All rights reserved.
6623326ddSAkhil Goyal  *
7623326ddSAkhil Goyal  *   Redistribution and use in source and binary forms, with or without
8623326ddSAkhil Goyal  *   modification, are permitted provided that the following conditions
9623326ddSAkhil Goyal  *   are met:
10623326ddSAkhil Goyal  *
11623326ddSAkhil Goyal  *     * Redistributions of source code must retain the above copyright
12623326ddSAkhil Goyal  *       notice, this list of conditions and the following disclaimer.
13623326ddSAkhil Goyal  *     * Redistributions in binary form must reproduce the above copyright
14623326ddSAkhil Goyal  *       notice, this list of conditions and the following disclaimer in
15623326ddSAkhil Goyal  *       the documentation and/or other materials provided with the
16623326ddSAkhil Goyal  *       distribution.
17623326ddSAkhil Goyal  *     * Neither the name of  Freescale Semiconductor, Inc nor the names of its
18623326ddSAkhil Goyal  *       contributors may be used to endorse or promote products derived
19623326ddSAkhil Goyal  *       from this software without specific prior written permission.
20623326ddSAkhil Goyal  *
21623326ddSAkhil Goyal  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22623326ddSAkhil Goyal  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23623326ddSAkhil Goyal  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24623326ddSAkhil Goyal  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25623326ddSAkhil Goyal  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26623326ddSAkhil Goyal  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27623326ddSAkhil Goyal  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28623326ddSAkhil Goyal  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29623326ddSAkhil Goyal  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30623326ddSAkhil Goyal  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31623326ddSAkhil Goyal  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32623326ddSAkhil Goyal  */
33623326ddSAkhil Goyal 
34623326ddSAkhil Goyal #ifndef _RTE_DPAA2_SEC_PMD_PRIVATE_H_
35623326ddSAkhil Goyal #define _RTE_DPAA2_SEC_PMD_PRIVATE_H_
36623326ddSAkhil Goyal 
378d1f3a5dSAkhil Goyal #define MAX_QUEUES		64
388d1f3a5dSAkhil Goyal #define MAX_DESC_SIZE		64
39623326ddSAkhil Goyal /** private data structure for each DPAA2_SEC device */
40623326ddSAkhil Goyal struct dpaa2_sec_dev_private {
41623326ddSAkhil Goyal 	void *mc_portal; /**< MC Portal for configuring this device */
42623326ddSAkhil Goyal 	void *hw; /**< Hardware handle for this device.Used by NADK framework */
43623326ddSAkhil Goyal 	int32_t hw_id; /**< An unique ID of this device instance */
44623326ddSAkhil Goyal 	int32_t vfio_fd; /**< File descriptor received via VFIO */
45623326ddSAkhil Goyal 	uint16_t token; /**< Token required by DPxxx objects */
46623326ddSAkhil Goyal 	unsigned int max_nb_queue_pairs;
47623326ddSAkhil Goyal 	/**< Max number of queue pairs supported by device */
48623326ddSAkhil Goyal 	unsigned int max_nb_sessions;
49623326ddSAkhil Goyal 	/**< Max number of sessions supported by device */
50623326ddSAkhil Goyal };
51623326ddSAkhil Goyal 
52623326ddSAkhil Goyal struct dpaa2_sec_qp {
53623326ddSAkhil Goyal 	struct dpaa2_queue rx_vq;
54623326ddSAkhil Goyal 	struct dpaa2_queue tx_vq;
55623326ddSAkhil Goyal };
56623326ddSAkhil Goyal 
578d1f3a5dSAkhil Goyal enum shr_desc_type {
588d1f3a5dSAkhil Goyal 	DESC_UPDATE,
598d1f3a5dSAkhil Goyal 	DESC_FINAL,
608d1f3a5dSAkhil Goyal 	DESC_INITFINAL,
618d1f3a5dSAkhil Goyal };
628d1f3a5dSAkhil Goyal 
638d1f3a5dSAkhil Goyal #define DIR_ENC                 1
648d1f3a5dSAkhil Goyal #define DIR_DEC                 0
658d1f3a5dSAkhil Goyal 
668d1f3a5dSAkhil Goyal /* SEC Flow Context Descriptor */
678d1f3a5dSAkhil Goyal struct sec_flow_context {
688d1f3a5dSAkhil Goyal 	/* word 0 */
698d1f3a5dSAkhil Goyal 	uint16_t word0_sdid;		/* 11-0  SDID */
708d1f3a5dSAkhil Goyal 	uint16_t word0_res;		/* 31-12 reserved */
718d1f3a5dSAkhil Goyal 
728d1f3a5dSAkhil Goyal 	/* word 1 */
738d1f3a5dSAkhil Goyal 	uint8_t word1_sdl;		/* 5-0 SDL */
748d1f3a5dSAkhil Goyal 					/* 7-6 reserved */
758d1f3a5dSAkhil Goyal 
768d1f3a5dSAkhil Goyal 	uint8_t word1_bits_15_8;        /* 11-8 CRID */
778d1f3a5dSAkhil Goyal 					/* 14-12 reserved */
788d1f3a5dSAkhil Goyal 					/* 15 CRJD */
798d1f3a5dSAkhil Goyal 
808d1f3a5dSAkhil Goyal 	uint8_t word1_bits23_16;	/* 16  EWS */
818d1f3a5dSAkhil Goyal 					/* 17 DAC */
828d1f3a5dSAkhil Goyal 					/* 18,19,20 ? */
838d1f3a5dSAkhil Goyal 					/* 23-21 reserved */
848d1f3a5dSAkhil Goyal 
858d1f3a5dSAkhil Goyal 	uint8_t word1_bits31_24;	/* 24 RSC */
868d1f3a5dSAkhil Goyal 					/* 25 RBMT */
878d1f3a5dSAkhil Goyal 					/* 31-26 reserved */
888d1f3a5dSAkhil Goyal 
898d1f3a5dSAkhil Goyal 	/* word 2  RFLC[31-0] */
908d1f3a5dSAkhil Goyal 	uint32_t word2_rflc_31_0;
918d1f3a5dSAkhil Goyal 
928d1f3a5dSAkhil Goyal 	/* word 3  RFLC[63-32] */
938d1f3a5dSAkhil Goyal 	uint32_t word3_rflc_63_32;
948d1f3a5dSAkhil Goyal 
958d1f3a5dSAkhil Goyal 	/* word 4 */
968d1f3a5dSAkhil Goyal 	uint16_t word4_iicid;		/* 15-0  IICID */
978d1f3a5dSAkhil Goyal 	uint16_t word4_oicid;		/* 31-16 OICID */
988d1f3a5dSAkhil Goyal 
998d1f3a5dSAkhil Goyal 	/* word 5 */
1008d1f3a5dSAkhil Goyal 	uint32_t word5_ofqid:24;		/* 23-0 OFQID */
1018d1f3a5dSAkhil Goyal 	uint32_t word5_31_24:8;
1028d1f3a5dSAkhil Goyal 					/* 24 OSC */
1038d1f3a5dSAkhil Goyal 					/* 25 OBMT */
1048d1f3a5dSAkhil Goyal 					/* 29-26 reserved */
1058d1f3a5dSAkhil Goyal 					/* 31-30 ICR */
1068d1f3a5dSAkhil Goyal 
1078d1f3a5dSAkhil Goyal 	/* word 6 */
1088d1f3a5dSAkhil Goyal 	uint32_t word6_oflc_31_0;
1098d1f3a5dSAkhil Goyal 
1108d1f3a5dSAkhil Goyal 	/* word 7 */
1118d1f3a5dSAkhil Goyal 	uint32_t word7_oflc_63_32;
1128d1f3a5dSAkhil Goyal 
1138d1f3a5dSAkhil Goyal 	/* Word 8-15 storage profiles */
1148d1f3a5dSAkhil Goyal 	uint16_t dl;			/**<  DataLength(correction) */
1158d1f3a5dSAkhil Goyal 	uint16_t reserved;		/**< reserved */
1168d1f3a5dSAkhil Goyal 	uint16_t dhr;			/**< DataHeadRoom(correction) */
1178d1f3a5dSAkhil Goyal 	uint16_t mode_bits;		/**< mode bits */
1188d1f3a5dSAkhil Goyal 	uint16_t bpv0;			/**< buffer pool0 valid */
1198d1f3a5dSAkhil Goyal 	uint16_t bpid0;			/**< Bypass Memory Translation */
1208d1f3a5dSAkhil Goyal 	uint16_t bpv1;			/**< buffer pool1 valid */
1218d1f3a5dSAkhil Goyal 	uint16_t bpid1;			/**< Bypass Memory Translation */
1228d1f3a5dSAkhil Goyal 	uint64_t word_12_15[2];		/**< word 12-15 are reserved */
1238d1f3a5dSAkhil Goyal };
1248d1f3a5dSAkhil Goyal 
1258d1f3a5dSAkhil Goyal struct sec_flc_desc {
1268d1f3a5dSAkhil Goyal 	struct sec_flow_context flc;
1278d1f3a5dSAkhil Goyal 	uint32_t desc[MAX_DESC_SIZE];
1288d1f3a5dSAkhil Goyal };
1298d1f3a5dSAkhil Goyal 
1308d1f3a5dSAkhil Goyal struct ctxt_priv {
1318d1f3a5dSAkhil Goyal 	struct sec_flc_desc flc_desc[0];
1328d1f3a5dSAkhil Goyal };
1338d1f3a5dSAkhil Goyal 
1348d1f3a5dSAkhil Goyal enum dpaa2_sec_op_type {
1358d1f3a5dSAkhil Goyal 	DPAA2_SEC_NONE,  /*!< No Cipher operations*/
1368d1f3a5dSAkhil Goyal 	DPAA2_SEC_CIPHER,/*!< CIPHER operations */
1378d1f3a5dSAkhil Goyal 	DPAA2_SEC_AUTH,  /*!< Authentication Operations */
1388d1f3a5dSAkhil Goyal 	DPAA2_SEC_CIPHER_HASH,  /*!< Authenticated Encryption with
1398d1f3a5dSAkhil Goyal 				 * associated data
1408d1f3a5dSAkhil Goyal 				 */
1418d1f3a5dSAkhil Goyal 	DPAA2_SEC_HASH_CIPHER,  /*!< Encryption with Authenticated
1428d1f3a5dSAkhil Goyal 				 * associated data
1438d1f3a5dSAkhil Goyal 				 */
1448d1f3a5dSAkhil Goyal 	DPAA2_SEC_IPSEC, /*!< IPSEC protocol operations*/
1458d1f3a5dSAkhil Goyal 	DPAA2_SEC_PDCP,  /*!< PDCP protocol operations*/
1468d1f3a5dSAkhil Goyal 	DPAA2_SEC_PKC,   /*!< Public Key Cryptographic Operations */
1478d1f3a5dSAkhil Goyal 	DPAA2_SEC_MAX
1488d1f3a5dSAkhil Goyal };
1498d1f3a5dSAkhil Goyal 
1508d1f3a5dSAkhil Goyal struct dpaa2_sec_cipher_ctxt {
1518d1f3a5dSAkhil Goyal 	struct {
1528d1f3a5dSAkhil Goyal 		uint8_t *data;
1538d1f3a5dSAkhil Goyal 		uint16_t length;
1548d1f3a5dSAkhil Goyal 	} iv;	/**< Initialisation vector parameters */
1558d1f3a5dSAkhil Goyal 	uint8_t *init_counter;  /*!< Set initial counter for CTR mode */
1568d1f3a5dSAkhil Goyal };
1578d1f3a5dSAkhil Goyal 
1588d1f3a5dSAkhil Goyal struct dpaa2_sec_auth_ctxt {
1598d1f3a5dSAkhil Goyal 	uint8_t trunc_len;              /*!< Length for output ICV, should
1608d1f3a5dSAkhil Goyal 					 * be 0 if no truncation required
1618d1f3a5dSAkhil Goyal 					 */
1628d1f3a5dSAkhil Goyal };
1638d1f3a5dSAkhil Goyal 
1648d1f3a5dSAkhil Goyal struct dpaa2_sec_aead_ctxt {
1658d1f3a5dSAkhil Goyal 	struct {
1668d1f3a5dSAkhil Goyal 		uint8_t *data;
1678d1f3a5dSAkhil Goyal 		uint16_t length;
1688d1f3a5dSAkhil Goyal 	} iv;	/**< Initialisation vector parameters */
1698d1f3a5dSAkhil Goyal 	uint16_t auth_only_len; /*!< Length of data for Auth only */
1708d1f3a5dSAkhil Goyal 	uint8_t auth_cipher_text;       /**< Authenticate/cipher ordering */
1718d1f3a5dSAkhil Goyal 	uint8_t trunc_len;              /*!< Length for output ICV, should
1728d1f3a5dSAkhil Goyal 					 * be 0 if no truncation required
1738d1f3a5dSAkhil Goyal 					 */
1748d1f3a5dSAkhil Goyal };
1758d1f3a5dSAkhil Goyal 
1768d1f3a5dSAkhil Goyal typedef struct dpaa2_sec_session_entry {
1778d1f3a5dSAkhil Goyal 	void *ctxt;
1788d1f3a5dSAkhil Goyal 	uint8_t ctxt_type;
1798d1f3a5dSAkhil Goyal 	uint8_t dir;         /*!< Operation Direction */
1808d1f3a5dSAkhil Goyal 	enum rte_crypto_cipher_algorithm cipher_alg; /*!< Cipher Algorithm*/
1818d1f3a5dSAkhil Goyal 	enum rte_crypto_auth_algorithm auth_alg; /*!< Authentication Algorithm*/
1828d1f3a5dSAkhil Goyal 	struct {
1838d1f3a5dSAkhil Goyal 		uint8_t *data;	/**< pointer to key data */
1848d1f3a5dSAkhil Goyal 		size_t length;	/**< key length in bytes */
1858d1f3a5dSAkhil Goyal 	} cipher_key;
1868d1f3a5dSAkhil Goyal 	struct {
1878d1f3a5dSAkhil Goyal 		uint8_t *data;	/**< pointer to key data */
1888d1f3a5dSAkhil Goyal 		size_t length;	/**< key length in bytes */
1898d1f3a5dSAkhil Goyal 	} auth_key;
190*0fbd75a9SPablo de Lara 	struct {
191*0fbd75a9SPablo de Lara 		uint16_t length; /**< IV length in bytes */
192*0fbd75a9SPablo de Lara 		uint16_t offset; /**< IV offset in bytes */
193*0fbd75a9SPablo de Lara 	} iv;
1948d1f3a5dSAkhil Goyal 	uint8_t status;
1958d1f3a5dSAkhil Goyal 	union {
1968d1f3a5dSAkhil Goyal 		struct dpaa2_sec_cipher_ctxt cipher_ctxt;
1978d1f3a5dSAkhil Goyal 		struct dpaa2_sec_auth_ctxt auth_ctxt;
1988d1f3a5dSAkhil Goyal 		struct dpaa2_sec_aead_ctxt aead_ctxt;
1998d1f3a5dSAkhil Goyal 	} ext_params;
2008d1f3a5dSAkhil Goyal } dpaa2_sec_session;
2018d1f3a5dSAkhil Goyal 
202623326ddSAkhil Goyal static const struct rte_cryptodev_capabilities dpaa2_sec_capabilities[] = {
203623326ddSAkhil Goyal 	{	/* MD5 HMAC */
204623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
205623326ddSAkhil Goyal 		{.sym = {
206623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
207623326ddSAkhil Goyal 			{.auth = {
208623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_AUTH_MD5_HMAC,
209623326ddSAkhil Goyal 				.block_size = 64,
210623326ddSAkhil Goyal 				.key_size = {
211623326ddSAkhil Goyal 					.min = 64,
212623326ddSAkhil Goyal 					.max = 64,
213623326ddSAkhil Goyal 					.increment = 0
214623326ddSAkhil Goyal 				},
215623326ddSAkhil Goyal 				.digest_size = {
216623326ddSAkhil Goyal 					.min = 16,
217623326ddSAkhil Goyal 					.max = 16,
218623326ddSAkhil Goyal 					.increment = 0
219623326ddSAkhil Goyal 				},
220623326ddSAkhil Goyal 				.aad_size = { 0 }
221623326ddSAkhil Goyal 			}, }
222623326ddSAkhil Goyal 		}, }
223623326ddSAkhil Goyal 	},
224623326ddSAkhil Goyal 	{	/* SHA1 HMAC */
225623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
226623326ddSAkhil Goyal 		{.sym = {
227623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
228623326ddSAkhil Goyal 			{.auth = {
229623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
230623326ddSAkhil Goyal 				.block_size = 64,
231623326ddSAkhil Goyal 				.key_size = {
232623326ddSAkhil Goyal 					.min = 64,
233623326ddSAkhil Goyal 					.max = 64,
234623326ddSAkhil Goyal 					.increment = 0
235623326ddSAkhil Goyal 				},
236623326ddSAkhil Goyal 				.digest_size = {
237623326ddSAkhil Goyal 					.min = 20,
238623326ddSAkhil Goyal 					.max = 20,
239623326ddSAkhil Goyal 					.increment = 0
240623326ddSAkhil Goyal 				},
241623326ddSAkhil Goyal 				.aad_size = { 0 }
242623326ddSAkhil Goyal 			}, }
243623326ddSAkhil Goyal 		}, }
244623326ddSAkhil Goyal 	},
245623326ddSAkhil Goyal 	{	/* SHA224 HMAC */
246623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
247623326ddSAkhil Goyal 		{.sym = {
248623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
249623326ddSAkhil Goyal 			{.auth = {
250623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
251623326ddSAkhil Goyal 				.block_size = 64,
252623326ddSAkhil Goyal 				.key_size = {
253623326ddSAkhil Goyal 					.min = 64,
254623326ddSAkhil Goyal 					.max = 64,
255623326ddSAkhil Goyal 					.increment = 0
256623326ddSAkhil Goyal 				},
257623326ddSAkhil Goyal 				.digest_size = {
258623326ddSAkhil Goyal 					.min = 28,
259623326ddSAkhil Goyal 					.max = 28,
260623326ddSAkhil Goyal 					.increment = 0
261623326ddSAkhil Goyal 				},
262623326ddSAkhil Goyal 				.aad_size = { 0 }
263623326ddSAkhil Goyal 			}, }
264623326ddSAkhil Goyal 		}, }
265623326ddSAkhil Goyal 	},
266623326ddSAkhil Goyal 	{	/* SHA256 HMAC */
267623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
268623326ddSAkhil Goyal 		{.sym = {
269623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
270623326ddSAkhil Goyal 			{.auth = {
271623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
272623326ddSAkhil Goyal 				.block_size = 64,
273623326ddSAkhil Goyal 				.key_size = {
274623326ddSAkhil Goyal 					.min = 64,
275623326ddSAkhil Goyal 					.max = 64,
276623326ddSAkhil Goyal 					.increment = 0
277623326ddSAkhil Goyal 				},
278623326ddSAkhil Goyal 				.digest_size = {
279623326ddSAkhil Goyal 						.min = 32,
280623326ddSAkhil Goyal 						.max = 32,
281623326ddSAkhil Goyal 						.increment = 0
282623326ddSAkhil Goyal 				},
283623326ddSAkhil Goyal 				.aad_size = { 0 }
284623326ddSAkhil Goyal 				}, }
285623326ddSAkhil Goyal 			}, }
286623326ddSAkhil Goyal 		},
287623326ddSAkhil Goyal 	{	/* SHA384 HMAC */
288623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
289623326ddSAkhil Goyal 		{.sym = {
290623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
291623326ddSAkhil Goyal 			{.auth = {
292623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
293623326ddSAkhil Goyal 				.block_size = 128,
294623326ddSAkhil Goyal 				.key_size = {
295623326ddSAkhil Goyal 					.min = 128,
296623326ddSAkhil Goyal 					.max = 128,
297623326ddSAkhil Goyal 					.increment = 0
298623326ddSAkhil Goyal 				},
299623326ddSAkhil Goyal 				.digest_size = {
300623326ddSAkhil Goyal 					.min = 48,
301623326ddSAkhil Goyal 					.max = 48,
302623326ddSAkhil Goyal 					.increment = 0
303623326ddSAkhil Goyal 				},
304623326ddSAkhil Goyal 				.aad_size = { 0 }
305623326ddSAkhil Goyal 			}, }
306623326ddSAkhil Goyal 		}, }
307623326ddSAkhil Goyal 	},
308623326ddSAkhil Goyal 	{	/* SHA512 HMAC */
309623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
310623326ddSAkhil Goyal 		{.sym = {
311623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
312623326ddSAkhil Goyal 			{.auth = {
313623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
314623326ddSAkhil Goyal 				.block_size = 128,
315623326ddSAkhil Goyal 				.key_size = {
316623326ddSAkhil Goyal 					.min = 128,
317623326ddSAkhil Goyal 					.max = 128,
318623326ddSAkhil Goyal 					.increment = 0
319623326ddSAkhil Goyal 				},
320623326ddSAkhil Goyal 				.digest_size = {
321623326ddSAkhil Goyal 					.min = 64,
322623326ddSAkhil Goyal 					.max = 64,
323623326ddSAkhil Goyal 					.increment = 0
324623326ddSAkhil Goyal 				},
325623326ddSAkhil Goyal 				.aad_size = { 0 }
326623326ddSAkhil Goyal 			}, }
327623326ddSAkhil Goyal 		}, }
328623326ddSAkhil Goyal 	},
329623326ddSAkhil Goyal 	{	/* AES CBC */
330623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
331623326ddSAkhil Goyal 		{.sym = {
332623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
333623326ddSAkhil Goyal 			{.cipher = {
334623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_CIPHER_AES_CBC,
335623326ddSAkhil Goyal 				.block_size = 16,
336623326ddSAkhil Goyal 				.key_size = {
337623326ddSAkhil Goyal 					.min = 16,
338623326ddSAkhil Goyal 					.max = 32,
339623326ddSAkhil Goyal 					.increment = 8
340623326ddSAkhil Goyal 				},
341623326ddSAkhil Goyal 				.iv_size = {
342623326ddSAkhil Goyal 					.min = 16,
343623326ddSAkhil Goyal 					.max = 16,
344623326ddSAkhil Goyal 					.increment = 0
345623326ddSAkhil Goyal 				}
346623326ddSAkhil Goyal 			}, }
347623326ddSAkhil Goyal 		}, }
348623326ddSAkhil Goyal 	},
349623326ddSAkhil Goyal 	{	/* 3DES CBC */
350623326ddSAkhil Goyal 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
351623326ddSAkhil Goyal 		{.sym = {
352623326ddSAkhil Goyal 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
353623326ddSAkhil Goyal 			{.cipher = {
354623326ddSAkhil Goyal 				.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
355623326ddSAkhil Goyal 				.block_size = 8,
356623326ddSAkhil Goyal 				.key_size = {
357623326ddSAkhil Goyal 					.min = 16,
358623326ddSAkhil Goyal 					.max = 24,
359623326ddSAkhil Goyal 					.increment = 8
360623326ddSAkhil Goyal 				},
361623326ddSAkhil Goyal 				.iv_size = {
362623326ddSAkhil Goyal 					.min = 8,
363623326ddSAkhil Goyal 					.max = 8,
364623326ddSAkhil Goyal 					.increment = 0
365623326ddSAkhil Goyal 				}
366623326ddSAkhil Goyal 			}, }
367623326ddSAkhil Goyal 		}, }
368623326ddSAkhil Goyal 	},
369623326ddSAkhil Goyal 
370623326ddSAkhil Goyal 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
371623326ddSAkhil Goyal };
372623326ddSAkhil Goyal #endif /* _RTE_DPAA2_SEC_PMD_PRIVATE_H_ */
373