Imported Upstream version 17.05
[deb_dpdk.git] / drivers / crypto / aesni_mb / rte_aesni_mb_pmd_private.h
index 17f367f..0d82699 100644 (file)
@@ -88,6 +88,7 @@ static const unsigned auth_truncated_digest_byte_lengths[] = {
                [SHA_384]       = 24,
                [SHA_512]       = 32,
                [AES_XCBC]      = 12,
+               [NULL_HASH]     = 0
 };
 
 /**
@@ -111,6 +112,7 @@ static const unsigned auth_digest_byte_lengths[] = {
                [SHA_384]       = 48,
                [SHA_512]       = 64,
                [AES_XCBC]      = 16,
+               [NULL_HASH]     = 0
 };
 
 /**
@@ -125,6 +127,13 @@ get_digest_byte_length(JOB_HASH_ALG algo)
        return auth_digest_byte_lengths[algo];
 }
 
+enum aesni_mb_operation {
+       AESNI_MB_OP_HASH_CIPHER,
+       AESNI_MB_OP_CIPHER_HASH,
+       AESNI_MB_OP_HASH_ONLY,
+       AESNI_MB_OP_CIPHER_ONLY,
+       AESNI_MB_OP_NOT_SUPPORTED
+};
 
 /** private data structure for each virtual AESNI device */
 struct aesni_mb_private {
@@ -142,12 +151,12 @@ struct aesni_mb_qp {
        /**< Queue Pair Identifier */
        char name[RTE_CRYPTODEV_NAME_LEN];
        /**< Unique Queue Pair Name */
-       const struct aesni_mb_ops *ops;
+       const struct aesni_mb_op_fns *op_fns;
        /**< Vector mode dependent pointer table of the multi-buffer APIs */
        MB_MGR mb_mgr;
        /**< Multi-buffer instance */
-       struct rte_ring *processed_ops;
-       /**< Ring for placing process operations */
+       struct rte_ring *ingress_queue;
+       /**< Ring for placing operations ready for processing */
        struct rte_mempool *sess_mp;
        /**< Session Mempool */
        struct rte_cryptodev_stats stats;
@@ -185,6 +194,8 @@ struct aesni_mb_session {
        /** Authentication Parameters */
        struct {
                JOB_HASH_ALG algo; /**< Authentication Algorithm */
+               enum rte_crypto_auth_operation operation;
+               /**< auth operation generate or verify */
                union {
                        struct {
                                uint8_t inner[128] __rte_aligned(16);
@@ -216,7 +227,7 @@ struct aesni_mb_session {
  *
  */
 extern int
-aesni_mb_set_session_parameters(const struct aesni_mb_ops *mb_ops,
+aesni_mb_set_session_parameters(const struct aesni_mb_op_fns *mb_ops,
                struct aesni_mb_session *sess,
                const struct rte_crypto_sym_xform *xform);