From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
To: declan.doherty@intel.com
Cc: dev@dpdk.org, akhil.goyal@nxp.com,
Pablo de Lara <pablo.de.lara.guarch@intel.com>
Subject: [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check
Date: Thu, 16 Apr 2020 18:24:23 +0100 [thread overview]
Message-ID: <1587057864-160450-2-git-send-email-pablo.de.lara.guarch@intel.com> (raw)
In-Reply-To: <1587057864-160450-1-git-send-email-pablo.de.lara.guarch@intel.com>
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@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Tested-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
app/test/test_cryptodev_blockcipher.c | 56 +++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/app/test/test_cryptodev_blockcipher.c b/app/test/test_cryptodev_blockcipher.c
index 4973c74..8453470 100644
--- a/app/test/test_cryptodev_blockcipher.c
+++ b/app/test/test_cryptodev_blockcipher.c
@@ -21,6 +21,49 @@
#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 = 0;
+ 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;
+
+ if (cap_idx.algo.cipher != RTE_CRYPTO_CIPHER_NULL)
+ 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;
+
+ if (cap_idx.algo.auth != RTE_CRYPTO_AUTH_NULL)
+ 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,
@@ -98,6 +141,8 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
printf("Device doesn't support out-of-place "
"scatter-gather in input mbuf. "
"Test Skipped.\n");
+ snprintf(test_msg, BLOCKCIPHER_TEST_MSG_LEN,
+ "SKIPPED");
return 0;
}
} else {
@@ -105,6 +150,8 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
printf("Device doesn't support in-place "
"scatter-gather mbufs. "
"Test Skipped.\n");
+ snprintf(test_msg, BLOCKCIPHER_TEST_MSG_LEN,
+ "SKIPPED");
return 0;
}
}
@@ -144,6 +191,15 @@ 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");
+ snprintf(test_msg, BLOCKCIPHER_TEST_MSG_LEN, "SKIPPED");
+ return 0;
+ }
+
/* preparing data */
if (t->op_mask & BLOCKCIPHER_TEST_OP_AUTH)
buf_len += digest_len;
--
2.7.5
next prev parent reply other threads:[~2020-04-16 17:24 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-14 10:22 [dpdk-dev] [PATCH " Pablo de Lara
2020-04-14 10:22 ` [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM Pablo de Lara
2020-04-14 10:34 ` Thomas Monjalon
2020-04-14 17:22 ` De Lara Guarch, Pablo
2020-04-14 17:48 ` Thomas Monjalon
2020-04-22 9:16 ` Thomas Monjalon
2020-04-22 9:43 ` Akhil Goyal
2020-04-22 10:56 ` Thomas Monjalon
2020-04-15 10:28 ` Dybkowski, AdamX
2020-04-14 10:35 ` [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check Pablo de Lara
2020-04-14 10:35 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: do not check for IMB_VERSION_NUM Pablo de Lara
2020-04-15 10:30 ` Dybkowski, AdamX
2020-04-14 17:40 ` [dpdk-dev] [PATCH v3 0/2] Crypto test refactoring (first phase) Pablo de Lara
2020-04-14 17:40 ` [dpdk-dev] [PATCH v3 1/2] test/crypto: add capability check Pablo de Lara
2020-04-15 10:31 ` Dybkowski, AdamX
2020-04-16 11:15 ` De Lara Guarch, Pablo
2020-04-14 17:40 ` [dpdk-dev] [PATCH v3 2/2] test/crypto: do not check for internal PMD information Pablo de Lara
2020-04-15 10:30 ` Dybkowski, AdamX
2020-04-16 9:08 ` [dpdk-dev] [PATCH v4 0/2] Crypto test refactoring (first phase) Pablo de Lara
2020-04-16 9:08 ` [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check Pablo de Lara
2020-04-16 15:35 ` Ruifeng Wang
2020-04-16 16:26 ` Trahe, Fiona
2020-04-16 16:44 ` De Lara Guarch, Pablo
2020-04-16 9:08 ` [dpdk-dev] [PATCH v4 2/2] test/crypto: do not check for internal PMD information Pablo de Lara
2020-04-16 15:35 ` Ruifeng Wang
2020-04-16 17:24 ` [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase) Pablo de Lara
2020-04-16 17:24 ` Pablo de Lara [this message]
2020-04-16 17:53 ` [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check Trahe, Fiona
2020-04-16 17:24 ` [dpdk-dev] [PATCH v5 2/2] test/crypto: do not check for internal PMD information Pablo de Lara
2020-04-16 17:53 ` Trahe, Fiona
2020-04-19 21:15 ` [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase) Akhil Goyal
2020-04-15 10:29 ` [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check Dybkowski, AdamX
2020-04-15 9:16 ` [dpdk-dev] [PATCH " Dybkowski, AdamX
2020-04-15 9:23 ` Dybkowski, AdamX
2020-04-15 10:29 ` Dybkowski, AdamX
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1587057864-160450-2-git-send-email-pablo.de.lara.guarch@intel.com \
--to=pablo.de.lara.guarch@intel.com \
--cc=akhil.goyal@nxp.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).