[PATCH 1/2] security: introduce per session event metadata
Volodymyr Fialko
vfialko at marvell.com
Fri Mar 25 12:16:14 CET 2022
Implement API to set/get event data per security session.
Signed-off-by: Volodymyr Fialko <vfialko at marvell.com>
Acked-by: Akhil Goyal <gakhil at marvell.com>
Acked-by: Anoob Joseph <anoobj at 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
More information about the dev
mailing list