From ba201f5547c8422b708731cc28def951de71c16f Mon Sep 17 00:00:00 2001 From: Radu Nicolau Date: Thu, 18 Jan 2018 15:41:41 +0000 Subject: [PATCH] security: get session size Add function to get security session size. Signed-off-by: Radu Nicolau --- 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 5805051168..6461dba053 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 004a0ebe3d..d7362f3319 100644 --- a/lib/librte_security/rte_security.h +++ b/lib/librte_security/rte_security.h @@ -314,6 +314,18 @@ rte_security_session_update(struct rte_security_ctx *instance, struct rte_security_session *sess, 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 bf0170ec93..46239049b1 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 bff5039b60..5a1c8ae38c 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.20.1