[dpdk-dev] [PATCH v3 1/2] test/crypto: add capability check
De Lara Guarch, Pablo
pablo.de.lara.guarch at intel.com
Thu Apr 16 13:15:34 CEST 2020
Hi,
> -----Original Message-----
> From: De Lara Guarch, Pablo <pablo.de.lara.guarch at intel.com>
> Sent: Tuesday, April 14, 2020 6:41 PM
> To: Doherty, Declan <declan.doherty at intel.com>
> Cc: dev at dpdk.org; akhil.goyal at nxp.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch at intel.com>
> Subject: [PATCH v3 1/2] test/crypto: add capability check
>
> Check if test case is supported by the crypto device, including algorithm and
> some of its parameter, such as key length, IV length, etc, using the capabilities
> API.
> If it is not supported, test case is skipped.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> ---
> app/test/test_cryptodev_blockcipher.c | 49
> +++++++++++++++++++++++++++++++++++
> 1 file changed, 49 insertions(+)
>
> diff --git a/app/test/test_cryptodev_blockcipher.c
> b/app/test/test_cryptodev_blockcipher.c
> index 2ff7fc9..3fb1274 100644
> --- a/app/test/test_cryptodev_blockcipher.c
> +++ b/app/test/test_cryptodev_blockcipher.c
> @@ -21,6 +21,47 @@
> #include "test_cryptodev_hash_test_vectors.h"
>
> static int
> +verify_algo_support(const struct blockcipher_test_case *t,
> + const uint8_t dev_id, const uint32_t digest_len) {
> + int ret;
> + const struct blockcipher_test_data *tdata = t->test_data;
> + struct rte_cryptodev_sym_capability_idx cap_idx;
> + const struct rte_cryptodev_symmetric_capability *capability;
> +
> + if (t->op_mask & BLOCKCIPHER_TEST_OP_CIPHER) {
> + cap_idx.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
> + cap_idx.algo.cipher = tdata->crypto_algo;
> + capability = rte_cryptodev_sym_capability_get(dev_id,
> &cap_idx);
> + if (capability == NULL)
> + return -1;
> +
> + ret = rte_cryptodev_sym_capability_check_cipher(capability,
> + tdata->cipher_key.len,
> + tdata->iv.len);
> + if (ret != 0)
> + return -1;
> + }
> +
> + if (t->op_mask & BLOCKCIPHER_TEST_OP_AUTH) {
> + cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
> + cap_idx.algo.auth = tdata->auth_algo;
> + capability = rte_cryptodev_sym_capability_get(dev_id,
> &cap_idx);
> + if (capability == NULL)
> + return -1;
> +
> + ret = rte_cryptodev_sym_capability_check_auth(capability,
> + tdata->auth_key.len,
> + digest_len,
> + 0);
> + if (ret != 0)
> + return -1;
> + }
> +
> + return 0;
> +}
> +
> +static int
> test_blockcipher_one_case(const struct blockcipher_test_case *t,
> struct rte_mempool *mbuf_pool,
> struct rte_mempool *op_mpool,
> @@ -144,6 +185,14 @@ test_blockcipher_one_case(const struct
> blockcipher_test_case *t,
> goto error_exit;
> }
>
> + /* Check if PMD is capable of performing that test */
> + if (verify_algo_support(t, dev_id, digest_len) < 0) {
> + RTE_LOG(DEBUG, USER1,
> + "Device does not support this algorithm."
> + "Test Skipped.\n");
> + return 0;
I forgot to set the "test_msg" here, so I'll send another patchset.
Thanks,
Pablo
More information about the dev
mailing list