DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer
@ 2017-10-12 13:07 alok.makhariya
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
                   ` (6 more replies)
  0 siblings, 7 replies; 25+ messages in thread
From: alok.makhariya @ 2017-10-12 13:07 UTC (permalink / raw)
  To: dev; +Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

The code would crash in case of segmented buffer if no check

Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 7b9a683..8a57b96 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -893,6 +893,13 @@ dpaa_sec_enqueue_op(struct rte_crypto_op *op,  struct dpaa_sec_qp *qp)
 			return ret;
 	}
 
+	/*
+	 * Segmented buffer is not supported.
+	 */
+        if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
+                op->status = RTE_CRYPTO_OP_STATUS_ERROR;
+                return -ENOTSUP;
+        }
 	if (is_auth_only(ses)) {
 		cf = build_auth_only(op, ses);
 	} else if (is_cipher_only(ses)) {
-- 
2.9.3

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

* [dpdk-dev] [PATCH] crypto/dpaa2_sec: add check for segmented buffer
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
@ 2017-10-12 13:07 ` alok.makhariya
  2017-10-13 15:38   ` [dpdk-dev] [PATCH v2] " alok.makhariya
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side alok.makhariya
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: alok.makhariya @ 2017-10-12 13:07 UTC (permalink / raw)
  To: dev
  Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal,
	Alok Makhariya, stable

From: Alok Makhariya <alok.makhariya@nxp.com>

The code would crash for segmented buffer if no check.

Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
Cc: stable@dpdk.org

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 672cacf..9895300 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -551,7 +551,13 @@ build_sec_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 	int ret = -1;
 
 	PMD_INIT_FUNC_TRACE();
-
+	/*
+	 * Segmented buffer is not supported.
+	 */
+        if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
+                op->status = RTE_CRYPTO_OP_STATUS_ERROR;
+                return -ENOTSUP;
+        }
 	switch (sess->ctxt_type) {
 	case DPAA2_SEC_CIPHER:
 		ret = build_cipher_fd(sess, op, fd, bpid);
-- 
2.9.3

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

* [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
@ 2017-10-12 13:07 ` alok.makhariya
  2017-10-13 14:22   ` Akhil Goyal
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: alok.makhariya @ 2017-10-12 13:07 UTC (permalink / raw)
  To: dev; +Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

Since the packet lengths are modified. It is not required to
explicitly reset the icv.
Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 8a57b96..b618b59 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -598,7 +598,6 @@ build_auth_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 		/* hash result or digest, save digest first */
 		rte_memcpy(old_digest, sym->auth.digest.data,
 			   ses->digest_length);
-		memset(sym->auth.digest.data, 0, ses->digest_length);
 		qm_sg_entry_set64(sg, start_addr + sym->auth.data.offset);
 		sg->length = sym->auth.data.length;
 		cpu_to_hw_sg(sg);
@@ -738,7 +737,6 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 
 		memcpy(ctx->digest, sym->aead.digest.data,
 		       ses->digest_length);
-		memset(sym->aead.digest.data, 0, ses->digest_length);
 		sg++;
 
 		qm_sg_entry_set64(sg, dpaa_mem_vtop(ctx->digest));
@@ -832,7 +830,6 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 
 		memcpy(ctx->digest, sym->auth.digest.data,
 		       ses->digest_length);
-		memset(sym->auth.digest.data, 0, ses->digest_length);
 		sg++;
 
 		qm_sg_entry_set64(sg, dpaa_mem_vtop(ctx->digest));
-- 
2.9.3

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

* [dpdk-dev] [PATCH] crypto/dpaa2_sec: remove memset of icv on decryption side
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side alok.makhariya
@ 2017-10-12 13:07 ` alok.makhariya
  2017-10-13 14:24   ` Akhil Goyal
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers alok.makhariya
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: alok.makhariya @ 2017-10-12 13:07 UTC (permalink / raw)
  To: dev
  Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal,
	Alok Makhariya, stable

From: Alok Makhariya <alok.makhariya@nxp.com>

Since the packet lengths are modified. It is not required to
explicitly reset the icv.

Fixes: 13273250eec5 ("crypto/dpaa2_sec: support AES-GCM and CTR")
Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
Cc: stable@dpdk.org

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 9895300..62b9203 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -203,7 +203,6 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
 		old_icv = (uint8_t *)(sge + 1);
 		memcpy(old_icv,	sym_op->aead.digest.data,
 		       sess->digest_length);
-		memset(sym_op->aead.digest.data, 0, sess->digest_length);
 		DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(old_icv));
 		sge->length = sess->digest_length;
 		DPAA2_SET_FD_LEN(fd, (sym_op->aead.data.length +
@@ -342,7 +341,6 @@ build_authenc_fd(dpaa2_sec_session *sess,
 		old_icv = (uint8_t *)(sge + 1);
 		memcpy(old_icv,	sym_op->auth.digest.data,
 		       sess->digest_length);
-		memset(sym_op->auth.digest.data, 0, sess->digest_length);
 		DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(old_icv));
 		sge->length = sess->digest_length;
 		DPAA2_SET_FD_LEN(fd, (sym_op->auth.data.length +
@@ -436,7 +434,6 @@ build_auth_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 		old_digest = (uint8_t *)(sge + 1);
 		rte_memcpy(old_digest, sym_op->auth.digest.data,
 			   sess->digest_length);
-		memset(sym_op->auth.digest.data, 0, sess->digest_length);
 		DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(old_digest));
 		sge->length = sess->digest_length;
 		fle->length = sym_op->auth.data.length +
-- 
2.9.3

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

* [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
                   ` (2 preceding siblings ...)
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
@ 2017-10-12 13:07 ` alok.makhariya
  2017-10-13 14:25   ` Akhil Goyal
  2017-10-22 19:35   ` [dpdk-dev] [PATCH v2 1/2] " alok.makhariya
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: " alok.makhariya
                   ` (2 subsequent siblings)
  6 siblings, 2 replies; 25+ messages in thread
From: alok.makhariya @ 2017-10-12 13:07 UTC (permalink / raw)
  To: dev; +Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

Enable out of place buffer test cases in nxp dpaa2_sec

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 42 +++++++++++++++++++++++------
 test/test/test_cryptodev.c                  |  6 +++++
 test/test/test_cryptodev_aes_test_vectors.h | 12 ++++++---
 test/test/test_cryptodev_des_test_vectors.h |  6 +++--
 4 files changed, 52 insertions(+), 14 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 62b9203..d466979 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -90,11 +90,17 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
 	uint32_t auth_only_len = sess->ext_params.aead_ctxt.auth_only_len;
 	int icv_len = sess->digest_length, retval;
 	uint8_t *old_icv;
+	struct rte_mbuf *dst;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			sess->iv.offset);
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (sym_op->m_dst)
+		dst = sym_op->m_dst;
+	else
+		dst = sym_op->m_src;
+
 	/* TODO we are using the first FLE entry to store Mbuf and session ctxt.
 	 * Currently we donot know which FLE has the mbuf stored.
 	 * So while retreiving we can go back 1 FLE from the FD -ADDR
@@ -155,9 +161,9 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
 	DPAA2_SET_FLE_SG_EXT(fle);
 
 	/* Configure Output SGE for Encap/Decap */
-	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src));
+	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst));
 	DPAA2_SET_FLE_OFFSET(sge, sym_op->aead.data.offset +
-				sym_op->m_src->data_off - auth_only_len);
+				dst->data_off - auth_only_len);
 	sge->length = sym_op->aead.data.length + auth_only_len;
 
 	if (sess->dir == DIR_ENC) {
@@ -235,9 +241,15 @@ build_authenc_fd(dpaa2_sec_session *sess,
 	uint8_t *old_icv;
 	uint8_t *iv_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			sess->iv.offset);
+	struct rte_mbuf *dst;
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (sym_op->m_dst)
+		dst = sym_op->m_dst;
+	else
+		dst = sym_op->m_src;
+
 	/* we are using the first FLE entry to store Mbuf.
 	 * Currently we donot know which FLE has the mbuf stored.
 	 * So while retreiving we can go back 1 FLE from the FD -ADDR
@@ -300,9 +312,9 @@ build_authenc_fd(dpaa2_sec_session *sess,
 	DPAA2_SET_FLE_SG_EXT(fle);
 
 	/* Configure Output SGE for Encap/Decap */
-	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src));
+	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst));
 	DPAA2_SET_FLE_OFFSET(sge, sym_op->cipher.data.offset +
-				sym_op->m_src->data_off);
+				dst->data_off);
 	sge->length = sym_op->cipher.data.length;
 
 	if (sess->dir == DIR_ENC) {
@@ -456,9 +468,15 @@ build_cipher_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 	struct ctxt_priv *priv = sess->ctxt;
 	uint8_t *iv_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			sess->iv.offset);
+	struct rte_mbuf *dst;
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (sym_op->m_dst)
+		dst = sym_op->m_dst;
+	else
+		dst = sym_op->m_src;
+
 	retval = rte_mempool_get(priv->fle_pool, (void **)(&fle));
 	if (retval) {
 		RTE_LOG(ERR, PMD, "Memory alloc failed for SGE\n");
@@ -503,9 +521,9 @@ build_cipher_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 		   sess->iv.length,
 		   sym_op->m_src->data_off);
 
-	DPAA2_SET_FLE_ADDR(fle, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src));
+	DPAA2_SET_FLE_ADDR(fle, DPAA2_MBUF_VADDR_TO_IOVA(dst));
 	DPAA2_SET_FLE_OFFSET(fle, sym_op->cipher.data.offset +
-			     sym_op->m_src->data_off);
+			     dst->data_off);
 
 	fle->length = sym_op->cipher.data.length + sess->iv.length;
 
@@ -657,6 +675,7 @@ sec_fd_to_mbuf(const struct qbman_fd *fd)
 	struct qbman_fle *fle;
 	struct rte_crypto_op *op;
 	struct ctxt_priv *priv;
+	struct rte_mbuf *dst, *src;
 
 	fle = (struct qbman_fle *)DPAA2_IOVA_TO_VADDR(DPAA2_GET_FD_ADDR(fd));
 
@@ -679,10 +698,17 @@ sec_fd_to_mbuf(const struct qbman_fd *fd)
 			DPAA2_GET_FLE_ADDR((fle - 1)));
 
 	/* Prefeth op */
-	rte_prefetch0(op->sym->m_src);
+	src = op->sym->m_src;
+	rte_prefetch0(src);
+
+	if (op->sym->m_dst) {
+		dst = op->sym->m_dst;
+		rte_prefetch0(dst);
+	} else
+		dst = src;
 
 	PMD_RX_LOG(DEBUG, "mbuf %p BMAN buf addr %p",
-		   (void *)op->sym->m_src, op->sym->m_src->buf_addr);
+		   (void *)dst, dst->buf_addr);
 
 	PMD_RX_LOG(DEBUG, "fdaddr =%p bpid =%d meta =%d off =%d, len =%d",
 		   (void *)DPAA2_GET_FD_ADDR(fd),
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index df84430..f889ecd 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -8837,6 +8837,12 @@ static struct unit_test_suite cryptodev_openssl_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			auth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt),
 
+		/** Out of place tests */
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_mb_AES_GCM_authenticated_encryption_oop),
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_mb_AES_GCM_authenticated_decryption_oop),
+
 		TEST_CASES_END() /**< NULL terminate unit test array */
 	}
 };
diff --git a/test/test/test_cryptodev_aes_test_vectors.h b/test/test/test_cryptodev_aes_test_vectors.h
index 0c7e48f..32c5deb 100644
--- a/test/test/test_cryptodev_aes_test_vectors.h
+++ b/test/test/test_cryptodev_aes_test_vectors.h
@@ -1431,7 +1431,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
+			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
@@ -1441,7 +1442,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
+			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
@@ -1591,7 +1593,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-256-CBC OOP Decryption",
@@ -1599,7 +1602,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-128-CTR Encryption",
diff --git a/test/test/test_cryptodev_des_test_vectors.h b/test/test/test_cryptodev_des_test_vectors.h
index ebf8869..e4efd23 100644
--- a/test/test/test_cryptodev_des_test_vectors.h
+++ b/test/test/test_cryptodev_des_test_vectors.h
@@ -1181,7 +1181,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Decryption Digest"
@@ -1190,7 +1191,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest"
-- 
2.9.3

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

* [dpdk-dev] [PATCH] crypto/dpaa_sec: add support for out of place buffers
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
                   ` (3 preceding siblings ...)
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers alok.makhariya
@ 2017-10-12 13:07 ` alok.makhariya
  2017-10-13 14:25   ` Akhil Goyal
  2017-10-13 14:43 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer Akhil Goyal
  2017-10-13 15:37 ` [dpdk-dev] [PATCH v2] " alok.makhariya
  6 siblings, 1 reply; 25+ messages in thread
From: alok.makhariya @ 2017-10-12 13:07 UTC (permalink / raw)
  To: dev; +Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

Enable out of place buffer test cases in dpaa_sec

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c          | 45 +++++++++++++++++++----------
 test/test/test_cryptodev.c                  |  6 ++++
 test/test/test_cryptodev_aes_test_vectors.h | 12 +++++---
 test/test/test_cryptodev_des_test_vectors.h |  6 ++--
 4 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index b618b59..70db1bc 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -623,11 +623,10 @@ static inline struct dpaa_sec_job *
 build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 {
 	struct rte_crypto_sym_op *sym = op->sym;
-	struct rte_mbuf *mbuf = sym->m_src;
 	struct dpaa_sec_job *cf;
 	struct dpaa_sec_op_ctx *ctx;
 	struct qm_sg_entry *sg;
-	phys_addr_t start_addr;
+	phys_addr_t src_start_addr, dst_start_addr;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			ses->iv.offset);
 
@@ -639,9 +638,16 @@ build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	ctx->op = op;
 	start_addr = rte_pktmbuf_mtophys(mbuf);
 
+	src_start_addr = rte_pktmbuf_mtophys(sym->m_src);
+
+	if (sym->m_dst)
+		dst_start_addr = rte_pktmbuf_mtophys(sym->m_dst);
+	else
+		dst_start_addr = src_start_addr;
+
 	/* output */
 	sg = &cf->sg[0];
-	qm_sg_entry_set64(sg, start_addr + sym->cipher.data.offset);
+	qm_sg_entry_set64(sg, dst_start_addr + sym->cipher.data.offset);
 	sg->length = sym->cipher.data.length + ses->iv.length;
 	cpu_to_hw_sg(sg);
 
@@ -661,7 +667,7 @@ build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	cpu_to_hw_sg(sg);
 
 	sg++;
-	qm_sg_entry_set64(sg, start_addr + sym->cipher.data.offset);
+	qm_sg_entry_set64(sg, src_start_addr + sym->cipher.data.offset);
 	sg->length = sym->cipher.data.length;
 	sg->final = 1;
 	cpu_to_hw_sg(sg);
@@ -673,16 +679,20 @@ static inline struct dpaa_sec_job *
 build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 {
 	struct rte_crypto_sym_op *sym = op->sym;
-	struct rte_mbuf *mbuf = sym->m_src;
 	struct dpaa_sec_job *cf;
 	struct dpaa_sec_op_ctx *ctx;
 	struct qm_sg_entry *sg;
-	phys_addr_t start_addr;
 	uint32_t length = 0;
+	phys_addr_t src_start_addr, dst_start_addr;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			ses->iv.offset);
 
-	start_addr = mbuf->buf_physaddr + mbuf->data_off;
+	src_start_addr = sym->m_src->buf_physaddr + sym->m_src->data_off;
+
+	if (sym->m_dst)
+		dst_start_addr = sym->m_dst->buf_physaddr + sym->m_dst->data_off;
+	else
+		dst_start_addr = src_start_addr;
 
 	ctx = dpaa_sec_alloc_ctx(ses);
 	if (!ctx)
@@ -710,7 +720,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 			cpu_to_hw_sg(sg);
 			sg++;
 		}
-		qm_sg_entry_set64(sg, start_addr + sym->aead.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->aead.data.offset);
 		sg->length = sym->aead.data.length;
 		length += sg->length;
 		sg->final = 1;
@@ -730,7 +740,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 			cpu_to_hw_sg(sg);
 			sg++;
 		}
-		qm_sg_entry_set64(sg, start_addr + sym->aead.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->aead.data.offset);
 		sg->length = sym->aead.data.length;
 		length += sg->length;
 		cpu_to_hw_sg(sg);
@@ -755,7 +765,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	sg++;
 	qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop(sg));
 	qm_sg_entry_set64(sg,
-		start_addr + sym->aead.data.offset - ses->auth_only_len);
+		dst_start_addr + sym->aead.data.offset - ses->auth_only_len);
 	sg->length = sym->aead.data.length + ses->auth_only_len;
 	length = sg->length;
 	if (is_encode(ses)) {
@@ -781,16 +791,19 @@ static inline struct dpaa_sec_job *
 build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 {
 	struct rte_crypto_sym_op *sym = op->sym;
-	struct rte_mbuf *mbuf = sym->m_src;
 	struct dpaa_sec_job *cf;
 	struct dpaa_sec_op_ctx *ctx;
 	struct qm_sg_entry *sg;
-	phys_addr_t start_addr;
+	phys_addr_t src_start_addr, dst_start_addr;
 	uint32_t length = 0;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			ses->iv.offset);
 
-	start_addr = mbuf->buf_physaddr + mbuf->data_off;
+	src_start_addr = mbuf->buf_physaddr + mbuf->data_off;
+	if (sym->m_dst)
+		dst_start_addr = sym->m_dst->buf_physaddr + sym->m_dst->data_off;
+	else
+		dst_start_addr = src_start_addr;
 
 	ctx = dpaa_sec_alloc_ctx(ses);
 	if (!ctx)
@@ -810,7 +823,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 		cpu_to_hw_sg(sg);
 
 		sg++;
-		qm_sg_entry_set64(sg, start_addr + sym->auth.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->auth.data.offset);
 		sg->length = sym->auth.data.length;
 		length += sg->length;
 		sg->final = 1;
@@ -823,7 +836,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 
 		sg++;
 
-		qm_sg_entry_set64(sg, start_addr + sym->auth.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->auth.data.offset);
 		sg->length = sym->auth.data.length;
 		length += sg->length;
 		cpu_to_hw_sg(sg);
@@ -847,7 +860,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	/* output */
 	sg++;
 	qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop(sg));
-	qm_sg_entry_set64(sg, start_addr + sym->cipher.data.offset);
+	qm_sg_entry_set64(sg, dst_start_addr + sym->cipher.data.offset);
 	sg->length = sym->cipher.data.length;
 	length = sg->length;
 	if (is_encode(ses)) {
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index f889ecd..72584ab 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -8629,6 +8629,12 @@ static struct unit_test_suite cryptodev_aesni_mb_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 						test_DES_docsis_mb_all),
 
+		/** Out of place tests */
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_mb_AES_GCM_authenticated_encryption_oop),
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_mb_AES_GCM_authenticated_decryption_oop),
+
 		TEST_CASES_END() /**< NULL terminate unit test array */
 	}
 };
diff --git a/test/test/test_cryptodev_aes_test_vectors.h b/test/test/test_cryptodev_aes_test_vectors.h
index 32c5deb..54ac8d6 100644
--- a/test/test/test_cryptodev_aes_test_vectors.h
+++ b/test/test/test_cryptodev_aes_test_vectors.h
@@ -1432,7 +1432,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
@@ -1443,7 +1444,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
@@ -1594,7 +1596,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-256-CBC OOP Decryption",
@@ -1603,7 +1606,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-128-CTR Encryption",
diff --git a/test/test/test_cryptodev_des_test_vectors.h b/test/test/test_cryptodev_des_test_vectors.h
index e4efd23..259a540 100644
--- a/test/test/test_cryptodev_des_test_vectors.h
+++ b/test/test/test_cryptodev_des_test_vectors.h
@@ -1182,7 +1182,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Decryption Digest"
@@ -1192,7 +1193,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest"
-- 
2.9.3

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side alok.makhariya
@ 2017-10-13 14:22   ` Akhil Goyal
  2017-10-16 11:21     ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 14:22 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal

On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> Since the packet lengths are modified. It is not required to
> explicitly reset the icv.
> Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa_sec/dpaa_sec.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
> index 8a57b96..b618b59 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -598,7 +598,6 @@ build_auth_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
>   		/* hash result or digest, save digest first */
>   		rte_memcpy(old_digest, sym->auth.digest.data,
>   			   ses->digest_length);
> -		memset(sym->auth.digest.data, 0, ses->digest_length);
>   		qm_sg_entry_set64(sg, start_addr + sym->auth.data.offset);
>   		sg->length = sym->auth.data.length;
>   		cpu_to_hw_sg(sg);
> @@ -738,7 +737,6 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
>   
>   		memcpy(ctx->digest, sym->aead.digest.data,
>   		       ses->digest_length);
> -		memset(sym->aead.digest.data, 0, ses->digest_length);
>   		sg++;
>   
>   		qm_sg_entry_set64(sg, dpaa_mem_vtop(ctx->digest));
> @@ -832,7 +830,6 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
>   
>   		memcpy(ctx->digest, sym->auth.digest.data,
>   		       ses->digest_length);
> -		memset(sym->auth.digest.data, 0, ses->digest_length);
>   		sg++;
>   
>   		qm_sg_entry_set64(sg, dpaa_mem_vtop(ctx->digest));
> 
Acked-by Akhil Goyal <akhil.goyal@nxp.com>

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa2_sec: remove memset of icv on decryption side
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
@ 2017-10-13 14:24   ` Akhil Goyal
  2017-10-16 11:21     ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 14:24 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal, stable

On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> Since the packet lengths are modified. It is not required to
> explicitly reset the icv.
> 
> Fixes: 13273250eec5 ("crypto/dpaa2_sec: support AES-GCM and CTR")
> Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> index 9895300..62b9203 100644
> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> @@ -203,7 +203,6 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
>   		old_icv = (uint8_t *)(sge + 1);
>   		memcpy(old_icv,	sym_op->aead.digest.data,
>   		       sess->digest_length);
> -		memset(sym_op->aead.digest.data, 0, sess->digest_length);
>   		DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(old_icv));
>   		sge->length = sess->digest_length;
>   		DPAA2_SET_FD_LEN(fd, (sym_op->aead.data.length +
> @@ -342,7 +341,6 @@ build_authenc_fd(dpaa2_sec_session *sess,
>   		old_icv = (uint8_t *)(sge + 1);
>   		memcpy(old_icv,	sym_op->auth.digest.data,
>   		       sess->digest_length);
> -		memset(sym_op->auth.digest.data, 0, sess->digest_length);
>   		DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(old_icv));
>   		sge->length = sess->digest_length;
>   		DPAA2_SET_FD_LEN(fd, (sym_op->auth.data.length +
> @@ -436,7 +434,6 @@ build_auth_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
>   		old_digest = (uint8_t *)(sge + 1);
>   		rte_memcpy(old_digest, sym_op->auth.digest.data,
>   			   sess->digest_length);
> -		memset(sym_op->auth.digest.data, 0, sess->digest_length);
>   		DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(old_digest));
>   		sge->length = sess->digest_length;
>   		fle->length = sym_op->auth.data.length +
> 

 >
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers alok.makhariya
@ 2017-10-13 14:25   ` Akhil Goyal
  2017-10-16 11:32     ` De Lara Guarch, Pablo
  2017-10-22 19:35   ` [dpdk-dev] [PATCH v2 1/2] " alok.makhariya
  1 sibling, 1 reply; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 14:25 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal

On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> Enable out of place buffer test cases in nxp dpaa2_sec
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 42 +++++++++++++++++++++++------
>   test/test/test_cryptodev.c                  |  6 +++++
>   test/test/test_cryptodev_aes_test_vectors.h | 12 ++++++---
>   test/test/test_cryptodev_des_test_vectors.h |  6 +++--
>   4 files changed, 52 insertions(+), 14 deletions(-)
> 

Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa_sec: add support for out of place buffers
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: " alok.makhariya
@ 2017-10-13 14:25   ` Akhil Goyal
  2017-10-16 11:33     ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 14:25 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal

On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> Enable out of place buffer test cases in dpaa_sec
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa_sec/dpaa_sec.c          | 45 +++++++++++++++++++----------
>   test/test/test_cryptodev.c                  |  6 ++++
>   test/test/test_cryptodev_aes_test_vectors.h | 12 +++++---
>   test/test/test_cryptodev_des_test_vectors.h |  6 ++--
>   4 files changed, 47 insertions(+), 22 deletions(-)
> 

Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
                   ` (4 preceding siblings ...)
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: " alok.makhariya
@ 2017-10-13 14:43 ` Akhil Goyal
  2017-10-13 15:37 ` [dpdk-dev] [PATCH v2] " alok.makhariya
  6 siblings, 0 replies; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 14:43 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal

On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> The code would crash in case of segmented buffer if no check
> 
> Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
> index 7b9a683..8a57b96 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -893,6 +893,13 @@ dpaa_sec_enqueue_op(struct rte_crypto_op *op,  struct dpaa_sec_qp *qp)
>   			return ret;
>   	}
>   
> +	/*
> +	 * Segmented buffer is not supported.
> +	 */
> +        if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
> +                op->status = RTE_CRYPTO_OP_STATUS_ERROR;
> +                return -ENOTSUP;
> +        }
>   	if (is_auth_only(ses)) {
>   		cf = build_auth_only(op, ses);
>   	} else if (is_cipher_only(ses)) {
> 
It looks there are some checkpatch errors.

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

* [dpdk-dev] [PATCH v2] crypto/dpaa_sec: add check for segmented buffer
  2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
                   ` (5 preceding siblings ...)
  2017-10-13 14:43 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer Akhil Goyal
@ 2017-10-13 15:37 ` alok.makhariya
  2017-10-13 15:45   ` Akhil Goyal
  6 siblings, 1 reply; 25+ messages in thread
From: alok.makhariya @ 2017-10-13 15:37 UTC (permalink / raw)
  To: dev; +Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

The code would crash in case of segmented buffer if no check

Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 7b9a683..bd13d8c 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -893,6 +893,13 @@ dpaa_sec_enqueue_op(struct rte_crypto_op *op,  struct dpaa_sec_qp *qp)
 			return ret;
 	}
 
+	/*
+	 * Segmented buffer is not supported.
+	 */
+	if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
+		op->status = RTE_CRYPTO_OP_STATUS_ERROR;
+		return -ENOTSUP;
+	}
 	if (is_auth_only(ses)) {
 		cf = build_auth_only(op, ses);
 	} else if (is_cipher_only(ses)) {
-- 
2.9.3

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

* [dpdk-dev] [PATCH v2] crypto/dpaa2_sec: add check for segmented buffer
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
@ 2017-10-13 15:38   ` alok.makhariya
  2017-10-13 15:44     ` Akhil Goyal
  0 siblings, 1 reply; 25+ messages in thread
From: alok.makhariya @ 2017-10-13 15:38 UTC (permalink / raw)
  To: dev
  Cc: akhil.goyal, pablo.de.lara.guarch, hemant.agrawal,
	Alok Makhariya, stable

From: Alok Makhariya <alok.makhariya@nxp.com>

The code would crash for segmented buffer if no check.

Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
Cc: stable@dpdk.org

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 672cacf..b33081c 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -551,7 +551,13 @@ build_sec_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 	int ret = -1;
 
 	PMD_INIT_FUNC_TRACE();
-
+	/*
+	 * Segmented buffer is not supported.
+	 */
+	if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
+		op->status = RTE_CRYPTO_OP_STATUS_ERROR;
+		return -ENOTSUP;
+	}
 	switch (sess->ctxt_type) {
 	case DPAA2_SEC_CIPHER:
 		ret = build_cipher_fd(sess, op, fd, bpid);
-- 
2.9.3

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

* Re: [dpdk-dev] [PATCH v2] crypto/dpaa2_sec: add check for segmented buffer
  2017-10-13 15:38   ` [dpdk-dev] [PATCH v2] " alok.makhariya
@ 2017-10-13 15:44     ` Akhil Goyal
  2017-10-16 14:06       ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 15:44 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal, stable

On 10/13/2017 9:08 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> The code would crash for segmented buffer if no check.
> 
> Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> index 672cacf..b33081c 100644
> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> @@ -551,7 +551,13 @@ build_sec_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
>   	int ret = -1;
>   
>   	PMD_INIT_FUNC_TRACE();
> -
> +	/*
> +	 * Segmented buffer is not supported.
> +	 */
> +	if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
> +		op->status = RTE_CRYPTO_OP_STATUS_ERROR;
> +		return -ENOTSUP;
> +	}
>   	switch (sess->ctxt_type) {
>   	case DPAA2_SEC_CIPHER:
>   		ret = build_cipher_fd(sess, op, fd, bpid);
> 
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

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

* Re: [dpdk-dev] [PATCH v2] crypto/dpaa_sec: add check for segmented buffer
  2017-10-13 15:37 ` [dpdk-dev] [PATCH v2] " alok.makhariya
@ 2017-10-13 15:45   ` Akhil Goyal
  2017-10-16 14:07     ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 25+ messages in thread
From: Akhil Goyal @ 2017-10-13 15:45 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: pablo.de.lara.guarch, hemant.agrawal

On 10/13/2017 9:07 PM, alok.makhariya@nxp.com wrote:
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> The code would crash in case of segmented buffer if no check
> 
> Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> ---
>   drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
> index 7b9a683..bd13d8c 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -893,6 +893,13 @@ dpaa_sec_enqueue_op(struct rte_crypto_op *op,  struct dpaa_sec_qp *qp)
>   			return ret;
>   	}
>   
> +	/*
> +	 * Segmented buffer is not supported.
> +	 */
> +	if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
> +		op->status = RTE_CRYPTO_OP_STATUS_ERROR;
> +		return -ENOTSUP;
> +	}
>   	if (is_auth_only(ses)) {
>   		cf = build_auth_only(op, ses);
>   	} else if (is_cipher_only(ses)) {
> 
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side
  2017-10-13 14:22   ` Akhil Goyal
@ 2017-10-16 11:21     ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 11:21 UTC (permalink / raw)
  To: Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal



> -----Original Message-----
> From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> Sent: Friday, October 13, 2017 3:23 PM
> To: alok.makhariya@nxp.com; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com
> Subject: Re: [PATCH] crypto/dpaa_sec: remove memset of icv on decryption
> side
> 
> On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> > From: Alok Makhariya <alok.makhariya@nxp.com>
> >
> > Since the packet lengths are modified. It is not required to
> > explicitly reset the icv.
> > Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA
> > platform")
> >
> > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>

...

> Acked-by Akhil Goyal <akhil.goyal@nxp.com>

Applied to dpdk-next-crypto.
Thanks,

Pablo

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa2_sec: remove memset of icv on decryption side
  2017-10-13 14:24   ` Akhil Goyal
@ 2017-10-16 11:21     ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 11:21 UTC (permalink / raw)
  To: Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal, stable



> -----Original Message-----
> From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> Sent: Friday, October 13, 2017 3:24 PM
> To: alok.makhariya@nxp.com; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com; stable@dpdk.org
> Subject: Re: [PATCH] crypto/dpaa2_sec: remove memset of icv on
> decryption side
> 
> On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> > From: Alok Makhariya <alok.makhariya@nxp.com>
> >
> > Since the packet lengths are modified. It is not required to
> > explicitly reset the icv.
> >
> > Fixes: 13273250eec5 ("crypto/dpaa2_sec: support AES-GCM and CTR")
> > Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>

...

> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

Applied to dpdk-next-crypto.
Thanks,

Pablo

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers
  2017-10-13 14:25   ` Akhil Goyal
@ 2017-10-16 11:32     ` De Lara Guarch, Pablo
  2017-10-16 14:29       ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 11:32 UTC (permalink / raw)
  To: Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal



> -----Original Message-----
> From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> Sent: Friday, October 13, 2017 3:25 PM
> To: alok.makhariya@nxp.com; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com
> Subject: Re: [PATCH] crypto/dpaa2_sec: add support for out of place
> buffers
> 
> On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> > From: Alok Makhariya <alok.makhariya@nxp.com>
> >
> > Enable out of place buffer test cases in nxp dpaa2_sec
> >
> > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> > ---
> >   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 42
> +++++++++++++++++++++++------
> >   test/test/test_cryptodev.c                  |  6 +++++
> >   test/test/test_cryptodev_aes_test_vectors.h | 12 ++++++---
> >   test/test/test_cryptodev_des_test_vectors.h |  6 +++--
> >   4 files changed, 52 insertions(+), 14 deletions(-)
> >
> 
> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

Applied to dpdk-next-crypto.
Thanks,

Pablo


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

* Re: [dpdk-dev] [PATCH] crypto/dpaa_sec: add support for out of place buffers
  2017-10-13 14:25   ` Akhil Goyal
@ 2017-10-16 11:33     ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 11:33 UTC (permalink / raw)
  To: Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal



> -----Original Message-----
> From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> Sent: Friday, October 13, 2017 3:26 PM
> To: alok.makhariya@nxp.com; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com
> Subject: Re: [PATCH] crypto/dpaa_sec: add support for out of place buffers
> 
> On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> > From: Alok Makhariya <alok.makhariya@nxp.com>
> >
> > Enable out of place buffer test cases in dpaa_sec
> >
> > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> > ---
> >   drivers/crypto/dpaa_sec/dpaa_sec.c          | 45 +++++++++++++++++++-
> ---------
> >   test/test/test_cryptodev.c                  |  6 ++++
> >   test/test/test_cryptodev_aes_test_vectors.h | 12 +++++---
> >   test/test/test_cryptodev_des_test_vectors.h |  6 ++--
> >   4 files changed, 47 insertions(+), 22 deletions(-)
> >
> 
> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

One note here. This patch depends on the dpaa2_sec patch.
For next time, either state the dependency or send both as a patchset.

Applied to dpdk-next-crypto.
Thanks,

Pablo


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

* Re: [dpdk-dev] [PATCH v2] crypto/dpaa2_sec: add check for segmented buffer
  2017-10-13 15:44     ` Akhil Goyal
@ 2017-10-16 14:06       ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 14:06 UTC (permalink / raw)
  To: Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal, stable



> -----Original Message-----
> From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> Sent: Friday, October 13, 2017 4:45 PM
> To: alok.makhariya@nxp.com; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com; stable@dpdk.org
> Subject: Re: [PATCH v2] crypto/dpaa2_sec: add check for segmented buffer
> 
> On 10/13/2017 9:08 PM, alok.makhariya@nxp.com wrote:
> > From: Alok Makhariya <alok.makhariya@nxp.com>
> >
> > The code would crash for segmented buffer if no check.
> >
> > Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> > ---
> >   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++++-
> >   1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> > index 672cacf..b33081c 100644
> > --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> > +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> > @@ -551,7 +551,13 @@ build_sec_fd(dpaa2_sec_session *sess, struct
> rte_crypto_op *op,
> >   	int ret = -1;
> >
> >   	PMD_INIT_FUNC_TRACE();
> > -
> > +	/*
> > +	 * Segmented buffer is not supported.
> > +	 */
> > +	if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
> > +		op->status = RTE_CRYPTO_OP_STATUS_ERROR;
> > +		return -ENOTSUP;
> > +	}
> >   	switch (sess->ctxt_type) {
> >   	case DPAA2_SEC_CIPHER:
> >   		ret = build_cipher_fd(sess, op, fd, bpid);
> >
> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

Applied to dpdk-next-crypto.
Thanks,

Pablo

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

* Re: [dpdk-dev] [PATCH v2] crypto/dpaa_sec: add check for segmented buffer
  2017-10-13 15:45   ` Akhil Goyal
@ 2017-10-16 14:07     ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 14:07 UTC (permalink / raw)
  To: Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal



> -----Original Message-----
> From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> Sent: Friday, October 13, 2017 4:45 PM
> To: alok.makhariya@nxp.com; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com
> Subject: Re: [PATCH v2] crypto/dpaa_sec: add check for segmented buffer
> 
> On 10/13/2017 9:07 PM, alok.makhariya@nxp.com wrote:
> > From: Alok Makhariya <alok.makhariya@nxp.com>
> >
> > The code would crash in case of segmented buffer if no check
> >
> > Fixes: 89aaf708d44b ("crypto/dpaa_sec: add crypto driver for NXP DPAA
> platform")
> >
> > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> > ---
> >   drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +++++++
> >   1 file changed, 7 insertions(+)
> >
> > diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c
> b/drivers/crypto/dpaa_sec/dpaa_sec.c
> > index 7b9a683..bd13d8c 100644
> > --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> > +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> > @@ -893,6 +893,13 @@ dpaa_sec_enqueue_op(struct rte_crypto_op
> *op,  struct dpaa_sec_qp *qp)
> >   			return ret;
> >   	}
> >
> > +	/*
> > +	 * Segmented buffer is not supported.
> > +	 */
> > +	if (!rte_pktmbuf_is_contiguous(op->sym->m_src)) {
> > +		op->status = RTE_CRYPTO_OP_STATUS_ERROR;
> > +		return -ENOTSUP;
> > +	}
> >   	if (is_auth_only(ses)) {
> >   		cf = build_auth_only(op, ses);
> >   	} else if (is_cipher_only(ses)) {
> >
> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>

Applied to dpdk-next-crypto.
Thanks,

Pablo

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

* Re: [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers
  2017-10-16 11:32     ` De Lara Guarch, Pablo
@ 2017-10-16 14:29       ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-16 14:29 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Akhil Goyal, alok.makhariya, dev; +Cc: hemant.agrawal



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of De Lara Guarch,
> Pablo
> Sent: Monday, October 16, 2017 12:33 PM
> To: Akhil Goyal <akhil.goyal@nxp.com>; alok.makhariya@nxp.com;
> dev@dpdk.org
> Cc: hemant.agrawal@nxp.com
> Subject: Re: [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of
> place buffers
> 
> 
> 
> > -----Original Message-----
> > From: Akhil Goyal [mailto:akhil.goyal@nxp.com]
> > Sent: Friday, October 13, 2017 3:25 PM
> > To: alok.makhariya@nxp.com; dev@dpdk.org
> > Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> > hemant.agrawal@nxp.com
> > Subject: Re: [PATCH] crypto/dpaa2_sec: add support for out of place
> > buffers
> >
> > On 10/12/2017 6:37 PM, alok.makhariya@nxp.com wrote:
> > > From: Alok Makhariya <alok.makhariya@nxp.com>
> > >
> > > Enable out of place buffer test cases in nxp dpaa2_sec
> > >
> > > Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> > > ---
> > >   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 42
> > +++++++++++++++++++++++------
> > >   test/test/test_cryptodev.c                  |  6 +++++
> > >   test/test/test_cryptodev_aes_test_vectors.h | 12 ++++++---
> > >   test/test/test_cryptodev_des_test_vectors.h |  6 +++--
> > >   4 files changed, 52 insertions(+), 14 deletions(-)
> > >
> >
> > Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
> 
> Applied to dpdk-next-crypto.
> Thanks,
> 
> Pablo

Sorry, but I forgot to compile the tests and I am getting a compilation error,
so I have removed this and dpaa_sec patches from the subtree.

test/test/test_cryptodev.c:8733:4: error: ‘test_mb_AES_GCM_authenticated_encryption_oop’
undeclared here (not in a function)
    test_mb_AES_GCM_authenticated_encryption_oop),
    ^

This function does not exist anymore and it was actually added for QAT testsuite, which looks wrong.

Could you send another version of these two patches?

Thanks,
Pablo


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

* [dpdk-dev] [PATCH v2 1/2] crypto/dpaa2_sec: add support for out of place buffers
  2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers alok.makhariya
  2017-10-13 14:25   ` Akhil Goyal
@ 2017-10-22 19:35   ` alok.makhariya
  2017-10-22 19:35     ` [dpdk-dev] [PATCH v2 2/2] crypto/dpaa_sec: " alok.makhariya
  2017-10-23  8:36     ` [dpdk-dev] [PATCH v2 1/2] crypto/dpaa2_sec: " De Lara Guarch, Pablo
  1 sibling, 2 replies; 25+ messages in thread
From: alok.makhariya @ 2017-10-22 19:35 UTC (permalink / raw)
  To: dev; +Cc: pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

Enable out of place buffer test cases in nxp dpaa2_sec

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
changes in v2:
corrected compilation issues in test

 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 42 +++++++++++++++++++++++------
 test/test/test_cryptodev.c                  |  6 +++++
 test/test/test_cryptodev_aes_test_vectors.h | 12 ++++++---
 test/test/test_cryptodev_des_test_vectors.h |  6 +++--
 4 files changed, 52 insertions(+), 14 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 0a466ba..c67548e 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -90,11 +90,17 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
 	uint32_t auth_only_len = sess->ext_params.aead_ctxt.auth_only_len;
 	int icv_len = sess->digest_length, retval;
 	uint8_t *old_icv;
+	struct rte_mbuf *dst;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			sess->iv.offset);
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (sym_op->m_dst)
+		dst = sym_op->m_dst;
+	else
+		dst = sym_op->m_src;
+
 	/* TODO we are using the first FLE entry to store Mbuf and session ctxt.
 	 * Currently we donot know which FLE has the mbuf stored.
 	 * So while retreiving we can go back 1 FLE from the FD -ADDR
@@ -155,9 +161,9 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
 	DPAA2_SET_FLE_SG_EXT(fle);
 
 	/* Configure Output SGE for Encap/Decap */
-	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src));
+	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst));
 	DPAA2_SET_FLE_OFFSET(sge, sym_op->aead.data.offset +
-				sym_op->m_src->data_off - auth_only_len);
+				dst->data_off - auth_only_len);
 	sge->length = sym_op->aead.data.length + auth_only_len;
 
 	if (sess->dir == DIR_ENC) {
@@ -235,9 +241,15 @@ build_authenc_fd(dpaa2_sec_session *sess,
 	uint8_t *old_icv;
 	uint8_t *iv_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			sess->iv.offset);
+	struct rte_mbuf *dst;
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (sym_op->m_dst)
+		dst = sym_op->m_dst;
+	else
+		dst = sym_op->m_src;
+
 	/* we are using the first FLE entry to store Mbuf.
 	 * Currently we donot know which FLE has the mbuf stored.
 	 * So while retreiving we can go back 1 FLE from the FD -ADDR
@@ -300,9 +312,9 @@ build_authenc_fd(dpaa2_sec_session *sess,
 	DPAA2_SET_FLE_SG_EXT(fle);
 
 	/* Configure Output SGE for Encap/Decap */
-	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src));
+	DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst));
 	DPAA2_SET_FLE_OFFSET(sge, sym_op->cipher.data.offset +
-				sym_op->m_src->data_off);
+				dst->data_off);
 	sge->length = sym_op->cipher.data.length;
 
 	if (sess->dir == DIR_ENC) {
@@ -456,9 +468,15 @@ build_cipher_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 	struct ctxt_priv *priv = sess->ctxt;
 	uint8_t *iv_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			sess->iv.offset);
+	struct rte_mbuf *dst;
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (sym_op->m_dst)
+		dst = sym_op->m_dst;
+	else
+		dst = sym_op->m_src;
+
 	retval = rte_mempool_get(priv->fle_pool, (void **)(&fle));
 	if (retval) {
 		RTE_LOG(ERR, PMD, "Memory alloc failed for SGE\n");
@@ -503,9 +521,9 @@ build_cipher_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op,
 		   sess->iv.length,
 		   sym_op->m_src->data_off);
 
-	DPAA2_SET_FLE_ADDR(fle, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src));
+	DPAA2_SET_FLE_ADDR(fle, DPAA2_MBUF_VADDR_TO_IOVA(dst));
 	DPAA2_SET_FLE_OFFSET(fle, sym_op->cipher.data.offset +
-			     sym_op->m_src->data_off);
+			     dst->data_off);
 
 	fle->length = sym_op->cipher.data.length + sess->iv.length;
 
@@ -657,6 +675,7 @@ sec_fd_to_mbuf(const struct qbman_fd *fd)
 	struct qbman_fle *fle;
 	struct rte_crypto_op *op;
 	struct ctxt_priv *priv;
+	struct rte_mbuf *dst, *src;
 
 	fle = (struct qbman_fle *)DPAA2_IOVA_TO_VADDR(DPAA2_GET_FD_ADDR(fd));
 
@@ -679,10 +698,17 @@ sec_fd_to_mbuf(const struct qbman_fd *fd)
 			DPAA2_GET_FLE_ADDR((fle - 1)));
 
 	/* Prefeth op */
-	rte_prefetch0(op->sym->m_src);
+	src = op->sym->m_src;
+	rte_prefetch0(src);
+
+	if (op->sym->m_dst) {
+		dst = op->sym->m_dst;
+		rte_prefetch0(dst);
+	} else
+		dst = src;
 
 	PMD_RX_LOG(DEBUG, "mbuf %p BMAN buf addr %p",
-		   (void *)op->sym->m_src, op->sym->m_src->buf_addr);
+		   (void *)dst, dst->buf_addr);
 
 	PMD_RX_LOG(DEBUG, "fdaddr =%p bpid =%d meta =%d off =%d, len =%d",
 		   (void *)DPAA2_GET_FD_ADDR(fd),
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index a926779..cb9b486 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -9491,6 +9491,12 @@ static struct unit_test_suite cryptodev_dpaa2_sec_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			test_AES_GCM_auth_decryption_test_case_256_7),
 
+		/** Out of place tests */
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_AES_GCM_authenticated_encryption_oop_test_case_1),
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_AES_GCM_authenticated_decryption_oop_test_case_1),
+
 		TEST_CASES_END() /**< NULL terminate unit test array */
 	}
 };
diff --git a/test/test/test_cryptodev_aes_test_vectors.h b/test/test/test_cryptodev_aes_test_vectors.h
index e9773b5..050d868 100644
--- a/test/test/test_cryptodev_aes_test_vectors.h
+++ b/test/test/test_cryptodev_aes_test_vectors.h
@@ -1445,7 +1445,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
+			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
@@ -1455,7 +1456,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
+			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
@@ -1611,7 +1613,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-256-CBC OOP Decryption",
@@ -1619,7 +1622,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "AES-128-CTR Encryption",
diff --git a/test/test/test_cryptodev_des_test_vectors.h b/test/test/test_cryptodev_des_test_vectors.h
index 05265ae..0602df7 100644
--- a/test/test/test_cryptodev_des_test_vectors.h
+++ b/test/test/test_cryptodev_des_test_vectors.h
@@ -1187,7 +1187,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Decryption Digest"
@@ -1196,7 +1197,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_QAT
+			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest"
-- 
2.9.3

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

* [dpdk-dev] [PATCH v2 2/2] crypto/dpaa_sec: add support for out of place buffers
  2017-10-22 19:35   ` [dpdk-dev] [PATCH v2 1/2] " alok.makhariya
@ 2017-10-22 19:35     ` alok.makhariya
  2017-10-23  8:36     ` [dpdk-dev] [PATCH v2 1/2] crypto/dpaa2_sec: " De Lara Guarch, Pablo
  1 sibling, 0 replies; 25+ messages in thread
From: alok.makhariya @ 2017-10-22 19:35 UTC (permalink / raw)
  To: dev; +Cc: pablo.de.lara.guarch, hemant.agrawal, Alok Makhariya

From: Alok Makhariya <alok.makhariya@nxp.com>

Enable out of place buffer test cases in dpaa_sec

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
changes in v2:
corrected compilation issues in test

 drivers/crypto/dpaa_sec/dpaa_sec.c          | 46 ++++++++++++++++++-----------
 test/test/test_cryptodev.c                  |  6 ++++
 test/test/test_cryptodev_aes_test_vectors.h | 12 +++++---
 test/test/test_cryptodev_des_test_vectors.h |  6 ++--
 4 files changed, 47 insertions(+), 23 deletions(-)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 53f004e..26a29a4 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -623,11 +623,10 @@ static inline struct dpaa_sec_job *
 build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 {
 	struct rte_crypto_sym_op *sym = op->sym;
-	struct rte_mbuf *mbuf = sym->m_src;
 	struct dpaa_sec_job *cf;
 	struct dpaa_sec_op_ctx *ctx;
 	struct qm_sg_entry *sg;
-	phys_addr_t start_addr;
+	phys_addr_t src_start_addr, dst_start_addr;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			ses->iv.offset);
 
@@ -637,11 +636,17 @@ build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 
 	cf = &ctx->job;
 	ctx->op = op;
-	start_addr = rte_pktmbuf_mtophys(mbuf);
+
+	src_start_addr = rte_pktmbuf_mtophys(sym->m_src);
+
+	if (sym->m_dst)
+		dst_start_addr = rte_pktmbuf_mtophys(sym->m_dst);
+	else
+		dst_start_addr = src_start_addr;
 
 	/* output */
 	sg = &cf->sg[0];
-	qm_sg_entry_set64(sg, start_addr + sym->cipher.data.offset);
+	qm_sg_entry_set64(sg, dst_start_addr + sym->cipher.data.offset);
 	sg->length = sym->cipher.data.length + ses->iv.length;
 	cpu_to_hw_sg(sg);
 
@@ -661,7 +666,7 @@ build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	cpu_to_hw_sg(sg);
 
 	sg++;
-	qm_sg_entry_set64(sg, start_addr + sym->cipher.data.offset);
+	qm_sg_entry_set64(sg, src_start_addr + sym->cipher.data.offset);
 	sg->length = sym->cipher.data.length;
 	sg->final = 1;
 	cpu_to_hw_sg(sg);
@@ -673,16 +678,20 @@ static inline struct dpaa_sec_job *
 build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 {
 	struct rte_crypto_sym_op *sym = op->sym;
-	struct rte_mbuf *mbuf = sym->m_src;
 	struct dpaa_sec_job *cf;
 	struct dpaa_sec_op_ctx *ctx;
 	struct qm_sg_entry *sg;
-	phys_addr_t start_addr;
 	uint32_t length = 0;
+	phys_addr_t src_start_addr, dst_start_addr;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			ses->iv.offset);
 
-	start_addr = mbuf->buf_physaddr + mbuf->data_off;
+	src_start_addr = sym->m_src->buf_physaddr + sym->m_src->data_off;
+
+	if (sym->m_dst)
+		dst_start_addr = sym->m_dst->buf_physaddr + sym->m_dst->data_off;
+	else
+		dst_start_addr = src_start_addr;
 
 	ctx = dpaa_sec_alloc_ctx(ses);
 	if (!ctx)
@@ -710,7 +719,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 			cpu_to_hw_sg(sg);
 			sg++;
 		}
-		qm_sg_entry_set64(sg, start_addr + sym->aead.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->aead.data.offset);
 		sg->length = sym->aead.data.length;
 		length += sg->length;
 		sg->final = 1;
@@ -730,7 +739,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 			cpu_to_hw_sg(sg);
 			sg++;
 		}
-		qm_sg_entry_set64(sg, start_addr + sym->aead.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->aead.data.offset);
 		sg->length = sym->aead.data.length;
 		length += sg->length;
 		cpu_to_hw_sg(sg);
@@ -755,7 +764,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	sg++;
 	qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop(sg));
 	qm_sg_entry_set64(sg,
-		start_addr + sym->aead.data.offset - ses->auth_only_len);
+		dst_start_addr + sym->aead.data.offset - ses->auth_only_len);
 	sg->length = sym->aead.data.length + ses->auth_only_len;
 	length = sg->length;
 	if (is_encode(ses)) {
@@ -781,16 +790,19 @@ static inline struct dpaa_sec_job *
 build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 {
 	struct rte_crypto_sym_op *sym = op->sym;
-	struct rte_mbuf *mbuf = sym->m_src;
 	struct dpaa_sec_job *cf;
 	struct dpaa_sec_op_ctx *ctx;
 	struct qm_sg_entry *sg;
-	phys_addr_t start_addr;
+	phys_addr_t src_start_addr, dst_start_addr;
 	uint32_t length = 0;
 	uint8_t *IV_ptr = rte_crypto_op_ctod_offset(op, uint8_t *,
 			ses->iv.offset);
 
-	start_addr = mbuf->buf_physaddr + mbuf->data_off;
+	src_start_addr = sym->m_src->buf_physaddr + sym->m_src->data_off;
+	if (sym->m_dst)
+		dst_start_addr = sym->m_dst->buf_physaddr + sym->m_dst->data_off;
+	else
+		dst_start_addr = src_start_addr;
 
 	ctx = dpaa_sec_alloc_ctx(ses);
 	if (!ctx)
@@ -810,7 +822,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 		cpu_to_hw_sg(sg);
 
 		sg++;
-		qm_sg_entry_set64(sg, start_addr + sym->auth.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->auth.data.offset);
 		sg->length = sym->auth.data.length;
 		length += sg->length;
 		sg->final = 1;
@@ -823,7 +835,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 
 		sg++;
 
-		qm_sg_entry_set64(sg, start_addr + sym->auth.data.offset);
+		qm_sg_entry_set64(sg, src_start_addr + sym->auth.data.offset);
 		sg->length = sym->auth.data.length;
 		length += sg->length;
 		cpu_to_hw_sg(sg);
@@ -847,7 +859,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses)
 	/* output */
 	sg++;
 	qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop(sg));
-	qm_sg_entry_set64(sg, start_addr + sym->cipher.data.offset);
+	qm_sg_entry_set64(sg, dst_start_addr + sym->cipher.data.offset);
 	sg->length = sym->cipher.data.length;
 	length = sg->length;
 	if (is_encode(ses)) {
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index cb9b486..72988c5 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -9370,6 +9370,12 @@ static struct unit_test_suite cryptodev_dpaa_sec_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			test_AES_GCM_auth_decryption_test_case_256_7),
 
+		/** Out of place tests */
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_AES_GCM_authenticated_encryption_oop_test_case_1),
+		TEST_CASE_ST(ut_setup, ut_teardown,
+			test_AES_GCM_authenticated_decryption_oop_test_case_1),
+
 		TEST_CASES_END() /**< NULL terminate unit test array */
 	}
 };
diff --git a/test/test/test_cryptodev_aes_test_vectors.h b/test/test/test_cryptodev_aes_test_vectors.h
index 050d868..9c13041 100644
--- a/test/test/test_cryptodev_aes_test_vectors.h
+++ b/test/test/test_cryptodev_aes_test_vectors.h
@@ -1446,7 +1446,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
@@ -1457,7 +1458,8 @@ static const struct blockcipher_test_case aes_chain_test_cases[] = {
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
@@ -1614,7 +1616,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-256-CBC OOP Decryption",
@@ -1623,7 +1626,8 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "AES-128-CTR Encryption",
diff --git a/test/test/test_cryptodev_des_test_vectors.h b/test/test/test_cryptodev_des_test_vectors.h
index 0602df7..d09e23d 100644
--- a/test/test/test_cryptodev_des_test_vectors.h
+++ b/test/test/test_cryptodev_des_test_vectors.h
@@ -1188,7 +1188,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Decryption Digest"
@@ -1198,7 +1199,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
-			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
+			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
 	},
 	{
 		.test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest"
-- 
2.9.3

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

* Re: [dpdk-dev] [PATCH v2 1/2] crypto/dpaa2_sec: add support for out of place buffers
  2017-10-22 19:35   ` [dpdk-dev] [PATCH v2 1/2] " alok.makhariya
  2017-10-22 19:35     ` [dpdk-dev] [PATCH v2 2/2] crypto/dpaa_sec: " alok.makhariya
@ 2017-10-23  8:36     ` De Lara Guarch, Pablo
  1 sibling, 0 replies; 25+ messages in thread
From: De Lara Guarch, Pablo @ 2017-10-23  8:36 UTC (permalink / raw)
  To: alok.makhariya, dev; +Cc: hemant.agrawal



> -----Original Message-----
> From: alok.makhariya@nxp.com [mailto:alok.makhariya@nxp.com]
> Sent: Sunday, October 22, 2017 8:36 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> hemant.agrawal@nxp.com; Alok Makhariya <alok.makhariya@nxp.com>
> Subject: [PATCH v2 1/2] crypto/dpaa2_sec: add support for out of place
> buffers
> 
> From: Alok Makhariya <alok.makhariya@nxp.com>
> 
> Enable out of place buffer test cases in nxp dpaa2_sec
> 
> Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
> ---

Series applied to dpdk-next-crypto.
Thanks,

Pablo

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

end of thread, other threads:[~2017-10-23  8:36 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-12 13:07 [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer alok.makhariya
2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
2017-10-13 15:38   ` [dpdk-dev] [PATCH v2] " alok.makhariya
2017-10-13 15:44     ` Akhil Goyal
2017-10-16 14:06       ` De Lara Guarch, Pablo
2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: remove memset of icv on decryption side alok.makhariya
2017-10-13 14:22   ` Akhil Goyal
2017-10-16 11:21     ` De Lara Guarch, Pablo
2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: " alok.makhariya
2017-10-13 14:24   ` Akhil Goyal
2017-10-16 11:21     ` De Lara Guarch, Pablo
2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa2_sec: add support for out of place buffers alok.makhariya
2017-10-13 14:25   ` Akhil Goyal
2017-10-16 11:32     ` De Lara Guarch, Pablo
2017-10-16 14:29       ` De Lara Guarch, Pablo
2017-10-22 19:35   ` [dpdk-dev] [PATCH v2 1/2] " alok.makhariya
2017-10-22 19:35     ` [dpdk-dev] [PATCH v2 2/2] crypto/dpaa_sec: " alok.makhariya
2017-10-23  8:36     ` [dpdk-dev] [PATCH v2 1/2] crypto/dpaa2_sec: " De Lara Guarch, Pablo
2017-10-12 13:07 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: " alok.makhariya
2017-10-13 14:25   ` Akhil Goyal
2017-10-16 11:33     ` De Lara Guarch, Pablo
2017-10-13 14:43 ` [dpdk-dev] [PATCH] crypto/dpaa_sec: add check for segmented buffer Akhil Goyal
2017-10-13 15:37 ` [dpdk-dev] [PATCH v2] " alok.makhariya
2017-10-13 15:45   ` Akhil Goyal
2017-10-16 14:07     ` De Lara Guarch, Pablo

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