Implement API to set/get event data per security session.

Signed-off-by: Volodymyr Fialko <vfia...@marvell.com>
Acked-by: Akhil Goyal <gak...@marvell.com>
Acked-by: Anoob Joseph <ano...@marvell.com>
---
 .../prog_guide/event_crypto_adapter.rst       |  4 +-
 lib/security/rte_security.h                   | 43 +++++++++++++++++++
 2 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/doc/guides/prog_guide/event_crypto_adapter.rst 
b/doc/guides/prog_guide/event_crypto_adapter.rst
index 4fb5c688e0..227b36b4b7 100644
--- a/doc/guides/prog_guide/event_crypto_adapter.rst
+++ b/doc/guides/prog_guide/event_crypto_adapter.rst
@@ -246,9 +246,9 @@ by ``rte_cryptodev_sym_session_get_user_data()`` API.  The
 RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA capability indicates
 whether HW or SW supports this feature.
 
-For security session, ``rte_security_session_set_private_data()`` API
+For security session, ``rte_security_session_set_event_mdata()`` API
 will be used to set request/response data. The same data will be obtained
-by ``rte_security_session_get_private_data()`` API.
+by ``rte_security_session_get_event_mdata()`` API.
 
 For session-less it is mandatory to place the request/response data with
 the ``rte_crypto_op``.
diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h
index b080d10c2c..29ec514504 100644
--- a/lib/security/rte_security.h
+++ b/lib/security/rte_security.h
@@ -526,6 +526,8 @@ struct rte_security_session {
        /**< Private session material */
        uint64_t opaque_data;
        /**< Opaque user defined data */
+       void *event_mdata;
+       /**< Event request/response information */
 };
 
 /**
@@ -729,6 +731,47 @@ set_sec_session_private_data(struct rte_security_session 
*sess,
        sess->sess_private_data = private_data;
 }
 
+/**
+ * Get event meta data attached to a security session.
+ *
+ * @param      sess            Session pointer allocated by
+ *                             *rte_security_session_create*.
+ *
+ * @return
+ *  - On success return pointer to the event crypto meta data which is set
+ *    using *rte_security_session_set_event_mdata*
+ *  - On failure returns NULL.
+ */
+__rte_experimental
+static inline void *
+rte_security_session_get_event_mdata(const struct rte_security_session *sess)
+{
+       return sess->event_mdata;
+}
+
+/**
+ * Attach event crypto meta data to a security session.
+ *
+ * Application can allocate memory for *rte_event_crypto_metadata* and set the
+ * reference pointer using this API which the PMD can retrieve using
+ * *rte_security_session_get_event_mdata*
+ *
+ * The API should be used only in case session is used for event crypto
+ * adapter.
+ *
+ * @param      sess            Session pointer allocated by
+ *                             *rte_security_session_create*.
+ * @param      ev_mdata        Pointer to the event crypto meta data
+ *                             (aka *union rte_event_crypto_metadata*)
+ */
+__rte_experimental
+static inline void
+rte_security_session_set_event_mdata(struct rte_security_session *sess,
+                                    void *ev_mdata)
+{
+       sess->event_mdata = ev_mdata;
+}
+
 /**
  * Attach a session to a crypto operation.
  * This API is needed only in case of RTE_SECURITY_SESS_CRYPTO_PROTO_OFFLOAD
-- 
2.25.1

Reply via email to