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
- if (ctx->options->op_type == CPERF_PDCP ||
- ctx->options->op_type == CPERF_DOCSIS) {
+ 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,
+ rte_cryptodev_get_sec_ctx(ctx->dev_id);
+ rte_security_session_destroy(
+ sec_ctx,
(struct rte_security_session *)ctx->sess);
- } else
+ }
#endif
- {
+ else {
rte_cryptodev_sym_session_clear(ctx->dev_id, ctx->sess);
rte_cryptodev_sym_session_free(ctx->sess);
}
int linearize = 0;
/* Check if source mbufs require coalescing */
- if (ctx->options->segment_sz < ctx->options->max_buffer_size) {
+ if ((ctx->options->op_type != CPERF_ASYM_MODEX) &&
+ (ctx->options->segment_sz < ctx->options->max_buffer_size)) {
rte_cryptodev_info_get(ctx->dev_id, &dev_info);
if ((dev_info.feature_flags &
RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER) == 0)
ctx->dst_buf_offset,
ops_needed, ctx->sess,
ctx->options, ctx->test_vector,
- iv_offset, &imix_idx);
+ iv_offset, &imix_idx, &tsc_start);
/**
* When ops_needed is smaller than ops_enqd, the
* We need to linearize it before enqueuing.
*/
for (i = 0; i < burst_size; i++)
- rte_pktmbuf_linearize(ops[i]->sym->m_src);
+ rte_pktmbuf_linearize(
+ ops[i]->sym->m_src);
}
#endif /* CPERF_LINEARIZATION_ENABLE */
"Failed Deq,Ops(Millions),Throughput(Gbps),"
"Cycles/Buf\n\n");
- printf("%u;%u;%u;%"PRIu64";%"PRIu64";%"PRIu64";%"PRIu64";"
- "%.3f;%.3f;%.3f\n",
+ printf("%u,%u,%u,%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64","
+ "%.3f,%.3f,%.3f\n",
ctx->lcore_id,
ctx->options->test_buffer_size,
test_burst_size,