From 25d5c40f252fb77ed78a7baa5d6e54912ad83941 Mon Sep 17 00:00:00 2001 From: David Coyle Date: Tue, 21 Jul 2020 15:56:48 +0100 Subject: [PATCH] app/crypto-perf: support security protocol in PMDCC mode This patch adds support for DOCSIS and PDCP security protocols to the pmd-cyclecount mode of the crypto performance tool. Adding this support involves freeing the correct session type (i.e. security or cryptodev session) when the test ends, depending on the op_type specified. Signed-off-by: David Coyle Acked-by: Akhil Goyal --- .../cperf_test_pmd_cyclecount.c | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/app/test-crypto-perf/cperf_test_pmd_cyclecount.c b/app/test-crypto-perf/cperf_test_pmd_cyclecount.c index 74371faa8d..69f0943d14 100644 --- a/app/test-crypto-perf/cperf_test_pmd_cyclecount.c +++ b/app/test-crypto-perf/cperf_test_pmd_cyclecount.c @@ -59,23 +59,36 @@ static const uint16_t iv_offset = static void cperf_pmd_cyclecount_test_free(struct cperf_pmd_cyclecount_ctx *ctx) { - if (ctx) { - if (ctx->sess) { + if (!ctx) + return; + + if (ctx->sess) { +#ifdef RTE_LIBRTE_SECURITY + if (ctx->options->op_type == CPERF_PDCP || + ctx->options->op_type == CPERF_DOCSIS) { + struct rte_security_ctx *sec_ctx = + (struct rte_security_ctx *) + rte_cryptodev_get_sec_ctx(ctx->dev_id); + rte_security_session_destroy(sec_ctx, + (struct rte_security_session *)ctx->sess); + } else +#endif + { rte_cryptodev_sym_session_clear(ctx->dev_id, ctx->sess); rte_cryptodev_sym_session_free(ctx->sess); } - - if (ctx->pool) - rte_mempool_free(ctx->pool); - - if (ctx->ops) - rte_free(ctx->ops); - - if (ctx->ops_processed) - rte_free(ctx->ops_processed); - - rte_free(ctx); } + + if (ctx->pool) + rte_mempool_free(ctx->pool); + + if (ctx->ops) + rte_free(ctx->ops); + + if (ctx->ops_processed) + rte_free(ctx->ops_processed); + + rte_free(ctx); } void *