[1/2] app/crypto-perf: populate mbuf in latency test
Checks
Commit Message
For decrypt, ICV mismatch can come as data is dummy and
latency will be calculated for error path. Hence populate
mbuf with test vector data.
Signed-off-by: Archana Muniganti <marchana@marvell.com>
---
app/test-crypto-perf/cperf_ops.c | 3 +-
app/test-crypto-perf/cperf_test_common.c | 36 +++++++++++++++++++++++
app/test-crypto-perf/cperf_test_common.h | 5 ++++
app/test-crypto-perf/cperf_test_latency.c | 6 ++++
app/test-crypto-perf/cperf_test_verify.c | 36 -----------------------
5 files changed, 49 insertions(+), 37 deletions(-)
Comments
> Subject: [PATCH 1/2] app/crypto-perf: populate mbuf in latency test
>
> For decrypt, ICV mismatch can come as data is dummy and
> latency will be calculated for error path. Hence populate
> mbuf with test vector data.
>
> Signed-off-by: Archana Muniganti <marchana@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
>
> > Subject: [PATCH 1/2] app/crypto-perf: populate mbuf in latency test
> >
> > For decrypt, ICV mismatch can come as data is dummy and
> > latency will be calculated for error path. Hence populate
> > mbuf with test vector data.
> >
> > Signed-off-by: Archana Muniganti <marchana@marvell.com>
> Acked-by: Akhil Goyal <gakhil@marvell.com>
Series Applied to dpdk-next-crypto
Thanks.
@@ -620,7 +620,8 @@ cperf_set_ops_aead(struct rte_crypto_op **ops,
}
}
- if (options->test == CPERF_TEST_TYPE_VERIFY) {
+ if ((options->test == CPERF_TEST_TYPE_VERIFY) ||
+ (options->test == CPERF_TEST_TYPE_LATENCY)) {
for (i = 0; i < nb_ops; i++) {
uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ops[i],
uint8_t *, iv_offset);
@@ -262,3 +262,39 @@ cperf_alloc_common_memory(const struct cperf_options *options,
return 0;
}
+
+void
+cperf_mbuf_set(struct rte_mbuf *mbuf,
+ const struct cperf_options *options,
+ const struct cperf_test_vector *test_vector)
+{
+ uint32_t segment_sz = options->segment_sz;
+ uint8_t *mbuf_data;
+ uint8_t *test_data;
+ uint32_t remaining_bytes = options->max_buffer_size;
+
+ if (options->op_type == CPERF_AEAD) {
+ test_data = (options->aead_op == RTE_CRYPTO_AEAD_OP_ENCRYPT) ?
+ test_vector->plaintext.data :
+ test_vector->ciphertext.data;
+ } else {
+ test_data =
+ (options->cipher_op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) ?
+ test_vector->plaintext.data :
+ test_vector->ciphertext.data;
+ }
+
+ while (remaining_bytes) {
+ mbuf_data = rte_pktmbuf_mtod(mbuf, uint8_t *);
+
+ if (remaining_bytes <= segment_sz) {
+ memcpy(mbuf_data, test_data, remaining_bytes);
+ return;
+ }
+
+ memcpy(mbuf_data, test_data, segment_sz);
+ remaining_bytes -= segment_sz;
+ test_data += segment_sz;
+ mbuf = mbuf->next;
+ }
+}
@@ -21,4 +21,9 @@ cperf_alloc_common_memory(const struct cperf_options *options,
uint32_t *dst_buf_offset,
struct rte_mempool **pool);
+void
+cperf_mbuf_set(struct rte_mbuf *mbuf,
+ const struct cperf_options *options,
+ const struct cperf_test_vector *test_vector);
+
#endif /* _CPERF_TEST_COMMON_H_ */
@@ -201,6 +201,12 @@ cperf_latency_test_runner(void *arg)
ctx->test_vector, iv_offset,
&imix_idx, &tsc_start);
+ /* Populate the mbuf with the test vector */
+ for (i = 0; i < burst_size; i++)
+ cperf_mbuf_set(ops[i]->sym->m_src,
+ ctx->options,
+ ctx->test_vector);
+
tsc_start = rte_rdtsc_precise();
#ifdef CPERF_LINEARIZATION_ENABLE
@@ -195,42 +195,6 @@ cperf_verify_op(struct rte_crypto_op *op,
return !!res;
}
-static void
-cperf_mbuf_set(struct rte_mbuf *mbuf,
- const struct cperf_options *options,
- const struct cperf_test_vector *test_vector)
-{
- uint32_t segment_sz = options->segment_sz;
- uint8_t *mbuf_data;
- uint8_t *test_data;
- uint32_t remaining_bytes = options->max_buffer_size;
-
- if (options->op_type == CPERF_AEAD) {
- test_data = (options->aead_op == RTE_CRYPTO_AEAD_OP_ENCRYPT) ?
- test_vector->plaintext.data :
- test_vector->ciphertext.data;
- } else {
- test_data =
- (options->cipher_op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) ?
- test_vector->plaintext.data :
- test_vector->ciphertext.data;
- }
-
- while (remaining_bytes) {
- mbuf_data = rte_pktmbuf_mtod(mbuf, uint8_t *);
-
- if (remaining_bytes <= segment_sz) {
- memcpy(mbuf_data, test_data, remaining_bytes);
- return;
- }
-
- memcpy(mbuf_data, test_data, segment_sz);
- remaining_bytes -= segment_sz;
- test_data += segment_sz;
- mbuf = mbuf->next;
- }
-}
-
int
cperf_verify_test_runner(void *test_ctx)
{