[dpdk-dev] [RFC] lib/crypto: mark asym session-buffer non-reuseable

Ayuj Verma ayverma at marvell.com
Wed Jul 17 14:34:12 CEST 2019


Update asym xform usage in cryptodev documentation.

Xform are immutable, non-reuseable entity till
life time of session. This allow some PMD to optimize
session setup time.

Signed-off-by: Ayuj Verma <ayverma at marvell.com>
Signed-off-by: Shally Verma <shallyv at marvell.com>
---
 doc/guides/prog_guide/cryptodev_lib.rst  | 6 ++++++
 lib/librte_cryptodev/rte_cryptodev_pmd.h | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst
index 9719944..c97a239 100644
--- a/doc/guides/prog_guide/cryptodev_lib.rst
+++ b/doc/guides/prog_guide/cryptodev_lib.rst
@@ -894,6 +894,12 @@ asymmetric crypto chaining is Diffie-Hellman private key generation followed by
 public generation. Also, currently API does not support chaining of symmetric and
 asymmetric crypto xforms.
 
+Transform is attached to session during asym session initialization and can't be
+modified during session configuration. It remains constant till the end of life
+span of a session. It should be used as it is in PMD, PMDs which requires
+modification of these immutable data should internally do memcpy of data and
+perform required operations.
+
 Each xform defines specific asymmetric crypto algo. Currently supported are:
 * RSA
 * Modular operations (Exponentiation and Inverse)
diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h b/lib/librte_cryptodev/rte_cryptodev_pmd.h
index defe05e..1f083ea 100644
--- a/lib/librte_cryptodev/rte_cryptodev_pmd.h
+++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h
@@ -290,7 +290,7 @@ typedef int (*cryptodev_sym_configure_session_t)(struct rte_cryptodev *dev,
  *  - Returns -ENOMEM if the private session could not be allocated.
  */
 typedef int (*cryptodev_asym_configure_session_t)(struct rte_cryptodev *dev,
-		struct rte_crypto_asym_xform *xform,
+		const struct rte_crypto_asym_xform *xform,
 		struct rte_cryptodev_asym_session *session,
 		struct rte_mempool *mp);
 /**
-- 
1.8.3.1



More information about the dev mailing list