X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Fccp%2Fccp_pmd_private.h;h=1c4118ee3c499a23e7a4dc632e0ff39f72e582c5;hb=c1d4e9d37abdc6c07a05f7d96928e624fea9ebb5;hp=47c4fb2e764ed7021a786277a29889f79d597966;hpb=3c20cf98e2c99e6178585299056f3fb6d08467f3;p=dpdk.git diff --git a/drivers/crypto/ccp/ccp_pmd_private.h b/drivers/crypto/ccp/ccp_pmd_private.h index 47c4fb2e76..1c4118ee3c 100644 --- a/drivers/crypto/ccp/ccp_pmd_private.h +++ b/drivers/crypto/ccp/ccp_pmd_private.h @@ -6,6 +6,7 @@ #define _CCP_PMD_PRIVATE_H_ #include +#include "ccp_crypto.h" #define CRYPTODEV_NAME_CCP_PMD crypto_ccp @@ -30,17 +31,17 @@ #endif /**< Maximum queue pairs supported by CCP PMD */ -#define CCP_PMD_MAX_QUEUE_PAIRS 1 +#define CCP_PMD_MAX_QUEUE_PAIRS 8 #define CCP_NB_MAX_DESCRIPTORS 1024 -#define CCP_MAX_BURST 64 +#define CCP_MAX_BURST 256 #include "ccp_dev.h" /* private data structure for each CCP crypto device */ struct ccp_private { unsigned int max_nb_qpairs; /**< Max number of queue pairs */ - unsigned int max_nb_sessions; /**< Max number of sessions */ uint8_t crypto_num_dev; /**< Number of working crypto devices */ + bool auth_opt; /**< Authentication offload option */ struct ccp_device *last_dev; /**< Last working crypto device */ }; @@ -49,8 +50,10 @@ struct ccp_batch_info { struct rte_crypto_op *op[CCP_MAX_BURST]; /**< optable populated at enque time from app*/ int op_idx; + uint16_t b_idx; struct ccp_queue *cmd_q; uint16_t opcnt; + uint16_t total_nb_ops; /**< no. of crypto ops in batch*/ int desccnt; /**< no. of ccp queue descriptors*/ @@ -61,6 +64,8 @@ struct ccp_batch_info { phys_addr_t lsb_buf_phys; /**< LSB intermediate buf for passthru */ int lsb_buf_idx; + uint16_t auth_ctr; + /**< auth only ops batch for CPU based auth */ } __rte_cache_aligned; /**< CCP crypto queue pair */ @@ -73,6 +78,8 @@ struct ccp_qp { /**< Ring for placing process packets */ struct rte_mempool *sess_mp; /**< Session Mempool */ + struct rte_mempool *sess_mp_priv; + /**< Session Private Data Mempool */ struct rte_mempool *batch_mp; /**< Session Mempool for batch info */ struct rte_cryptodev_stats qp_stats; @@ -81,6 +88,11 @@ struct ccp_qp { /**< Store ops pulled out of queue */ struct rte_cryptodev *dev; /**< rte crypto device to which this qp belongs */ + uint8_t temp_digest[DIGEST_LENGTH_MAX]; + /**< Buffer used to store the digest generated + * by the driver when verifying a digest provided + * by the user (using authentication verify operation) + */ } __rte_cache_aligned;