test/crypto: add capability check for ZUC test cases

Message ID 20190715121451.6020-1-damianx.nowak@intel.com (mailing list archive)
State Accepted, archived
Delegated to: akhil goyal
Headers
Series test/crypto: add capability check for ZUC test cases |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Damian Nowak July 15, 2019, 12:14 p.m. UTC
  This patch adds checking if device support ZUC
algorithms before running ZUC test cases.
It also removes unnecessary checks of digest
appended space and fixes some comments wording.

Signed-off-by: Damian Nowak <damianx.nowak@intel.com>
---
 app/test/test_cryptodev.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)
  

Comments

Fiona Trahe July 15, 2019, 2:16 p.m. UTC | #1
> -----Original Message-----
> From: Nowak, DamianX
> Sent: Monday, July 15, 2019 1:15 PM
> To: dev@dpdk.org
> Cc: akhil.goyal@nxp.com; Trahe, Fiona <fiona.trahe@intel.com>; Kusztal, ArkadiuszX
> <arkadiuszx.kusztal@intel.com>; Nowak, DamianX <damianx.nowak@intel.com>
> Subject: [PATCH] test/crypto: add capability check for ZUC test cases
> 
> This patch adds checking if device support ZUC
> algorithms before running ZUC test cases.
> It also removes unnecessary checks of digest
> appended space and fixes some comments wording.
> 
> Signed-off-by: Damian Nowak <damianx.nowak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  
Akhil Goyal July 18, 2019, 3:28 p.m. UTC | #2
> >
> > This patch adds checking if device support ZUC
> > algorithms before running ZUC test cases.
> > It also removes unnecessary checks of digest
> > appended space and fixes some comments wording.
> >
> > Signed-off-by: Damian Nowak <damianx.nowak@intel.com>
> Acked-by: Fiona Trahe <fiona.trahe@intel.com>

Applied to dpdk-next-crypto

Thanks.
  

Patch

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 05422da..c822164 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -2909,8 +2909,6 @@  create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
 			(op_mode == IN_PLACE ?
 				ut_params->ibuf : ut_params->obuf),
 			data_pad_len);
-		TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
-			"no room to append auth tag");
 		memset(sym_op->auth.digest.data, 0, auth_tag_len);
 	} else {
 		uint16_t remaining_off = (auth_offset >> 3) + (auth_len >> 3);
@@ -2924,8 +2922,6 @@  create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
 				uint8_t *, remaining_off);
 		sym_op->auth.digest.phys_addr = rte_pktmbuf_iova_offset(sgl_buf,
 				remaining_off);
-		TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
-			"no room to append auth tag");
 		memset(sym_op->auth.digest.data, 0, remaining_off);
 		while (sgl_buf->next != NULL) {
 			memset(rte_pktmbuf_mtod(sgl_buf, uint8_t *),
@@ -5002,7 +4998,7 @@  test_kasumi_auth_cipher_sgl(const struct kasumi_test_data *tdata,
 	}
 	memset(buffer, 0, sizeof(buffer));
 
-	/* Create SNOW 3G operation */
+	/* Create KASUMI operation */
 	retval = create_wireless_algo_auth_cipher_operation(
 		tdata->digest.len,
 		tdata->cipher_iv.data, tdata->cipher_iv.len,
@@ -5432,6 +5428,15 @@  test_zuc_auth_cipher(const struct wireless_test_data *tdata,
 	unsigned int ciphertext_len;
 
 	struct rte_cryptodev_info dev_info;
+	struct rte_cryptodev_sym_capability_idx cap_idx;
+
+	/* Check if device supports ZUC EIA3 */
+	cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
+	cap_idx.algo.auth = RTE_CRYPTO_AUTH_ZUC_EIA3;
+
+	if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0],
+			&cap_idx) == NULL)
+		return -ENOTSUP;
 
 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
 
@@ -5444,7 +5449,7 @@  test_zuc_auth_cipher(const struct wireless_test_data *tdata,
 		}
 	}
 
-	/* Create KASUMI session */
+	/* Create ZUC session */
 	retval = create_wireless_algo_auth_cipher_session(
 			ts_params->valid_devs[0],
 			(verify ? RTE_CRYPTO_CIPHER_OP_DECRYPT
@@ -5473,8 +5478,6 @@  test_zuc_auth_cipher(const struct wireless_test_data *tdata,
 
 	ciphertext_len = ceil_byte_length(tdata->ciphertext.len);
 	plaintext_len = ceil_byte_length(tdata->plaintext.len);
-	/* Append data which is padded to a multiple of */
-	/* the algorithms block size */
 	ciphertext_pad_len = RTE_ALIGN_CEIL(ciphertext_len, 16);
 	plaintext_pad_len = RTE_ALIGN_CEIL(plaintext_len, 16);
 
@@ -5600,6 +5603,15 @@  test_zuc_auth_cipher_sgl(const struct wireless_test_data *tdata,
 	uint8_t digest_buffer[10000];
 
 	struct rte_cryptodev_info dev_info;
+	struct rte_cryptodev_sym_capability_idx cap_idx;
+
+	/* Check if device supports ZUC EIA3 */
+	cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
+	cap_idx.algo.auth = RTE_CRYPTO_AUTH_ZUC_EIA3;
+
+	if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0],
+			&cap_idx) == NULL)
+		return -ENOTSUP;
 
 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);