DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] test/crypto: add capability check
@ 2020-04-14 10:22 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
                   ` (4 more replies)
  0 siblings, 5 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 10:22 UTC (permalink / raw)
  To: declan.doherty, akhil.goyal, roy.fan.zhang, thomas; +Cc: dev, Pablo de Lara

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>
---
 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..b0e53ee 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,
@@ -112,6 +153,14 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
 		nb_segs = 3;
 	}
 
+        /* Check if PMD is capable of performing that test */
+        if (verify_algo_support(t, dev_id, digest_len) < 0) {
+		 RTE_LOG(DEBUG, USER1,
+			"Device is not capable of performing this algorithm."
+			"Test Skipped.\n");
+		return 0;
+	}
+
 	if (tdata->cipher_key.len)
 		memcpy(cipher_key, tdata->cipher_key.data,
 			tdata->cipher_key.len);
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-14 10:22 [dpdk-dev] [PATCH 1/2] test/crypto: add capability check Pablo de Lara
@ 2020-04-14 10:22 ` Pablo de Lara
  2020-04-14 10:34   ` 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
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 10:22 UTC (permalink / raw)
  To: declan.doherty, akhil.goyal, roy.fan.zhang, thomas; +Cc: dev, Pablo de Lara

Now that capabilities are checked to see if an algorithm
is supported by a device, there is no need to check
for a specific version of a library used in a PMD.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 app/test/test_cryptodev_hash_test_vectors.h | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/app/test/test_cryptodev_hash_test_vectors.h b/app/test/test_cryptodev_hash_test_vectors.h
index cff2831..2ed077f 100644
--- a/app/test/test_cryptodev_hash_test_vectors.h
+++ b/app/test/test_cryptodev_hash_test_vectors.h
@@ -9,11 +9,6 @@
 #include <intel-ipsec-mb.h>
 #endif
 
-#if !defined(IMB_VERSION_NUM)
-#define IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
-#define IMB_VERSION_NUM IMB_VERSION(0, 49, 0)
-#endif
-
 static const uint8_t plaintext_hash[] = {
 	"What a lousy earth! He wondered how many people "
 	"were destitute that same night even in his own "
@@ -462,9 +457,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -475,9 +468,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -542,9 +533,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -555,9 +544,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -598,9 +585,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -611,9 +596,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -656,9 +639,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -669,9 +650,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -714,9 +693,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
 	},
 	{
@@ -726,9 +703,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  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-15 10:28   ` Dybkowski, AdamX
  1 sibling, 1 reply; 35+ messages in thread
From: Thomas Monjalon @ 2020-04-14 10:34 UTC (permalink / raw)
  To: declan.doherty, akhil.goyal, roy.fan.zhang, Pablo de Lara
  Cc: dev, Pablo de Lara

14/04/2020 12:22, Pablo de Lara:
> Now that capabilities are checked to see if an algorithm
> is supported by a device, there is no need to check
> for a specific version of a library used in a PMD.

Yes, and even no need to check the PMD at all.
All *_TEST_TARGET_PMD_* constants should be removed.



^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check
  2020-04-14 10:22 [dpdk-dev] [PATCH 1/2] test/crypto: add capability check 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:35 ` 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
                     ` (2 more replies)
  2020-04-15  9:16 ` [dpdk-dev] [PATCH " Dybkowski, AdamX
                   ` (2 subsequent siblings)
  4 siblings, 3 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 10:35 UTC (permalink / raw)
  To: declan.doherty, akhil.goyal, roy.fan.zhang, thomas; +Cc: dev, Pablo de Lara

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>
---

v2:
- Fixed checkpatch issues

 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..9c218e5 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,
@@ -112,6 +153,14 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
 		nb_segs = 3;
 	}
 
+	/* Check if PMD is capable of performing that test */
+	if (verify_algo_support(t, dev_id, digest_len) < 0) {
+		RTE_LOG(DEBUG, USER1,
+			"Device is not capable of performing this algorithm."
+			"Test Skipped.\n");
+		return 0;
+	}
+
 	if (tdata->cipher_key.len)
 		memcpy(cipher_key, tdata->cipher_key.data,
 			tdata->cipher_key.len);
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v2 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-14 10:35 ` [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check Pablo de Lara
@ 2020-04-14 10:35   ` 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-15 10:29   ` [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check Dybkowski, AdamX
  2 siblings, 1 reply; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 10:35 UTC (permalink / raw)
  To: declan.doherty, akhil.goyal, roy.fan.zhang, thomas; +Cc: dev, Pablo de Lara

Now that capabilities are checked to see if an algorithm
is supported by a device, there is no need to check
for a specific version of a library used in a PMD.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 app/test/test_cryptodev_hash_test_vectors.h | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/app/test/test_cryptodev_hash_test_vectors.h b/app/test/test_cryptodev_hash_test_vectors.h
index cff2831..2ed077f 100644
--- a/app/test/test_cryptodev_hash_test_vectors.h
+++ b/app/test/test_cryptodev_hash_test_vectors.h
@@ -9,11 +9,6 @@
 #include <intel-ipsec-mb.h>
 #endif
 
-#if !defined(IMB_VERSION_NUM)
-#define IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
-#define IMB_VERSION_NUM IMB_VERSION(0, 49, 0)
-#endif
-
 static const uint8_t plaintext_hash[] = {
 	"What a lousy earth! He wondered how many people "
 	"were destitute that same night even in his own "
@@ -462,9 +457,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -475,9 +468,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -542,9 +533,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -555,9 +544,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -598,9 +585,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -611,9 +596,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -656,9 +639,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -669,9 +650,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -714,9 +693,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
 	},
 	{
@@ -726,9 +703,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-14 10:34   ` Thomas Monjalon
@ 2020-04-14 17:22     ` De Lara Guarch, Pablo
  2020-04-14 17:48       ` Thomas Monjalon
  0 siblings, 1 reply; 35+ messages in thread
From: De Lara Guarch, Pablo @ 2020-04-14 17:22 UTC (permalink / raw)
  To: Thomas Monjalon, Doherty, Declan, akhil.goyal, Zhang, Roy Fan; +Cc: dev

Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Tuesday, April 14, 2020 11:34 AM
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com; Zhang,
> Roy Fan <roy.fan.zhang@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: Re: [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
> 
> 14/04/2020 12:22, Pablo de Lara:
> > Now that capabilities are checked to see if an algorithm is supported
> > by a device, there is no need to check for a specific version of a
> > library used in a PMD.
> 
> Yes, and even no need to check the PMD at all.
> All *_TEST_TARGET_PMD_* constants should be removed.
> 

I am currently working on this. However, I would like to split this effort
into multiple patchsets. A first one addressing the problem of needing to check for
specific information from PMDs (such as IMB_VERSION_NUM), which should not
have any effect on the number of test cases ran for each PMD, and another one which
addresses your comment, and that will enable test cases for all PMDs.
This last patchset will require testing from all PMD maintainers and it is a less urgent
problem to resolve, so we can decide if we want to merge it in this release or wait
for more time in 20.08.

Thanks,
Pablo

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v3 0/2] Crypto test refactoring (first phase)
  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-14 17:40   ` Pablo de Lara
  2020-04-14 17:40     ` [dpdk-dev] [PATCH v3 1/2] test/crypto: add capability check Pablo de Lara
                       ` (2 more replies)
  2020-04-15 10:29   ` [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check Dybkowski, AdamX
  2 siblings, 3 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 17:40 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

This patchset adds crypto capability checks
in the cryptodev test code, to be able to skip unsupported
test cases for each crypto device, according to their
capabilities.

Thanks to this patchset, there is no more need to check
for internal PMD information in the test code, making it
more "device-agnostic".

Pablo de Lara (2):
  test/crypto: add capability check
  test/crypto: do not check for internal PMD information

 app/test/test_cryptodev_blockcipher.c       | 49 +++++++++++++++++++++++++++++
 app/test/test_cryptodev_hash_test_vectors.h | 25 ---------------
 2 files changed, 49 insertions(+), 25 deletions(-)

-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v3 1/2] test/crypto: add capability check
  2020-04-14 17:40   ` [dpdk-dev] [PATCH v3 0/2] Crypto test refactoring (first phase) Pablo de Lara
@ 2020-04-14 17:40     ` 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-16  9:08     ` [dpdk-dev] [PATCH v4 0/2] Crypto test refactoring (first phase) Pablo de Lara
  2 siblings, 2 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 17:40 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

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>
---
 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;
+	}
+
 	/* preparing data */
 	if (t->op_mask & BLOCKCIPHER_TEST_OP_AUTH)
 		buf_len += digest_len;
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v3 2/2] test/crypto: do not check for internal PMD information
  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-14 17:40     ` 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
  2 siblings, 1 reply; 35+ messages in thread
From: Pablo de Lara @ 2020-04-14 17:40 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

Now that capabilities are checked to see if an algorithm
is supported by a device, there is no need to check
for a specific version of a library used in a PMD.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 app/test/test_cryptodev_hash_test_vectors.h | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/app/test/test_cryptodev_hash_test_vectors.h b/app/test/test_cryptodev_hash_test_vectors.h
index cff2831..2ed077f 100644
--- a/app/test/test_cryptodev_hash_test_vectors.h
+++ b/app/test/test_cryptodev_hash_test_vectors.h
@@ -9,11 +9,6 @@
 #include <intel-ipsec-mb.h>
 #endif
 
-#if !defined(IMB_VERSION_NUM)
-#define IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
-#define IMB_VERSION_NUM IMB_VERSION(0, 49, 0)
-#endif
-
 static const uint8_t plaintext_hash[] = {
 	"What a lousy earth! He wondered how many people "
 	"were destitute that same night even in his own "
@@ -462,9 +457,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -475,9 +468,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -542,9 +533,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -555,9 +544,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -598,9 +585,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -611,9 +596,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -656,9 +639,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -669,9 +650,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -714,9 +693,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
 	},
 	{
@@ -726,9 +703,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-14 17:22     ` De Lara Guarch, Pablo
@ 2020-04-14 17:48       ` Thomas Monjalon
  2020-04-22  9:16         ` Thomas Monjalon
  0 siblings, 1 reply; 35+ messages in thread
From: Thomas Monjalon @ 2020-04-14 17:48 UTC (permalink / raw)
  To: akhil.goyal, De Lara Guarch, Pablo; +Cc: Doherty, Declan, Zhang, Roy Fan, dev

14/04/2020 19:22, De Lara Guarch, Pablo:
> Hi Thomas,
> 
> From: Thomas Monjalon <thomas@monjalon.net>
> > 14/04/2020 12:22, Pablo de Lara:
> > > Now that capabilities are checked to see if an algorithm is supported
> > > by a device, there is no need to check for a specific version of a
> > > library used in a PMD.
> > 
> > Yes, and even no need to check the PMD at all.
> > All *_TEST_TARGET_PMD_* constants should be removed.
> > 
> 
> I am currently working on this. However, I would like to split this effort
> into multiple patchsets. A first one addressing the problem of needing to check for
> specific information from PMDs (such as IMB_VERSION_NUM), which should not
> have any effect on the number of test cases ran for each PMD, and another one which
> addresses your comment, and that will enable test cases for all PMDs.
> This last patchset will require testing from all PMD maintainers and it is a less urgent
> problem to resolve, so we can decide if we want to merge it in this release or wait
> for more time in 20.08.

Thanks for your efforts Pablo.
If the basic is working, I am for removing *_TEST_TARGET_PMD_* in 20.05,
and allow PMD maintainers to validate the tests during -rc phases.



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] test/crypto: add capability check
  2020-04-14 10:22 [dpdk-dev] [PATCH 1/2] test/crypto: add capability check 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:35 ` [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check Pablo de Lara
@ 2020-04-15  9:16 ` Dybkowski, AdamX
  2020-04-15  9:23 ` Dybkowski, AdamX
  2020-04-15 10:29 ` Dybkowski, AdamX
  4 siblings, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15  9:16 UTC (permalink / raw)
  To: De Lara Guarch, Pablo; +Cc: dev

Hi Pablo,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 12:23
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com;
> Zhang, Roy Fan <roy.fan.zhang@intel.com>; thomas@monjalon.net
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH 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@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..b0e53ee 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,
> @@ -112,6 +153,14 @@ test_blockcipher_one_case(const struct
> blockcipher_test_case *t,
>  		nb_segs = 3;
>  	}
> 
> +        /* Check if PMD is capable of performing that test */
> +        if (verify_algo_support(t, dev_id, digest_len) < 0) {
> +		 RTE_LOG(DEBUG, USER1,
> +			"Device is not capable of performing this algorithm."
> +			"Test Skipped.\n");

[Adam] Maybe add a space after "algorithm." So it's not stuck with the rest of the string.
Or - probably even better - write the whole string in one line. It'll pass the git check (if it's the long text followed by the ')' and ';' characters only). Such long text is easier to find when debugging.

Adam

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] test/crypto: add capability check
  2020-04-14 10:22 [dpdk-dev] [PATCH 1/2] test/crypto: add capability check Pablo de Lara
                   ` (2 preceding siblings ...)
  2020-04-15  9:16 ` [dpdk-dev] [PATCH " Dybkowski, AdamX
@ 2020-04-15  9:23 ` Dybkowski, AdamX
  2020-04-15 10:29 ` Dybkowski, AdamX
  4 siblings, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15  9:23 UTC (permalink / raw)
  To: De Lara Guarch, Pablo; +Cc: dev

One more thing:

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 12:23
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com;
> Zhang, Roy Fan <roy.fan.zhang@intel.com>; thomas@monjalon.net
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH 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@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..b0e53ee 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,
> @@ -112,6 +153,14 @@ test_blockcipher_one_case(const struct
> blockcipher_test_case *t,
>  		nb_segs = 3;
>  	}
> 
> +        /* Check if PMD is capable of performing that test */
> +        if (verify_algo_support(t, dev_id, digest_len) < 0) {
> +		 RTE_LOG(DEBUG, USER1,
> +			"Device is not capable of performing this algorithm."
> +			"Test Skipped.\n");

Pablo, please explain why did you use RTE_LOG here? All strings in this source code file are shown using printf. This is the only place with RTE_LOG call now.

Adam

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  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-15 10:28   ` Dybkowski, AdamX
  1 sibling, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15 10:28 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan, akhil.goyal, Zhang,
	Roy Fan, thomas
  Cc: dev, De Lara Guarch, Pablo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 12:23
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com;
> Zhang, Roy Fan <roy.fan.zhang@intel.com>; thomas@monjalon.net
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for
> IMB_VERSION_NUM
> 
> Now that capabilities are checked to see if an algorithm is supported by a
> device, there is no need to check for a specific version of a library used in a
> PMD.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] test/crypto: add capability check
  2020-04-14 10:22 [dpdk-dev] [PATCH 1/2] test/crypto: add capability check Pablo de Lara
                   ` (3 preceding siblings ...)
  2020-04-15  9:23 ` Dybkowski, AdamX
@ 2020-04-15 10:29 ` Dybkowski, AdamX
  4 siblings, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15 10:29 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan, akhil.goyal, Zhang,
	Roy Fan, thomas
  Cc: dev, De Lara Guarch, Pablo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 12:23
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com;
> Zhang, Roy Fan <roy.fan.zhang@intel.com>; thomas@monjalon.net
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH 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@intel.com>

Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/2] test/crypto: add capability check
  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-14 17:40   ` [dpdk-dev] [PATCH v3 0/2] Crypto test refactoring (first phase) Pablo de Lara
@ 2020-04-15 10:29   ` Dybkowski, AdamX
  2 siblings, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15 10:29 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan, akhil.goyal, Zhang,
	Roy Fan, thomas
  Cc: dev, De Lara Guarch, Pablo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 12:36
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com;
> Zhang, Roy Fan <roy.fan.zhang@intel.com>; thomas@monjalon.net
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH v2 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@intel.com>

Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] test/crypto: do not check for IMB_VERSION_NUM
  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
  0 siblings, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15 10:30 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan, akhil.goyal, Zhang,
	Roy Fan, thomas
  Cc: dev, De Lara Guarch, Pablo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 12:36
> To: Doherty, Declan <declan.doherty@intel.com>; akhil.goyal@nxp.com;
> Zhang, Roy Fan <roy.fan.zhang@intel.com>; thomas@monjalon.net
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH v2 2/2] test/crypto: do not check for
> IMB_VERSION_NUM
> 
> Now that capabilities are checked to see if an algorithm is supported by a
> device, there is no need to check for a specific version of a library used in a
> PMD.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] test/crypto: do not check for internal PMD information
  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
  0 siblings, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15 10:30 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan
  Cc: dev, akhil.goyal, De Lara Guarch, Pablo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 19:41
> To: Doherty, Declan <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH v3 2/2] test/crypto: do not check for internal
> PMD information
> 
> Now that capabilities are checked to see if an algorithm is supported by a
> device, there is no need to check for a specific version of a library used in a
> PMD.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v3 1/2] test/crypto: add capability check
  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
  1 sibling, 0 replies; 35+ messages in thread
From: Dybkowski, AdamX @ 2020-04-15 10:31 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan
  Cc: dev, akhil.goyal, De Lara Guarch, Pablo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Tuesday, 14 April, 2020 19:41
> To: Doherty, Declan <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [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@intel.com>

Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v4 0/2] Crypto test refactoring (first phase)
  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-14 17:40     ` [dpdk-dev] [PATCH v3 2/2] test/crypto: do not check for internal PMD information Pablo de Lara
@ 2020-04-16  9:08     ` Pablo de Lara
  2020-04-16  9:08       ` [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check Pablo de Lara
                         ` (2 more replies)
  2 siblings, 3 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-16  9:08 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

This patchset adds crypto capability checks
in the cryptodev test code, to be able to skip unsupported
test cases for each crypto device, according to their
capabilities.

Thanks to this patchset, there is no more need to check
for internal PMD information in the test code, making it
more "device-agnostic".

Changes in v4:
- Avoid checking algorithm parameters when CIPHER_NULL
  and/or AUTH_NULL are used (such as key size, IV size...),
  as these are not relevant
- Replaced "&&" with "&" in an if statament

Pablo de Lara (2):
  test/crypto: add capability check
  test/crypto: do not check for internal PMD information

 app/test/test_cryptodev_blockcipher.c       | 58 ++++++++++++++++++++++++++++-
 app/test/test_cryptodev_hash_test_vectors.h | 25 -------------
 2 files changed, 57 insertions(+), 26 deletions(-)

-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check
  2020-04-16  9:08     ` [dpdk-dev] [PATCH v4 0/2] Crypto test refactoring (first phase) Pablo de Lara
@ 2020-04-16  9:08       ` Pablo de Lara
  2020-04-16 15:35         ` Ruifeng Wang
  2020-04-16 16:26         ` Trahe, Fiona
  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 17:24       ` [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase) Pablo de Lara
  2 siblings, 2 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-16  9:08 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara, Adam Dybkowski

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>

---
 app/test/test_cryptodev_blockcipher.c | 58 ++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

diff --git a/app/test/test_cryptodev_blockcipher.c b/app/test/test_cryptodev_blockcipher.c
index 2ff7fc9..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,
@@ -93,11 +136,13 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
 		uint64_t feat_flags = dev_info.feature_flags;
 		uint64_t oop_flag = RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT;
 
-		if (t->feature_mask && BLOCKCIPHER_TEST_FEATURE_OOP) {
+		if (t->feature_mask & BLOCKCIPHER_TEST_FEATURE_OOP) {
 			if (!(feat_flags & oop_flag)) {
 				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


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v4 2/2] test/crypto: do not check for internal PMD information
  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  9:08       ` 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
  2 siblings, 1 reply; 35+ messages in thread
From: Pablo de Lara @ 2020-04-16  9:08 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara, Adam Dybkowski

Now that capabilities are checked to see if an algorithm
is supported by a device, there is no need to check
for a specific version of a library used in a PMD.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>

---
 app/test/test_cryptodev_hash_test_vectors.h | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/app/test/test_cryptodev_hash_test_vectors.h b/app/test/test_cryptodev_hash_test_vectors.h
index cff2831..2ed077f 100644
--- a/app/test/test_cryptodev_hash_test_vectors.h
+++ b/app/test/test_cryptodev_hash_test_vectors.h
@@ -9,11 +9,6 @@
 #include <intel-ipsec-mb.h>
 #endif
 
-#if !defined(IMB_VERSION_NUM)
-#define IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
-#define IMB_VERSION_NUM IMB_VERSION(0, 49, 0)
-#endif
-
 static const uint8_t plaintext_hash[] = {
 	"What a lousy earth! He wondered how many people "
 	"were destitute that same night even in his own "
@@ -462,9 +457,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -475,9 +468,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -542,9 +533,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -555,9 +544,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -598,9 +585,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -611,9 +596,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -656,9 +639,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -669,9 +650,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -714,9 +693,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
 	},
 	{
@@ -726,9 +703,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v3 1/2] test/crypto: add capability check
  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
  1 sibling, 0 replies; 35+ messages in thread
From: De Lara Guarch, Pablo @ 2020-04-16 11:15 UTC (permalink / raw)
  To: Doherty, Declan; +Cc: dev, akhil.goyal

Hi,

> -----Original Message-----
> From: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Sent: Tuesday, April 14, 2020 6:41 PM
> To: Doherty, Declan <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@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@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

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check
  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
  1 sibling, 0 replies; 35+ messages in thread
From: Ruifeng Wang @ 2020-04-16 15:35 UTC (permalink / raw)
  To: Pablo de Lara, declan.doherty
  Cc: dev, Akhil.goyal@nxp.com, Adam Dybkowski, nd


> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Thursday, April 16, 2020 5:08 PM
> To: declan.doherty@intel.com
> Cc: dev@dpdk.org; Akhil.goyal@nxp.com; Pablo de Lara
> <pablo.de.lara.guarch@intel.com>; Adam Dybkowski
> <adamx.dybkowski@intel.com>
> Subject: [dpdk-dev] [PATCH v4 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@intel.com>
> Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
> 
> ---
Tested-by: Ruifeng Wang <ruifeng.wang@arm.com>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v4 2/2] test/crypto: do not check for internal PMD information
  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
  0 siblings, 0 replies; 35+ messages in thread
From: Ruifeng Wang @ 2020-04-16 15:35 UTC (permalink / raw)
  To: Pablo de Lara, declan.doherty
  Cc: dev, Akhil.goyal@nxp.com, Adam Dybkowski, nd


> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Thursday, April 16, 2020 5:08 PM
> To: declan.doherty@intel.com
> Cc: dev@dpdk.org; Akhil.goyal@nxp.com; Pablo de Lara
> <pablo.de.lara.guarch@intel.com>; Adam Dybkowski
> <adamx.dybkowski@intel.com>
> Subject: [dpdk-dev] [PATCH v4 2/2] test/crypto: do not check for internal
> PMD information
> 
> Now that capabilities are checked to see if an algorithm is supported by a
> device, there is no need to check for a specific version of a library used in a
> PMD.
> 
> 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>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check
  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
  1 sibling, 1 reply; 35+ messages in thread
From: Trahe, Fiona @ 2020-04-16 16:26 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan
  Cc: dev, akhil.goyal, De Lara Guarch, Pablo, Dybkowski, AdamX, Trahe, Fiona

Hi Pablo,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Thursday, April 16, 2020 10:08 AM
> To: Doherty, Declan <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> Dybkowski, AdamX <adamx.dybkowski@intel.com>
> Subject: [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check

///snip///
> +static int
>  test_blockcipher_one_case(const struct blockcipher_test_case *t,
>  	struct rte_mempool *mbuf_pool,
>  	struct rte_mempool *op_mpool,
> @@ -93,11 +136,13 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
>  		uint64_t feat_flags = dev_info.feature_flags;
>  		uint64_t oop_flag = RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT;
> 
> -		if (t->feature_mask && BLOCKCIPHER_TEST_FEATURE_OOP) {
> +		if (t->feature_mask & BLOCKCIPHER_TEST_FEATURE_OOP) {
[Fiona] Isn't this a fix which should be a separate patch and should be backported to stable releases?

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check
  2020-04-16 16:26         ` Trahe, Fiona
@ 2020-04-16 16:44           ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 35+ messages in thread
From: De Lara Guarch, Pablo @ 2020-04-16 16:44 UTC (permalink / raw)
  To: Trahe, Fiona, Doherty, Declan; +Cc: dev, akhil.goyal, Dybkowski, AdamX

Hi Fiona,

> -----Original Message-----
> From: Trahe, Fiona <fiona.trahe@intel.com>
> Sent: Thursday, April 16, 2020 5:26 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Doherty, Declan
> <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>; Dybkowski, AdamX
> <adamx.dybkowski@intel.com>; Trahe, Fiona <fiona.trahe@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check
> 
> Hi Pablo,
> 
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> > Sent: Thursday, April 16, 2020 10:08 AM
> > To: Doherty, Declan <declan.doherty@intel.com>
> > Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo
> > <pablo.de.lara.guarch@intel.com>; Dybkowski, AdamX
> > <adamx.dybkowski@intel.com>
> > Subject: [dpdk-dev] [PATCH v4 1/2] test/crypto: add capability check
> 
> ///snip///
> > +static int
> >  test_blockcipher_one_case(const struct blockcipher_test_case *t,
> >  	struct rte_mempool *mbuf_pool,
> >  	struct rte_mempool *op_mpool,
> > @@ -93,11 +136,13 @@ test_blockcipher_one_case(const struct
> blockcipher_test_case *t,
> >  		uint64_t feat_flags = dev_info.feature_flags;
> >  		uint64_t oop_flag =
> RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT;
> >
> > -		if (t->feature_mask && BLOCKCIPHER_TEST_FEATURE_OOP) {
> > +		if (t->feature_mask & BLOCKCIPHER_TEST_FEATURE_OOP) {
> [Fiona] Isn't this a fix which should be a separate patch and should be
> backported to stable releases?

Yes, you are right. I will send a separate patch for this then.

Thanks!
Pablo

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase)
  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  9:08       ` [dpdk-dev] [PATCH v4 2/2] test/crypto: do not check for internal PMD information Pablo de Lara
@ 2020-04-16 17:24       ` Pablo de Lara
  2020-04-16 17:24         ` [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check Pablo de Lara
                           ` (2 more replies)
  2 siblings, 3 replies; 35+ messages in thread
From: Pablo de Lara @ 2020-04-16 17:24 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

This patchset adds crypto capability checks
in the cryptodev test code, to be able to skip unsupported
test cases for each crypto device, according to their
capabilities.

Thanks to this patchset, there is no more need to check
for internal PMD information in the test code, making it
more "device-agnostic".

Changes in v5:
- Removed fix from the first commit, sending it in a separate patch.

Changes in v4:
- Avoid checking algorithm parameters when CIPHER_NULL
  and/or AUTH_NULL are used (such as key size, IV size...),
  as these are not relevant
- Replaced "&&" with "&" in an if statament


Pablo de Lara (2):
  test/crypto: add capability check
  test/crypto: do not check for internal PMD information

 app/test/test_cryptodev_blockcipher.c       | 56 +++++++++++++++++++++++++++++
 app/test/test_cryptodev_hash_test_vectors.h | 25 -------------
 2 files changed, 56 insertions(+), 25 deletions(-)

-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check
  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
  2020-04-16 17:53           ` 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-19 21:15         ` [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase) Akhil Goyal
  2 siblings, 1 reply; 35+ messages in thread
From: Pablo de Lara @ 2020-04-16 17:24 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

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


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [dpdk-dev] [PATCH v5 2/2] test/crypto: do not check for internal PMD information
  2020-04-16 17:24       ` [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase) Pablo de Lara
  2020-04-16 17:24         ` [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check Pablo de Lara
@ 2020-04-16 17:24         ` 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
  2 siblings, 1 reply; 35+ messages in thread
From: Pablo de Lara @ 2020-04-16 17:24 UTC (permalink / raw)
  To: declan.doherty; +Cc: dev, akhil.goyal, Pablo de Lara

Now that capabilities are checked to see if an algorithm
is supported by a device, there is no need to check
for a specific version of a library used in a PMD.

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_hash_test_vectors.h | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/app/test/test_cryptodev_hash_test_vectors.h b/app/test/test_cryptodev_hash_test_vectors.h
index cff2831..2ed077f 100644
--- a/app/test/test_cryptodev_hash_test_vectors.h
+++ b/app/test/test_cryptodev_hash_test_vectors.h
@@ -9,11 +9,6 @@
 #include <intel-ipsec-mb.h>
 #endif
 
-#if !defined(IMB_VERSION_NUM)
-#define IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
-#define IMB_VERSION_NUM IMB_VERSION(0, 49, 0)
-#endif
-
 static const uint8_t plaintext_hash[] = {
 	"What a lousy earth! He wondered how many people "
 	"were destitute that same night even in his own "
@@ -462,9 +457,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -475,9 +468,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -542,9 +533,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -555,9 +544,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -598,9 +585,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -611,9 +596,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -656,9 +639,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -669,9 +650,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
@@ -714,9 +693,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
 	},
 	{
@@ -726,9 +703,7 @@ static const struct blockcipher_test_case hash_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-#if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
-#endif
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
 	},
-- 
2.7.5


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check
  2020-04-16 17:24         ` [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check Pablo de Lara
@ 2020-04-16 17:53           ` Trahe, Fiona
  0 siblings, 0 replies; 35+ messages in thread
From: Trahe, Fiona @ 2020-04-16 17:53 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan
  Cc: dev, akhil.goyal, De Lara Guarch, Pablo



> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Thursday, April 16, 2020 6:24 PM
> To: Doherty, Declan <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH v5 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@intel.com>
> Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
> Tested-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v5 2/2] test/crypto: do not check for internal PMD information
  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
  0 siblings, 0 replies; 35+ messages in thread
From: Trahe, Fiona @ 2020-04-16 17:53 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Doherty, Declan
  Cc: dev, akhil.goyal, De Lara Guarch, Pablo



> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pablo de Lara
> Sent: Thursday, April 16, 2020 6:24 PM
> To: Doherty, Declan <declan.doherty@intel.com>
> Cc: dev@dpdk.org; akhil.goyal@nxp.com; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH v5 2/2] test/crypto: do not check for internal PMD information
> 
> Now that capabilities are checked to see if an algorithm
> is supported by a device, there is no need to check
> for a specific version of a library used in a PMD.
> 
> 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>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
 


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase)
  2020-04-16 17:24       ` [dpdk-dev] [PATCH v5 0/2] Crypto test refactoring (first phase) Pablo de Lara
  2020-04-16 17:24         ` [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check Pablo de Lara
  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-19 21:15         ` Akhil Goyal
  2 siblings, 0 replies; 35+ messages in thread
From: Akhil Goyal @ 2020-04-19 21:15 UTC (permalink / raw)
  To: Pablo de Lara, declan.doherty; +Cc: dev

> This patchset adds crypto capability checks
> in the cryptodev test code, to be able to skip unsupported
> test cases for each crypto device, according to their
> capabilities.
> 
> Thanks to this patchset, there is no more need to check
> for internal PMD information in the test code, making it
> more "device-agnostic".
> 
> Changes in v5:
> - Removed fix from the first commit, sending it in a separate patch.
> 
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

Applied to dpdk-next-crypto

Thanks.


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-14 17:48       ` Thomas Monjalon
@ 2020-04-22  9:16         ` Thomas Monjalon
  2020-04-22  9:43           ` Akhil Goyal
  0 siblings, 1 reply; 35+ messages in thread
From: Thomas Monjalon @ 2020-04-22  9:16 UTC (permalink / raw)
  To: akhil.goyal, De Lara Guarch, Pablo; +Cc: dev, Doherty, Declan, Zhang, Roy Fan

14/04/2020 19:48, Thomas Monjalon:
> 14/04/2020 19:22, De Lara Guarch, Pablo:
> > From: Thomas Monjalon <thomas@monjalon.net>
> > > 14/04/2020 12:22, Pablo de Lara:
> > > > Now that capabilities are checked to see if an algorithm is supported
> > > > by a device, there is no need to check for a specific version of a
> > > > library used in a PMD.
> > > 
> > > Yes, and even no need to check the PMD at all.
> > > All *_TEST_TARGET_PMD_* constants should be removed.
> > > 
> > 
> > I am currently working on this. However, I would like to split this effort
> > into multiple patchsets. A first one addressing the problem of needing to check for
> > specific information from PMDs (such as IMB_VERSION_NUM), which should not
> > have any effect on the number of test cases ran for each PMD, and another one which
> > addresses your comment, and that will enable test cases for all PMDs.
> > This last patchset will require testing from all PMD maintainers and it is a less urgent
> > problem to resolve, so we can decide if we want to merge it in this release or wait
> > for more time in 20.08.
> 
> Thanks for your efforts Pablo.
> If the basic is working, I am for removing *_TEST_TARGET_PMD_* in 20.05,
> and allow PMD maintainers to validate the tests during -rc phases.

Some patches using capabilities are merged in the crypto test.

What else is remaining? I see rte_cryptodev_driver_id_get() is still used.
I think rte_cryptodev_driver_id_get() should be deprecated.




^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-22  9:16         ` Thomas Monjalon
@ 2020-04-22  9:43           ` Akhil Goyal
  2020-04-22 10:56             ` Thomas Monjalon
  0 siblings, 1 reply; 35+ messages in thread
From: Akhil Goyal @ 2020-04-22  9:43 UTC (permalink / raw)
  To: Thomas Monjalon, De Lara Guarch, Pablo
  Cc: dev, Doherty, Declan, Zhang, Roy Fan

Hi Thomas,
> 14/04/2020 19:48, Thomas Monjalon:
> > 14/04/2020 19:22, De Lara Guarch, Pablo:
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > 14/04/2020 12:22, Pablo de Lara:
> > > > > Now that capabilities are checked to see if an algorithm is supported
> > > > > by a device, there is no need to check for a specific version of a
> > > > > library used in a PMD.
> > > >
> > > > Yes, and even no need to check the PMD at all.
> > > > All *_TEST_TARGET_PMD_* constants should be removed.
> > > >
> > >
> > > I am currently working on this. However, I would like to split this effort
> > > into multiple patchsets. A first one addressing the problem of needing to
> check for
> > > specific information from PMDs (such as IMB_VERSION_NUM), which should
> not
> > > have any effect on the number of test cases ran for each PMD, and another
> one which
> > > addresses your comment, and that will enable test cases for all PMDs.
> > > This last patchset will require testing from all PMD maintainers and it is a less
> urgent
> > > problem to resolve, so we can decide if we want to merge it in this release or
> wait
> > > for more time in 20.08.
> >
> > Thanks for your efforts Pablo.
> > If the basic is working, I am for removing *_TEST_TARGET_PMD_* in 20.05,
> > and allow PMD maintainers to validate the tests during -rc phases.
> 
> Some patches using capabilities are merged in the crypto test.
> 
> What else is remaining? I see rte_cryptodev_driver_id_get() is still used.
> I think rte_cryptodev_driver_id_get() should be deprecated.
> 
All of the cleanup cannot be done in one go. There are quite a few things which need to be cleaned
1. many test cases are checking the PMD type for specific PMDs. That need to be removed.
     Currently it is done only for the block cipher cases.
2. many PMDs are maintaining their separate test suites. Which should be moved to a single one
3. there are some PDCP specific cases which need to be moved to security test.

For #1, we need to remove all calls to rte_cryptodev_driver_id_get and every PMD should check
If it has properly defined capabilities or not.

I plan  to do #2 and #3 for NXP platforms in a couple of week. May be before RC2.
I have asked all the PMD maintainers to move to a single testsuite otherwise their PMD changes will not
Be picked.

Regards,
Akhil

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] test/crypto: do not check for IMB_VERSION_NUM
  2020-04-22  9:43           ` Akhil Goyal
@ 2020-04-22 10:56             ` Thomas Monjalon
  0 siblings, 0 replies; 35+ messages in thread
From: Thomas Monjalon @ 2020-04-22 10:56 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Akhil Goyal; +Cc: dev, Doherty, Declan, Zhang, Roy Fan

22/04/2020 11:43, Akhil Goyal:
> Hi Thomas,
> > 14/04/2020 19:48, Thomas Monjalon:
> > > 14/04/2020 19:22, De Lara Guarch, Pablo:
> > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > > 14/04/2020 12:22, Pablo de Lara:
> > > > > > Now that capabilities are checked to see if an algorithm is supported
> > > > > > by a device, there is no need to check for a specific version of a
> > > > > > library used in a PMD.
> > > > >
> > > > > Yes, and even no need to check the PMD at all.
> > > > > All *_TEST_TARGET_PMD_* constants should be removed.
> > > > >
> > > >
> > > > I am currently working on this. However, I would like to split this effort
> > > > into multiple patchsets. A first one addressing the problem of needing to
> > check for
> > > > specific information from PMDs (such as IMB_VERSION_NUM), which should
> > not
> > > > have any effect on the number of test cases ran for each PMD, and another
> > one which
> > > > addresses your comment, and that will enable test cases for all PMDs.
> > > > This last patchset will require testing from all PMD maintainers and it is a less
> > urgent
> > > > problem to resolve, so we can decide if we want to merge it in this release or
> > wait
> > > > for more time in 20.08.
> > >
> > > Thanks for your efforts Pablo.
> > > If the basic is working, I am for removing *_TEST_TARGET_PMD_* in 20.05,
> > > and allow PMD maintainers to validate the tests during -rc phases.
> > 
> > Some patches using capabilities are merged in the crypto test.
> > 
> > What else is remaining? I see rte_cryptodev_driver_id_get() is still used.
> > I think rte_cryptodev_driver_id_get() should be deprecated.
> > 
> All of the cleanup cannot be done in one go. There are quite a few things which need to be cleaned
> 1. many test cases are checking the PMD type for specific PMDs. That need to be removed.
>      Currently it is done only for the block cipher cases.
> 2. many PMDs are maintaining their separate test suites. Which should be moved to a single one
> 3. there are some PDCP specific cases which need to be moved to security test.
> 
> For #1, we need to remove all calls to rte_cryptodev_driver_id_get and every PMD should check
> If it has properly defined capabilities or not.
> 
> I plan  to do #2 and #3 for NXP platforms in a couple of week. May be before RC2.
> I have asked all the PMD maintainers to move to a single testsuite otherwise their PMD changes will not
> Be picked.

That's perfect Akhil, thanks for driving it.



^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2020-04-22 10:56 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-14 10:22 [dpdk-dev] [PATCH 1/2] test/crypto: add capability check 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         ` [dpdk-dev] [PATCH v5 1/2] test/crypto: add capability check Pablo de Lara
2020-04-16 17:53           ` 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

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).