app/test-crypto-perf: add AEAD parameters
[dpdk.git] / app / test-crypto-perf / cperf_test_verify.c
index b19f5e1..3ee0560 100644 (file)
@@ -155,14 +155,14 @@ cperf_mbuf_create(struct rte_mempool *mempool,
 
        if (options->op_type != CPERF_CIPHER_ONLY) {
                mbuf_data = (uint8_t *)rte_pktmbuf_append(mbuf,
-                               options->auth_digest_sz);
+                               options->digest_sz);
                if (mbuf_data == NULL)
                        goto error;
        }
 
        if (options->op_type == CPERF_AEAD) {
                uint8_t *aead = (uint8_t *)rte_pktmbuf_prepend(mbuf,
-                       RTE_ALIGN_CEIL(options->auth_aad_sz, 16));
+                       RTE_ALIGN_CEIL(options->aead_aad_sz, 16));
 
                if (aead == NULL)
                        goto error;
@@ -199,7 +199,11 @@ cperf_verify_test_constructor(uint8_t dev_id, uint16_t qp_id,
        ctx->options = options;
        ctx->test_vector = test_vector;
 
-       ctx->sess = op_fns->sess_create(dev_id, options, test_vector);
+       /* IV goes at the end of the cryptop operation */
+       uint16_t iv_offset = sizeof(struct rte_crypto_op) +
+               sizeof(struct rte_crypto_sym_op);
+
+       ctx->sess = op_fns->sess_create(dev_id, options, test_vector, iv_offset);
        if (ctx->sess == NULL)
                goto err;
 
@@ -212,7 +216,7 @@ cperf_verify_test_constructor(uint8_t dev_id, uint16_t qp_id,
                        RTE_CACHE_LINE_ROUNDUP(
                                (options->max_buffer_size / options->segments_nb) +
                                (options->max_buffer_size % options->segments_nb) +
-                                       options->auth_digest_sz),
+                                       options->digest_sz),
                        rte_socket_id());
 
        if (ctx->pkt_mbuf_pool_in == NULL)
@@ -240,7 +244,7 @@ cperf_verify_test_constructor(uint8_t dev_id, uint16_t qp_id,
                                RTE_PKTMBUF_HEADROOM +
                                RTE_CACHE_LINE_ROUNDUP(
                                        options->max_buffer_size +
-                                       options->auth_digest_sz),
+                                       options->digest_sz),
                                rte_socket_id());
 
                if (ctx->pkt_mbuf_pool_out == NULL)
@@ -266,9 +270,11 @@ cperf_verify_test_constructor(uint8_t dev_id, uint16_t qp_id,
        snprintf(pool_name, sizeof(pool_name), "cperf_op_pool_cdev_%d",
                        dev_id);
 
+       uint16_t priv_size = test_vector->cipher_iv.length +
+               test_vector->auth_iv.length;
        ctx->crypto_op_pool = rte_crypto_op_pool_create(pool_name,
-                       RTE_CRYPTO_OP_TYPE_SYMMETRIC, options->pool_sz, 512, 0,
-                       rte_socket_id());
+                       RTE_CRYPTO_OP_TYPE_SYMMETRIC, options->pool_sz,
+                       512, priv_size, rte_socket_id());
        if (ctx->crypto_op_pool == NULL)
                goto err;
 
@@ -373,7 +379,7 @@ cperf_verify_op(struct rte_crypto_op *op,
                if (options->auth_op == RTE_CRYPTO_AUTH_OP_GENERATE)
                        res += memcmp(data + auth_offset,
                                        vector->digest.data,
-                                       options->auth_digest_sz);
+                                       options->digest_sz);
        }
 
        return !!res;
@@ -417,6 +423,9 @@ cperf_verify_test_runner(void *test_ctx)
                printf("\n# Running verify test on device: %u, lcore: %u\n",
                        ctx->dev_id, lcore);
 
+       uint16_t iv_offset = sizeof(struct rte_crypto_op) +
+               sizeof(struct rte_crypto_sym_op);
+
        while (ops_enqd_total < ctx->options->total_ops) {
 
                uint16_t burst_size = ((ops_enqd_total + ctx->options->max_burst_size)
@@ -438,7 +447,7 @@ cperf_verify_test_runner(void *test_ctx)
                (ctx->populate_ops)(ops, &ctx->mbufs_in[m_idx],
                                &ctx->mbufs_out[m_idx],
                                ops_needed, ctx->sess, ctx->options,
-                               ctx->test_vector);
+                               ctx->test_vector, iv_offset);
 
 #ifdef CPERF_LINEARIZATION_ENABLE
                if (linearize) {