From patchwork Tue Dec 12 12:50:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Radu Nicolau X-Patchwork-Id: 32168 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8A6E91D8E; Tue, 12 Dec 2017 13:55:10 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 7F4631DBF for ; Tue, 12 Dec 2017 13:55:08 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2017 04:55:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,395,1508828400"; d="scan'208";a="183532275" Received: from silpixa00383879.ir.intel.com (HELO silpixa00383879.ger.corp.intel.com) ([10.237.223.127]) by orsmga005.jf.intel.com with ESMTP; 12 Dec 2017 04:55:04 -0800 From: Radu Nicolau To: dev@dpdk.org Cc: konstantin.ananyev@intel.com, ferruh.yigit@intel.com, sergio.gonzalez.monroy@intel.com, pablo.de.lara.guarch@intel.com, declan.doherty@intel.com, akhil.goyal@nxp.com, Radu Nicolau Date: Tue, 12 Dec 2017 12:50:25 +0000 Message-Id: <1513083027-11741-1-git-send-email-radu.nicolau@intel.com> X-Mailer: git-send-email 2.7.5 Subject: [dpdk-dev] [PATCH 1/3] lib/librte_security: added get size X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 1227fca..56f2345 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 653929b..2c5429f 100644 --- a/lib/librte_security/rte_security.h +++ b/lib/librte_security/rte_security.h @@ -312,6 +312,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 997fbe7..3839d45 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 int (*security_session_get_size)(void *device); + /** * Get stats from the PMD. * @@ -139,6 +151,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 e12c04b..2f74568 100644 --- a/lib/librte_security/rte_security_version.map +++ b/lib/librte_security/rte_security_version.map @@ -6,6 +6,7 @@ EXPERIMENTAL { rte_security_capability_get; 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;