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