DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
@ 2020-04-21 16:56 Pablo de Lara
  2020-04-21 16:56 ` [dpdk-dev] [PATCH 2/2] doc: support IPsec " Pablo de Lara
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Pablo de Lara @ 2020-04-21 16:56 UTC (permalink / raw)
  To: dev; +Cc: Pablo de Lara

The latest version of the Intel IPSec Multi-buffer library
adds an API to authenticate multiple buffers in parallel.
The PMD is modified to use this API, improving
performance of the ZUC-EIA3 algorithm.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/cryptodevs/zuc.rst          |  6 +--
 doc/guides/rel_notes/release_20_05.rst |  7 ++++
 drivers/crypto/zuc/rte_zuc_pmd.c       | 72 ++++++++++++++++++++++++++++++++++
 3 files changed, 82 insertions(+), 3 deletions(-)

diff --git a/doc/guides/cryptodevs/zuc.rst b/doc/guides/cryptodevs/zuc.rst
index 38ea999..c384f3d 100644
--- a/doc/guides/cryptodevs/zuc.rst
+++ b/doc/guides/cryptodevs/zuc.rst
@@ -35,8 +35,8 @@ Installation
 To build DPDK with the ZUC_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.11 - 19.11  LibSSO ZUC
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst
index 0cf026a..cd98c1c 100644
--- a/doc/guides/rel_notes/release_20_05.rst
+++ b/doc/guides/rel_notes/release_20_05.rst
@@ -84,6 +84,13 @@ New Features
 
   * Added support for intel-ipsec-mb version 0.54.
 
+* **Updated the ZUC crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+  * Updated the PMD to support Multi-buffer ZUC-EIA3,
+    improving performance significantly, when using
+    intel-ipsec-mb version 0.54
+
 * **Added QAT intermediate buffer too small handling in QAT compression PMD.**
 
   Added a special way of buffer handling when internal QAT intermediate buffer
diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c
index 17926b4..463b5cd 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd.c
@@ -232,6 +232,63 @@ process_zuc_cipher_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 }
 
 /** Generate/verify hash from mbufs. */
+#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
+static int
+process_zuc_hash_op_mb(struct zuc_qp *qp, struct rte_crypto_op **ops,
+		struct zuc_session **sessions,
+		uint8_t num_ops)
+{
+	unsigned int i;
+	uint8_t processed_ops = 0;
+	uint8_t *src[ZUC_MAX_BURST];
+	uint32_t *dst[ZUC_MAX_BURST];
+	uint32_t length_in_bits[ZUC_MAX_BURST];
+	uint8_t *iv[ZUC_MAX_BURST];
+	const void *hash_keys[ZUC_MAX_BURST];
+	struct zuc_session *sess;
+
+	for (i = 0; i < num_ops; i++) {
+		/* Data must be byte aligned */
+		if ((ops[i]->sym->auth.data.offset % BYTE_LEN) != 0) {
+			ops[i]->status = RTE_CRYPTO_OP_STATUS_INVALID_ARGS;
+			ZUC_LOG(ERR, "Offset");
+			break;
+		}
+
+		sess = sessions[i];
+
+		length_in_bits[i] = ops[i]->sym->auth.data.length;
+
+		src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
+				(ops[i]->sym->auth.data.offset >> 3);
+		iv[i] = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
+				sess->auth_iv_offset);
+
+		hash_keys[i] = sess->pKey_hash;
+		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+			dst[i] = (uint32_t *)qp->temp_digest;
+		else
+			dst[i] = (uint32_t *)ops[i]->sym->auth.digest.data;
+
+		processed_ops++;
+	}
+
+	IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
+			(const void **)iv, (const void **)src, length_in_bits,
+			dst, processed_ops);
+
+	/*
+	 * If tag needs to be verified, compare generated tag
+	 * with attached tag
+	 */
+	for (i = 0; i < processed_ops; i++)
+		if (sessions[i]->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+			if (memcmp(dst[i], ops[i]->sym->auth.digest.data,
+					ZUC_DIGEST_LENGTH) != 0)
+				ops[i]->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
+	return processed_ops;
+}
+#else
 static int
 process_zuc_hash_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 		struct zuc_session **sessions,
@@ -284,6 +341,7 @@ process_zuc_hash_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 
 	return processed_ops;
 }
+#endif
 
 /** Process a batch of crypto ops which shares the same operation type. */
 static int
@@ -301,17 +359,31 @@ process_ops(struct rte_crypto_op **ops, enum zuc_operation op_type,
 				sessions, num_ops);
 		break;
 	case ZUC_OP_ONLY_AUTH:
+#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
+		processed_ops = process_zuc_hash_op_mb(qp, ops, sessions,
+				num_ops);
+#else
 		processed_ops = process_zuc_hash_op(qp, ops, sessions,
 				num_ops);
+#endif
 		break;
 	case ZUC_OP_CIPHER_AUTH:
 		processed_ops = process_zuc_cipher_op(qp, ops, sessions,
 				num_ops);
+#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
+		process_zuc_hash_op_mb(qp, ops, sessions, processed_ops);
+#else
 		process_zuc_hash_op(qp, ops, sessions, processed_ops);
+#endif
 		break;
 	case ZUC_OP_AUTH_CIPHER:
+#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
+		processed_ops = process_zuc_hash_op_mb(qp, ops, sessions,
+				num_ops);
+#else
 		processed_ops = process_zuc_hash_op(qp, ops, sessions,
 				num_ops);
+#endif
 		process_zuc_cipher_op(qp, ops, sessions, processed_ops);
 		break;
 	default:
-- 
2.7.5


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

* [dpdk-dev] [PATCH 2/2] doc: support IPsec Multi-buffer lib v0.54
  2020-04-21 16:56 [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54 Pablo de Lara
@ 2020-04-21 16:56 ` Pablo de Lara
  2020-05-09 19:05 ` [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec " Akhil Goyal
  2020-05-10 19:40 ` [dpdk-dev] [PATCH v2 " Pablo de Lara
  2 siblings, 0 replies; 11+ messages in thread
From: Pablo de Lara @ 2020-04-21 16:56 UTC (permalink / raw)
  To: dev; +Cc: Pablo de Lara

Updated SNOW3G and KASUMI PMD documentation guides
with information about the latest Intel IPSec Multi-buffer
library supported.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/cryptodevs/kasumi.rst       | 6 +++---
 doc/guides/cryptodevs/snow3g.rst       | 6 +++---
 doc/guides/rel_notes/release_20_05.rst | 8 ++++++++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/doc/guides/cryptodevs/kasumi.rst b/doc/guides/cryptodevs/kasumi.rst
index 0d48d10..edbc1c6 100644
--- a/doc/guides/cryptodevs/kasumi.rst
+++ b/doc/guides/cryptodevs/kasumi.rst
@@ -36,8 +36,8 @@ Installation
 To build DPDK with the KASUMI_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -64,7 +64,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.11 - 19.11  LibSSO KASUMI
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/cryptodevs/snow3g.rst b/doc/guides/cryptodevs/snow3g.rst
index 5045c06..b715b46 100644
--- a/doc/guides/cryptodevs/snow3g.rst
+++ b/doc/guides/cryptodevs/snow3g.rst
@@ -35,8 +35,8 @@ Installation
 To build DPDK with the SNOW3G_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.04 - 19.11  LibSSO SNOW3G
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst
index cd98c1c..a5da194 100644
--- a/doc/guides/rel_notes/release_20_05.rst
+++ b/doc/guides/rel_notes/release_20_05.rst
@@ -91,6 +91,14 @@ New Features
     improving performance significantly, when using
     intel-ipsec-mb version 0.54
 
+* **Updated the SNOW3G crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+
+* **Updated the KASUMI crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+
 * **Added QAT intermediate buffer too small handling in QAT compression PMD.**
 
   Added a special way of buffer handling when internal QAT intermediate buffer
-- 
2.7.5


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

* Re: [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-04-21 16:56 [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54 Pablo de Lara
  2020-04-21 16:56 ` [dpdk-dev] [PATCH 2/2] doc: support IPsec " Pablo de Lara
@ 2020-05-09 19:05 ` Akhil Goyal
  2020-05-10 19:33   ` De Lara Guarch, Pablo
  2020-05-10 19:40 ` [dpdk-dev] [PATCH v2 " Pablo de Lara
  2 siblings, 1 reply; 11+ messages in thread
From: Akhil Goyal @ 2020-05-09 19:05 UTC (permalink / raw)
  To: Pablo de Lara, dev

Hi Pablo,

> +#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
> +		processed_ops = process_zuc_hash_op_mb(qp, ops, sessions,
> +				num_ops);
> +#else
>  		processed_ops = process_zuc_hash_op(qp, ops, sessions,
>  				num_ops);
> +#endif
>  		break;

Instead of having a separate name for process_zuc_hash_op in case of newer IMB version,
Is it not better to have same name of the function but having different definitions for different
IMB version. This way you can reduce the #ifs in the code.

Regards,
Akhil

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

* Re: [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-05-09 19:05 ` [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec " Akhil Goyal
@ 2020-05-10 19:33   ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 11+ messages in thread
From: De Lara Guarch, Pablo @ 2020-05-10 19:33 UTC (permalink / raw)
  To: Akhil Goyal, dev

Hi Akhil,

> -----Original Message-----
> From: Akhil Goyal <akhil.goyal@nxp.com>
> Sent: Saturday, May 9, 2020 8:05 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; dev@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib
> v0.54
> 
> Hi Pablo,
> 
> > +#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
> > +		processed_ops = process_zuc_hash_op_mb(qp, ops, sessions,
> > +				num_ops);
> > +#else
> >  		processed_ops = process_zuc_hash_op(qp, ops, sessions,
> >  				num_ops);
> > +#endif
> >  		break;
> 
> Instead of having a separate name for process_zuc_hash_op in case of newer
> IMB version, Is it not better to have same name of the function but having
> different definitions for different IMB version. This way you can reduce the #ifs
> in the code.

Good suggestion. Will send a v2 shortly.

Thanks,
Pablo

> 
> Regards,
> Akhil

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

* [dpdk-dev] [PATCH v2 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-04-21 16:56 [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54 Pablo de Lara
  2020-04-21 16:56 ` [dpdk-dev] [PATCH 2/2] doc: support IPsec " Pablo de Lara
  2020-05-09 19:05 ` [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec " Akhil Goyal
@ 2020-05-10 19:40 ` Pablo de Lara
  2020-05-10 19:40   ` [dpdk-dev] [PATCH v2 2/2] doc: support IPsec " Pablo de Lara
                     ` (2 more replies)
  2 siblings, 3 replies; 11+ messages in thread
From: Pablo de Lara @ 2020-05-10 19:40 UTC (permalink / raw)
  To: akhil.goyal; +Cc: dev, Pablo de Lara

The latest version of the Intel IPSec Multi-buffer library
adds an API to authenticate multiple buffers in parallel.
The PMD is modified to use this API, improving
performance of the ZUC-EIA3 algorithm.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---

v2:
- Simplified logic in process_hash_op per Akhil's comments

 doc/guides/cryptodevs/zuc.rst          |  6 ++--
 doc/guides/rel_notes/release_20_05.rst |  7 ++++
 drivers/crypto/zuc/rte_zuc_pmd.c       | 58 ++++++++++++++++++++--------------
 3 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/doc/guides/cryptodevs/zuc.rst b/doc/guides/cryptodevs/zuc.rst
index 38ea999..c384f3d 100644
--- a/doc/guides/cryptodevs/zuc.rst
+++ b/doc/guides/cryptodevs/zuc.rst
@@ -35,8 +35,8 @@ Installation
 To build DPDK with the ZUC_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.11 - 19.11  LibSSO ZUC
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst
index fe6c75e..7d3a4bf 100644
--- a/doc/guides/rel_notes/release_20_05.rst
+++ b/doc/guides/rel_notes/release_20_05.rst
@@ -155,6 +155,13 @@ New Features
 
   * Added support for intel-ipsec-mb version 0.54.
 
+* **Updated the ZUC crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+  * Updated the PMD to support Multi-buffer ZUC-EIA3,
+    improving performance significantly, when using
+    intel-ipsec-mb version 0.54
+
 * **Added a new driver for Intel Foxville I225 devices.**
 
   Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c
index 17926b4..45ae04b 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd.c
@@ -237,12 +237,13 @@ process_zuc_hash_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 		struct zuc_session **sessions,
 		uint8_t num_ops)
 {
-	unsigned i;
+	unsigned int i;
 	uint8_t processed_ops = 0;
-	uint8_t *src;
-	uint32_t *dst;
-	uint32_t length_in_bits;
-	uint8_t *iv;
+	uint8_t *src[ZUC_MAX_BURST];
+	uint32_t *dst[ZUC_MAX_BURST];
+	uint32_t length_in_bits[ZUC_MAX_BURST];
+	uint8_t *iv[ZUC_MAX_BURST];
+	const void *hash_keys[ZUC_MAX_BURST];
 	struct zuc_session *sess;
 
 	for (i = 0; i < num_ops; i++) {
@@ -255,33 +256,42 @@ process_zuc_hash_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 
 		sess = sessions[i];
 
-		length_in_bits = ops[i]->sym->auth.data.length;
+		length_in_bits[i] = ops[i]->sym->auth.data.length;
 
-		src = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
+		src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
 				(ops[i]->sym->auth.data.offset >> 3);
-		iv = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
+		iv[i] = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
 				sess->auth_iv_offset);
 
-		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY) {
-			dst = (uint32_t *)qp->temp_digest;
-
-			IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, sess->pKey_hash,
-					iv, src,
-					length_in_bits,	dst);
-			/* Verify digest. */
-			if (memcmp(dst, ops[i]->sym->auth.digest.data,
-					ZUC_DIGEST_LENGTH) != 0)
-				ops[i]->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
-		} else  {
-			dst = (uint32_t *)ops[i]->sym->auth.digest.data;
+		hash_keys[i] = sess->pKey_hash;
+		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+			dst[i] = (uint32_t *)qp->temp_digest;
+		else
+			dst[i] = (uint32_t *)ops[i]->sym->auth.digest.data;
 
-			IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, sess->pKey_hash,
-					iv, src,
-					length_in_bits, dst);
-		}
+#if IMB_VERSION_NUM < IMB_VERSION(0, 53, 3)
+		IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, hash_keys[i],
+				iv[i], src[i], length_in_bits[i], dst[i]);
+#endif
 		processed_ops++;
 	}
 
+#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
+	IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
+			(const void **)iv, (const void **)src, length_in_bits,
+			dst, processed_ops);
+#endif
+
+	/*
+	 * If tag needs to be verified, compare generated tag
+	 * with attached tag
+	 */
+	for (i = 0; i < processed_ops; i++)
+		if (sessions[i]->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+			if (memcmp(dst[i], ops[i]->sym->auth.digest.data,
+					ZUC_DIGEST_LENGTH) != 0)
+				ops[i]->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
+
 	return processed_ops;
 }
 
-- 
2.7.5


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

* [dpdk-dev] [PATCH v2 2/2] doc: support IPsec Multi-buffer lib v0.54
  2020-05-10 19:40 ` [dpdk-dev] [PATCH v2 " Pablo de Lara
@ 2020-05-10 19:40   ` Pablo de Lara
  2020-05-11  7:43   ` [dpdk-dev] [PATCH v2 1/2] crypto/zuc: support IPSec " Akhil Goyal
  2020-05-11  9:14   ` [dpdk-dev] [PATCH v3 " Pablo de Lara
  2 siblings, 0 replies; 11+ messages in thread
From: Pablo de Lara @ 2020-05-10 19:40 UTC (permalink / raw)
  To: akhil.goyal; +Cc: dev, Pablo de Lara

Updated SNOW3G and KASUMI PMD documentation guides
with information about the latest Intel IPSec Multi-buffer
library supported.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/cryptodevs/kasumi.rst       | 6 +++---
 doc/guides/cryptodevs/snow3g.rst       | 6 +++---
 doc/guides/rel_notes/release_20_05.rst | 8 ++++++++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/doc/guides/cryptodevs/kasumi.rst b/doc/guides/cryptodevs/kasumi.rst
index 0d48d10..edbc1c6 100644
--- a/doc/guides/cryptodevs/kasumi.rst
+++ b/doc/guides/cryptodevs/kasumi.rst
@@ -36,8 +36,8 @@ Installation
 To build DPDK with the KASUMI_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -64,7 +64,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.11 - 19.11  LibSSO KASUMI
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/cryptodevs/snow3g.rst b/doc/guides/cryptodevs/snow3g.rst
index 5045c06..b715b46 100644
--- a/doc/guides/cryptodevs/snow3g.rst
+++ b/doc/guides/cryptodevs/snow3g.rst
@@ -35,8 +35,8 @@ Installation
 To build DPDK with the SNOW3G_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.04 - 19.11  LibSSO SNOW3G
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst
index 7d3a4bf..b5b3525 100644
--- a/doc/guides/rel_notes/release_20_05.rst
+++ b/doc/guides/rel_notes/release_20_05.rst
@@ -162,6 +162,14 @@ New Features
     improving performance significantly, when using
     intel-ipsec-mb version 0.54
 
+* **Updated the SNOW3G crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+
+* **Updated the KASUMI crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+
 * **Added a new driver for Intel Foxville I225 devices.**
 
   Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
-- 
2.7.5


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

* Re: [dpdk-dev] [PATCH v2 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-05-10 19:40 ` [dpdk-dev] [PATCH v2 " Pablo de Lara
  2020-05-10 19:40   ` [dpdk-dev] [PATCH v2 2/2] doc: support IPsec " Pablo de Lara
@ 2020-05-11  7:43   ` Akhil Goyal
  2020-05-11  9:14   ` [dpdk-dev] [PATCH v3 " Pablo de Lara
  2 siblings, 0 replies; 11+ messages in thread
From: Akhil Goyal @ 2020-05-11  7:43 UTC (permalink / raw)
  To: Pablo de Lara; +Cc: dev

Hi Pablo,

It seems there is compilation issue in Clang with this patch.

Regards,
Akhil

> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
> 
> v2:
> - Simplified logic in process_hash_op per Akhil's comments
> 
>  doc/guides/cryptodevs/zuc.rst          |  6 ++--
>  doc/guides/rel_notes/release_20_05.rst |  7 ++++
>  drivers/crypto/zuc/rte_zuc_pmd.c       | 58 ++++++++++++++++++++--------------
>  3 files changed, 44 insertions(+), 27 deletions(-)
> 
> diff --git a/doc/guides/cryptodevs/zuc.rst b/doc/guides/cryptodevs/zuc.rst
> index 38ea999..c384f3d 100644
> --- a/doc/guides/cryptodevs/zuc.rst
> +++ b/doc/guides/cryptodevs/zuc.rst
> @@ -35,8 +35,8 @@ Installation
>  To build DPDK with the ZUC_PMD the user is required to download the multi-
> buffer
>  library from `here
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
> om%2F01org%2Fintel-ipsec-
> mb&amp;data=02%7C01%7Cakhil.goyal%40nxp.com%7C5e2b3704135b4de6d5
> a708d7f51a140b%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6372
> 47364662642602&amp;sdata=gncK8ob%2FbtOTpjZH2luy4%2Fa4TcfQYGsvI6M%
> 2BRQdkfBk%3D&amp;reserved=0>`_
>  and compile it on their user system before building DPDK.
> -The latest version of the library supported by this PMD is v0.53, which
> -can be downloaded from
> `<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.
> com%2F01org%2Fintel-ipsec-
> mb%2Farchive%2Fv0.53.zip&amp;data=02%7C01%7Cakhil.goyal%40nxp.com%7
> C5e2b3704135b4de6d5a708d7f51a140b%7C686ea1d3bc2b4c6fa92cd99c5c301
> 635%7C0%7C0%7C637247364662642602&amp;sdata=JuMgmXftLm62TGvaaSo
> OUpSOWGhT9eVQ%2Bb8r3NEFUow%3D&amp;reserved=0>`_.
> +The latest version of the library supported by this PMD is v0.54, which
> +can be downloaded from
> `<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.
> com%2F01org%2Fintel-ipsec-
> mb%2Farchive%2Fv0.54.zip&amp;data=02%7C01%7Cakhil.goyal%40nxp.com%7
> C5e2b3704135b4de6d5a708d7f51a140b%7C686ea1d3bc2b4c6fa92cd99c5c301
> 635%7C0%7C0%7C637247364662642602&amp;sdata=9oDdUezguCEPTCe5FfQS
> w7zJKt5%2BiSUe5v4Ypm5YBIw%3D&amp;reserved=0>`_.
> 
>  After downloading the library, the user needs to unpack and compile it
>  on their system before building DPDK:
> @@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
>     DPDK version   Crypto library version
>     =============  ================================
>     16.11 - 19.11  LibSSO ZUC
> -   20.02+         Multi-buffer library 0.53
> +   20.02+         Multi-buffer library 0.53 - 0.54
>     =============  ================================
> 
> 
> diff --git a/doc/guides/rel_notes/release_20_05.rst
> b/doc/guides/rel_notes/release_20_05.rst
> index fe6c75e..7d3a4bf 100644
> --- a/doc/guides/rel_notes/release_20_05.rst
> +++ b/doc/guides/rel_notes/release_20_05.rst
> @@ -155,6 +155,13 @@ New Features
> 
>    * Added support for intel-ipsec-mb version 0.54.
> 
> +* **Updated the ZUC crypto PMD.**
> +
> +  * Added support for intel-ipsec-mb version 0.54.
> +  * Updated the PMD to support Multi-buffer ZUC-EIA3,
> +    improving performance significantly, when using
> +    intel-ipsec-mb version 0.54
> +
>  * **Added a new driver for Intel Foxville I225 devices.**
> 
>    Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
> diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c
> b/drivers/crypto/zuc/rte_zuc_pmd.c
> index 17926b4..45ae04b 100644
> --- a/drivers/crypto/zuc/rte_zuc_pmd.c
> +++ b/drivers/crypto/zuc/rte_zuc_pmd.c
> @@ -237,12 +237,13 @@ process_zuc_hash_op(struct zuc_qp *qp, struct
> rte_crypto_op **ops,
>  		struct zuc_session **sessions,
>  		uint8_t num_ops)
>  {
> -	unsigned i;
> +	unsigned int i;
>  	uint8_t processed_ops = 0;
> -	uint8_t *src;
> -	uint32_t *dst;
> -	uint32_t length_in_bits;
> -	uint8_t *iv;
> +	uint8_t *src[ZUC_MAX_BURST];
> +	uint32_t *dst[ZUC_MAX_BURST];
> +	uint32_t length_in_bits[ZUC_MAX_BURST];
> +	uint8_t *iv[ZUC_MAX_BURST];
> +	const void *hash_keys[ZUC_MAX_BURST];
>  	struct zuc_session *sess;
> 
>  	for (i = 0; i < num_ops; i++) {
> @@ -255,33 +256,42 @@ process_zuc_hash_op(struct zuc_qp *qp, struct
> rte_crypto_op **ops,
> 
>  		sess = sessions[i];
> 
> -		length_in_bits = ops[i]->sym->auth.data.length;
> +		length_in_bits[i] = ops[i]->sym->auth.data.length;
> 
> -		src = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
> +		src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
>  				(ops[i]->sym->auth.data.offset >> 3);
> -		iv = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
> +		iv[i] = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
>  				sess->auth_iv_offset);
> 
> -		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY) {
> -			dst = (uint32_t *)qp->temp_digest;
> -
> -			IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, sess-
> >pKey_hash,
> -					iv, src,
> -					length_in_bits,	dst);
> -			/* Verify digest. */
> -			if (memcmp(dst, ops[i]->sym->auth.digest.data,
> -					ZUC_DIGEST_LENGTH) != 0)
> -				ops[i]->status =
> RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
> -		} else  {
> -			dst = (uint32_t *)ops[i]->sym->auth.digest.data;
> +		hash_keys[i] = sess->pKey_hash;
> +		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
> +			dst[i] = (uint32_t *)qp->temp_digest;
> +		else
> +			dst[i] = (uint32_t *)ops[i]->sym->auth.digest.data;
> 
> -			IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, sess-
> >pKey_hash,
> -					iv, src,
> -					length_in_bits, dst);
> -		}
> +#if IMB_VERSION_NUM < IMB_VERSION(0, 53, 3)
> +		IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, hash_keys[i],
> +				iv[i], src[i], length_in_bits[i], dst[i]);
> +#endif
>  		processed_ops++;
>  	}
> 
> +#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
> +	IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
> +			(const void **)iv, (const void **)src, length_in_bits,
> +			dst, processed_ops);
> +#endif
> +
> +	/*
> +	 * If tag needs to be verified, compare generated tag
> +	 * with attached tag
> +	 */
> +	for (i = 0; i < processed_ops; i++)
> +		if (sessions[i]->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
> +			if (memcmp(dst[i], ops[i]->sym->auth.digest.data,
> +					ZUC_DIGEST_LENGTH) != 0)
> +				ops[i]->status =
> RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
> +
>  	return processed_ops;
>  }
> 
> --
> 2.7.5


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

* [dpdk-dev] [PATCH v3 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-05-10 19:40 ` [dpdk-dev] [PATCH v2 " Pablo de Lara
  2020-05-10 19:40   ` [dpdk-dev] [PATCH v2 2/2] doc: support IPsec " Pablo de Lara
  2020-05-11  7:43   ` [dpdk-dev] [PATCH v2 1/2] crypto/zuc: support IPSec " Akhil Goyal
@ 2020-05-11  9:14   ` Pablo de Lara
  2020-05-11  9:14     ` [dpdk-dev] [PATCH v3 2/2] doc: support IPsec " Pablo de Lara
                       ` (2 more replies)
  2 siblings, 3 replies; 11+ messages in thread
From: Pablo de Lara @ 2020-05-11  9:14 UTC (permalink / raw)
  To: akhil.goyal; +Cc: dev, Pablo de Lara

The latest version of the Intel IPSec Multi-buffer library
adds an API to authenticate multiple buffers in parallel.
The PMD is modified to use this API, improving
performance of the ZUC-EIA3 algorithm.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/cryptodevs/zuc.rst          |  6 +--
 doc/guides/rel_notes/release_20_05.rst |  7 ++++
 drivers/crypto/zuc/rte_zuc_pmd.c       | 58 +++++++++++++++-----------
 3 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/doc/guides/cryptodevs/zuc.rst b/doc/guides/cryptodevs/zuc.rst
index 38ea999dc..c384f3d9e 100644
--- a/doc/guides/cryptodevs/zuc.rst
+++ b/doc/guides/cryptodevs/zuc.rst
@@ -35,8 +35,8 @@ Installation
 To build DPDK with the ZUC_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.11 - 19.11  LibSSO ZUC
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst
index fe6c75e0e..7d3a4bf8a 100644
--- a/doc/guides/rel_notes/release_20_05.rst
+++ b/doc/guides/rel_notes/release_20_05.rst
@@ -155,6 +155,13 @@ New Features
 
   * Added support for intel-ipsec-mb version 0.54.
 
+* **Updated the ZUC crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+  * Updated the PMD to support Multi-buffer ZUC-EIA3,
+    improving performance significantly, when using
+    intel-ipsec-mb version 0.54
+
 * **Added a new driver for Intel Foxville I225 devices.**
 
   Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c
index 17926b471..3ee6e062f 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd.c
@@ -237,12 +237,13 @@ process_zuc_hash_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 		struct zuc_session **sessions,
 		uint8_t num_ops)
 {
-	unsigned i;
+	unsigned int i;
 	uint8_t processed_ops = 0;
-	uint8_t *src;
-	uint32_t *dst;
-	uint32_t length_in_bits;
-	uint8_t *iv;
+	uint8_t *src[ZUC_MAX_BURST];
+	uint32_t *dst[ZUC_MAX_BURST];
+	uint32_t length_in_bits[ZUC_MAX_BURST];
+	uint8_t *iv[ZUC_MAX_BURST];
+	const void *hash_keys[ZUC_MAX_BURST];
 	struct zuc_session *sess;
 
 	for (i = 0; i < num_ops; i++) {
@@ -255,33 +256,42 @@ process_zuc_hash_op(struct zuc_qp *qp, struct rte_crypto_op **ops,
 
 		sess = sessions[i];
 
-		length_in_bits = ops[i]->sym->auth.data.length;
+		length_in_bits[i] = ops[i]->sym->auth.data.length;
 
-		src = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
+		src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) +
 				(ops[i]->sym->auth.data.offset >> 3);
-		iv = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
+		iv[i] = rte_crypto_op_ctod_offset(ops[i], uint8_t *,
 				sess->auth_iv_offset);
 
-		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY) {
-			dst = (uint32_t *)qp->temp_digest;
-
-			IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, sess->pKey_hash,
-					iv, src,
-					length_in_bits,	dst);
-			/* Verify digest. */
-			if (memcmp(dst, ops[i]->sym->auth.digest.data,
-					ZUC_DIGEST_LENGTH) != 0)
-				ops[i]->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
-		} else  {
-			dst = (uint32_t *)ops[i]->sym->auth.digest.data;
+		hash_keys[i] = sess->pKey_hash;
+		if (sess->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+			dst[i] = (uint32_t *)qp->temp_digest;
+		else
+			dst[i] = (uint32_t *)ops[i]->sym->auth.digest.data;
 
-			IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, sess->pKey_hash,
-					iv, src,
-					length_in_bits, dst);
-		}
+#if IMB_VERSION_NUM < IMB_VERSION(0, 53, 3)
+		IMB_ZUC_EIA3_1_BUFFER(qp->mb_mgr, hash_keys[i],
+				iv[i], src[i], length_in_bits[i], dst[i]);
+#endif
 		processed_ops++;
 	}
 
+#if IMB_VERSION_NUM >= IMB_VERSION(0, 53, 3)
+	IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
+			(const void * const *)iv, (const void * const *)src,
+			length_in_bits, dst, processed_ops);
+#endif
+
+	/*
+	 * If tag needs to be verified, compare generated tag
+	 * with attached tag
+	 */
+	for (i = 0; i < processed_ops; i++)
+		if (sessions[i]->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+			if (memcmp(dst[i], ops[i]->sym->auth.digest.data,
+					ZUC_DIGEST_LENGTH) != 0)
+				ops[i]->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
+
 	return processed_ops;
 }
 
-- 
2.25.1


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

* [dpdk-dev] [PATCH v3 2/2] doc: support IPsec Multi-buffer lib v0.54
  2020-05-11  9:14   ` [dpdk-dev] [PATCH v3 " Pablo de Lara
@ 2020-05-11  9:14     ` Pablo de Lara
  2020-05-11 10:28     ` [dpdk-dev] [PATCH v3 1/2] crypto/zuc: support IPSec " Akhil Goyal
  2020-05-11 12:06     ` De Lara Guarch, Pablo
  2 siblings, 0 replies; 11+ messages in thread
From: Pablo de Lara @ 2020-05-11  9:14 UTC (permalink / raw)
  To: akhil.goyal; +Cc: dev, Pablo de Lara

Updated SNOW3G and KASUMI PMD documentation guides
with information about the latest Intel IPSec Multi-buffer
library supported.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/cryptodevs/kasumi.rst       | 6 +++---
 doc/guides/cryptodevs/snow3g.rst       | 6 +++---
 doc/guides/rel_notes/release_20_05.rst | 8 ++++++++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/doc/guides/cryptodevs/kasumi.rst b/doc/guides/cryptodevs/kasumi.rst
index 0d48d10f1..edbc1c699 100644
--- a/doc/guides/cryptodevs/kasumi.rst
+++ b/doc/guides/cryptodevs/kasumi.rst
@@ -36,8 +36,8 @@ Installation
 To build DPDK with the KASUMI_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -64,7 +64,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.11 - 19.11  LibSSO KASUMI
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/cryptodevs/snow3g.rst b/doc/guides/cryptodevs/snow3g.rst
index 5045c0628..b715b4602 100644
--- a/doc/guides/cryptodevs/snow3g.rst
+++ b/doc/guides/cryptodevs/snow3g.rst
@@ -35,8 +35,8 @@ Installation
 To build DPDK with the SNOW3G_PMD the user is required to download the multi-buffer
 library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
-The latest version of the library supported by this PMD is v0.53, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+The latest version of the library supported by this PMD is v0.54, which
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.54.zip>`_.
 
 After downloading the library, the user needs to unpack and compile it
 on their system before building DPDK:
@@ -63,7 +63,7 @@ and the external crypto libraries supported by them:
    DPDK version   Crypto library version
    =============  ================================
    16.04 - 19.11  LibSSO SNOW3G
-   20.02+         Multi-buffer library 0.53
+   20.02+         Multi-buffer library 0.53 - 0.54
    =============  ================================
 
 
diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst
index 7d3a4bf8a..b5b3525f0 100644
--- a/doc/guides/rel_notes/release_20_05.rst
+++ b/doc/guides/rel_notes/release_20_05.rst
@@ -162,6 +162,14 @@ New Features
     improving performance significantly, when using
     intel-ipsec-mb version 0.54
 
+* **Updated the SNOW3G crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+
+* **Updated the KASUMI crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+
 * **Added a new driver for Intel Foxville I225 devices.**
 
   Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
-- 
2.25.1


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

* Re: [dpdk-dev] [PATCH v3 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-05-11  9:14   ` [dpdk-dev] [PATCH v3 " Pablo de Lara
  2020-05-11  9:14     ` [dpdk-dev] [PATCH v3 2/2] doc: support IPsec " Pablo de Lara
@ 2020-05-11 10:28     ` Akhil Goyal
  2020-05-11 12:06     ` De Lara Guarch, Pablo
  2 siblings, 0 replies; 11+ messages in thread
From: Akhil Goyal @ 2020-05-11 10:28 UTC (permalink / raw)
  To: Pablo de Lara; +Cc: dev

> 
> The latest version of the Intel IPSec Multi-buffer library
> adds an API to authenticate multiple buffers in parallel.
> The PMD is modified to use this API, improving
> performance of the ZUC-EIA3 algorithm.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---

Series
Applied to dpdk-next-crypto
Thanks.

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

* Re: [dpdk-dev] [PATCH v3 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
  2020-05-11  9:14   ` [dpdk-dev] [PATCH v3 " Pablo de Lara
  2020-05-11  9:14     ` [dpdk-dev] [PATCH v3 2/2] doc: support IPsec " Pablo de Lara
  2020-05-11 10:28     ` [dpdk-dev] [PATCH v3 1/2] crypto/zuc: support IPSec " Akhil Goyal
@ 2020-05-11 12:06     ` De Lara Guarch, Pablo
  2 siblings, 0 replies; 11+ messages in thread
From: De Lara Guarch, Pablo @ 2020-05-11 12:06 UTC (permalink / raw)
  To: akhil.goyal; +Cc: dev

Hi,


> -----Original Message-----
> From: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Sent: Monday, May 11, 2020 10:14 AM
> To: akhil.goyal@nxp.com
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v3 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54
> 
> The latest version of the Intel IPSec Multi-buffer library adds an API to
> authenticate multiple buffers in parallel.
> The PMD is modified to use this API, improving performance of the ZUC-EIA3
> algorithm.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---

Sorry, I forgot to include the changelog:

V3:
- Fixed compilation issue on Ubuntu 20.04
V2:
- Simplified logic in process_hash_op per Akhil's comments

>  doc/guides/cryptodevs/zuc.rst          |  6 +--
>  doc/guides/rel_notes/release_20_05.rst |  7 ++++
>  drivers/crypto/zuc/rte_zuc_pmd.c       | 58 +++++++++++++++-----------
>  3 files changed, 44 insertions(+), 27 deletions(-)
> 


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

end of thread, other threads:[~2020-05-11 12:06 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-21 16:56 [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec Multi-buffer lib v0.54 Pablo de Lara
2020-04-21 16:56 ` [dpdk-dev] [PATCH 2/2] doc: support IPsec " Pablo de Lara
2020-05-09 19:05 ` [dpdk-dev] [PATCH 1/2] crypto/zuc: support IPSec " Akhil Goyal
2020-05-10 19:33   ` De Lara Guarch, Pablo
2020-05-10 19:40 ` [dpdk-dev] [PATCH v2 " Pablo de Lara
2020-05-10 19:40   ` [dpdk-dev] [PATCH v2 2/2] doc: support IPsec " Pablo de Lara
2020-05-11  7:43   ` [dpdk-dev] [PATCH v2 1/2] crypto/zuc: support IPSec " Akhil Goyal
2020-05-11  9:14   ` [dpdk-dev] [PATCH v3 " Pablo de Lara
2020-05-11  9:14     ` [dpdk-dev] [PATCH v3 2/2] doc: support IPsec " Pablo de Lara
2020-05-11 10:28     ` [dpdk-dev] [PATCH v3 1/2] crypto/zuc: support IPSec " Akhil Goyal
2020-05-11 12:06     ` 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).