+ if (!ctx)
+ return;
+ if (ctx->sess) {
+ if (ctx->options->op_type == CPERF_ASYM_MODEX) {
+ rte_cryptodev_asym_session_clear(ctx->dev_id,
+ (void *)ctx->sess);
+ rte_cryptodev_asym_session_free((void *)ctx->sess);
+ }
+#ifdef RTE_LIB_SECURITY
+ else if (ctx->options->op_type == CPERF_PDCP ||
+ ctx->options->op_type == CPERF_DOCSIS ||
+ ctx->options->op_type == CPERF_IPSEC) {
+ 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);
+ }
+#endif
+ else {