[dpdk-dev] [PATCH v3] app/test: add AES GCM performance test to cryptodev

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Wed Sep 28 02:45:21 CEST 2016


Hi Arek,

> -----Original Message-----
> From: Kusztal, ArkadiuszX
> Sent: Tuesday, September 27, 2016 6:50 AM
> To: dev at dpdk.org
> Cc: Trahe, Fiona; Jain, Deepak K; De Lara Guarch, Pablo; Griffin, John; Kusztal,
> ArkadiuszX
> Subject: [PATCH v3] app/test: add AES GCM performance test to cryptodev
> 
> This patch adds AES Galois Counter Mode performance test case
> for cryptodev QAT and AESNI GCM. Test is performed with different
> buffer sizes, burst size of 32 and 128b key. Test vectors
> are placed in app/test/test_cryptodev_perf_vectors.h file.
> 
> Signed-off-by: Arek Kusztal <arkadiuszx.kusztal at intel.com>
> ---
> This patch depends on the following patches/patchsets:
> 
> "app/test: fix linkage scope of gmac plaintext array"
> (http://dpdk.org/dev/patchwork/patch/16023/)
> 
> v2:
>   * Fixed 32b build problem in test_cryptodev_perf.c
> v3:
>   * Added multiple test cases possibility
>   * Added AESNI GCM test suite
> ---
>  app/test/test_cryptodev_gcm_test_vectors.h | 632
> +++++++++++++++++++++++++++++
>  app/test/test_cryptodev_perf.c             | 482 +++++++++++++++++++++-
>  2 files changed, 1111 insertions(+), 3 deletions(-)
> 
> diff --git a/app/test/test_cryptodev_perf.c b/app/test/test_cryptodev_perf.c
> index 20713d4..3bb6f34 100644
> --- a/app/test/test_cryptodev_perf.c
> +++ b/app/test/test_cryptodev_perf.c
> @@ -41,6 +41,7 @@

[...]

> +static int
> +perf_AES_GCM(uint8_t dev_id, uint16_t queue_id,
> +	     struct perf_test_params *pparams, uint32_t test_ops)
> +{

[...]

> +		if (burst_dequeued == 0)
> +			failed_polls++;
> +		else {
> +			processed += burst_dequeued;
> +
> +		for (m = 0; m < burst_dequeued; m++) {
> +			if (test_ops) {
> +				uint16_t iv_pad_len =
> ALIGN_POW2_ROUNDUP
> +					(pparams->symmetric_op->iv_len,
> 16);
> +				uint8_t *pkt = rte_pktmbuf_mtod(
> +					proc_ops[m]->sym->m_src,
> +					uint8_t *);
> +
> +				TEST_ASSERT_BUFFERS_ARE_EQUAL(
> +					pparams->symmetric_op->c_data,
> +					pkt + iv_pad_len +
> +					pparams->symmetric_op->aad_len,
> +					pparams->symmetric_op->c_len,
> +					"GCM Ciphertext data not as
> expected");
> +
> +				TEST_ASSERT_BUFFERS_ARE_EQUAL(
> +					pparams->symmetric_op->t_data,
> +					pkt + iv_pad_len +
> +					pparams->symmetric_op->aad_len +
> +					pparams->symmetric_op->c_len,
> +					pparams->symmetric_op->t_len,
> +					"GCM MAC data not as expected");
> +
> +		      }
> +		      rte_crypto_op_free(proc_ops[m]);
> +			}

Please, check the indentation here. Checkpatch complained here.

Thanks,
Pablo

> +	    }
> +	}
> +
> +	tsc_end = rte_rdtsc_precise();
> +
> +	double ops_s = ((double)processed / (tsc_end - tsc_start))
> +			* rte_get_tsc_hz();
> +	double throughput = (ops_s * pparams->symmetric_op->p_len * 8)
> +			/ 1000000000;



More information about the dev mailing list