From: Gagandeep Singh <g.singh@nxp.com>
To: dev@dpdk.org, Hemant Agrawal <hemant.agrawal@nxp.com>
Subject: [PATCH 07/11] crypto/dpaa2_sec: adding session update API support
Date: Wed, 3 Jul 2024 15:56:45 +0530 [thread overview]
Message-ID: <20240703102649.3096530-8-g.singh@nxp.com> (raw)
In-Reply-To: <20240703102649.3096530-1-g.singh@nxp.com>
From: Hemant Agrawal <hemant.agrawal@nxp.com>
This patch add support for Session Update API for RTE Security sessions.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 37 +++++++++++++++++++--
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 922a35e3ee..4f80cfea5e 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3134,8 +3134,11 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,
if (ipsec_xform->options.iv_gen_disable == 0)
encap_pdb.options |= PDBOPTS_ESP_IVSRC;
- if (ipsec_xform->options.esn)
+ if (ipsec_xform->options.esn) {
encap_pdb.options |= PDBOPTS_ESP_ESN;
+ encap_pdb.seq_num_ext_hi = conf->ipsec.esn.hi;
+ encap_pdb.seq_num = conf->ipsec.esn.low;
+ }
if (ipsec_xform->options.copy_dscp)
encap_pdb.options |= PDBOPTS_ESP_DIFFSERV;
if (ipsec_xform->options.ecn)
@@ -3264,8 +3267,11 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,
} else {
decap_pdb.options = sizeof(struct rte_ipv6_hdr) << 16;
}
- if (ipsec_xform->options.esn)
+ if (ipsec_xform->options.esn) {
decap_pdb.options |= PDBOPTS_ESP_ESN;
+ decap_pdb.seq_num_ext_hi = conf->ipsec.esn.hi;
+ decap_pdb.seq_num = conf->ipsec.esn.low;
+ }
if (ipsec_xform->options.copy_dscp)
decap_pdb.options |= PDBOPTS_ESP_DIFFSERV;
if (ipsec_xform->options.ecn)
@@ -3699,6 +3705,31 @@ dpaa2_sec_security_session_destroy(void *dev __rte_unused,
return 0;
}
+static int
+dpaa2_sec_security_session_update(void *dev,
+ struct rte_security_session *sess,
+ struct rte_security_session_conf *conf)
+{
+ struct rte_cryptodev *cdev = (struct rte_cryptodev *)dev;
+ void *sess_private_data = SECURITY_GET_SESS_PRIV(sess);
+ int ret;
+
+ if (conf->protocol != RTE_SECURITY_PROTOCOL_IPSEC &&
+ conf->ipsec.direction == RTE_SECURITY_IPSEC_SA_DIR_EGRESS)
+ return -ENOTSUP;
+
+ dpaa2_sec_security_session_destroy(dev, sess);
+
+ ret = dpaa2_sec_set_ipsec_session(cdev, conf,
+ sess_private_data);
+ if (ret != 0) {
+ DPAA2_SEC_DEBUG("Failed to configure session parameters %d", ret);
+ return ret;
+ }
+
+ return ret;
+}
+
static unsigned int
dpaa2_sec_security_session_get_size(void *device __rte_unused)
{
@@ -4153,7 +4184,7 @@ dpaa2_sec_capabilities_get(void *device __rte_unused)
static const struct rte_security_ops dpaa2_sec_security_ops = {
.session_create = dpaa2_sec_security_session_create,
- .session_update = NULL,
+ .session_update = dpaa2_sec_security_session_update,
.session_get_size = dpaa2_sec_security_session_get_size,
.session_stats_get = NULL,
.session_destroy = dpaa2_sec_security_session_destroy,
--
2.25.1
next prev parent reply other threads:[~2024-07-03 10:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-03 10:26 [PATCH 00/11] DPAA and DPAA2 crypto specific fixes Gagandeep Singh
2024-07-03 10:26 ` [PATCH 01/11] common/dpaax: caamflib: fix PDCP-SDAP wdog DECO err Gagandeep Singh
2024-07-03 10:26 ` [PATCH 02/11] common/dpaax: caamflib: fix PDCP AES-AES " Gagandeep Singh
2024-07-03 17:25 ` [EXTERNAL] " Akhil Goyal
2024-07-03 10:26 ` [PATCH 03/11] crypto/dpaa: fix SEC err due to an wrong desc Gagandeep Singh
2024-07-03 10:26 ` [PATCH 04/11] common/dpaax: caamflib change desc sharing mode Gagandeep Singh
2024-07-03 10:26 ` [PATCH 05/11] crypto/dpaa_sec: improve return value for retired queues Gagandeep Singh
2024-07-03 10:26 ` [PATCH 06/11] crypto/dpaax_sec: improve non-supported algo logs Gagandeep Singh
2024-07-03 10:26 ` Gagandeep Singh [this message]
2024-07-03 10:26 ` [PATCH 08/11] crypto/dpaa2_sec: add a check on nb desc Gagandeep Singh
2024-07-03 10:26 ` [PATCH 09/11] crypto/dpaa2_sec: initialize the authdata Gagandeep Singh
2024-07-03 10:26 ` [PATCH 10/11] crypto/dpaa2_sec: initialize esp sequence number Gagandeep Singh
2024-07-03 10:26 ` [PATCH 11/11] crypto/dpaa2_sec: fix issue of user ctxt for Event queue Gagandeep Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240703102649.3096530-8-g.singh@nxp.com \
--to=g.singh@nxp.com \
--cc=dev@dpdk.org \
--cc=hemant.agrawal@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).