[dpdk-dev] [PATCH v3 1/3] security: add get session size function
Radu Nicolau
radu.nicolau at intel.com
Thu Jan 18 16:41:41 CET 2018
Add function to get security session size.
Signed-off-by: Radu Nicolau <radu.nicolau at intel.com>
---
lib/librte_security/rte_security.c | 7 +++++++
lib/librte_security/rte_security.h | 12 ++++++++++++
lib/librte_security/rte_security_driver.h | 14 ++++++++++++++
lib/librte_security/rte_security_version.map | 1 +
4 files changed, 34 insertions(+)
diff --git a/lib/librte_security/rte_security.c b/lib/librte_security/rte_security.c
index 5805051..6461dba 100644
--- a/lib/librte_security/rte_security.c
+++ b/lib/librte_security/rte_security.c
@@ -70,6 +70,13 @@ rte_security_session_update(struct rte_security_ctx *instance,
return instance->ops->session_update(instance->device, sess, conf);
}
+unsigned int
+rte_security_session_get_size(struct rte_security_ctx *instance)
+{
+ RTE_FUNC_PTR_OR_ERR_RET(*instance->ops->session_get_size, 0);
+ return instance->ops->session_get_size(instance->device);
+}
+
int
rte_security_session_stats_get(struct rte_security_ctx *instance,
struct rte_security_session *sess,
diff --git a/lib/librte_security/rte_security.h b/lib/librte_security/rte_security.h
index 004a0eb..d7362f3 100644
--- a/lib/librte_security/rte_security.h
+++ b/lib/librte_security/rte_security.h
@@ -315,6 +315,18 @@ rte_security_session_update(struct rte_security_ctx *instance,
struct rte_security_session_conf *conf);
/**
+ * Get the size of the security session data for a device.
+ *
+ * @param instance security instance.
+ *
+ * @return
+ * - Size of the private data, if successful
+ * - 0 if device is invalid or does not support the operation.
+ */
+unsigned int
+rte_security_session_get_size(struct rte_security_ctx *instance);
+
+/**
* Free security session header and the session private data and
* return it to its original mempool.
*
diff --git a/lib/librte_security/rte_security_driver.h b/lib/librte_security/rte_security_driver.h
index bf0170e..4623904 100644
--- a/lib/librte_security/rte_security_driver.h
+++ b/lib/librte_security/rte_security_driver.h
@@ -91,6 +91,18 @@ typedef int (*security_session_destroy_t)(void *device,
typedef int (*security_session_update_t)(void *device,
struct rte_security_session *sess,
struct rte_security_session_conf *conf);
+
+/**
+ * Get the size of a security session
+ *
+ * @param device Crypto/eth device pointer
+ *
+ * @return
+ * - On success returns the size of the session structure for device
+ * - On failure returns 0
+ */
+typedef unsigned int (*security_session_get_size)(void *device);
+
/**
* Get stats from the PMD.
*
@@ -155,6 +167,8 @@ struct rte_security_ops {
/**< Configure a security session. */
security_session_update_t session_update;
/**< Update a security session. */
+ security_session_get_size session_get_size;
+ /**< Return size of security session. */
security_session_stats_get_t session_stats_get;
/**< Get security session statistics. */
security_session_destroy_t session_destroy;
diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
index bff5039..5a1c8ae 100644
--- a/lib/librte_security/rte_security_version.map
+++ b/lib/librte_security/rte_security_version.map
@@ -7,6 +7,7 @@ EXPERIMENTAL {
rte_security_get_userdata;
rte_security_session_create;
rte_security_session_destroy;
+ rte_security_session_get_size;
rte_security_session_stats_get;
rte_security_session_update;
rte_security_set_pkt_metadata;
--
2.7.5
More information about the dev
mailing list