From: Tejasree Kondoj <ktejasree@marvell.com>
To: Akhil Goyal <gakhil@marvell.com>
Cc: Aakash Sasidharan <asasidharan@marvell.com>,
Anoob Joseph <anoobj@marvell.com>,
Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>,
Vidya Sagar Velumuri <vvelumuri@marvell.com>, <dev@dpdk.org>
Subject: [PATCH 12/15] crypto/cnxk: add support for packets with cipher len zero
Date: Thu, 21 Sep 2023 17:18:17 +0530 [thread overview]
Message-ID: <20230921114820.2526810-13-ktejasree@marvell.com> (raw)
In-Reply-To: <20230921114820.2526810-1-ktejasree@marvell.com>
From: Aakash Sasidharan <asasidharan@marvell.com>
For cipher only zero length packets, submit it to CPT with
passthrough opcode.
Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com>
---
drivers/crypto/cnxk/cnxk_se.h | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h
index 1fbae54c76..f6884be5ad 100644
--- a/drivers/crypto/cnxk/cnxk_se.h
+++ b/drivers/crypto/cnxk/cnxk_se.h
@@ -45,7 +45,8 @@ struct cnxk_se_sess {
uint8_t is_sm3 : 1;
uint8_t passthrough : 1;
uint8_t is_sm4 : 1;
- uint8_t rsvd : 2;
+ uint8_t cipher_only : 1;
+ uint8_t rsvd : 1;
uint8_t cpt_op : 4;
uint8_t zsk_flag : 4;
uint8_t zs_cipher : 4;
@@ -2192,6 +2193,7 @@ fill_sess_cipher(struct rte_crypto_sym_xform *xform, struct cnxk_se_sess *sess)
}
}
+ sess->cipher_only = 1;
sess->zsk_flag = zsk_flag;
sess->zs_cipher = zs_cipher;
sess->aes_gcm = 0;
@@ -3308,9 +3310,19 @@ static __rte_always_inline int __rte_hot
cpt_sym_inst_fill(struct cnxk_cpt_qp *qp, struct rte_crypto_op *op, struct cnxk_se_sess *sess,
struct cpt_inflight_req *infl_req, struct cpt_inst_s *inst, const bool is_sg_ver2)
{
+ enum cpt_dp_thread_type dp_thr_type;
int ret;
- switch (sess->dp_thr_type) {
+ dp_thr_type = sess->dp_thr_type;
+
+ /*
+ * With cipher only, microcode expects that cipher length is non-zero. To accept such
+ * instructions, send to CPT as passthrough.
+ */
+ if (unlikely(sess->cipher_only && op->sym->cipher.data.length == 0))
+ dp_thr_type = CPT_DP_THREAD_TYPE_PT;
+
+ switch (dp_thr_type) {
case CPT_DP_THREAD_TYPE_PT:
ret = fill_passthrough_params(op, inst);
break;
--
2.25.1
next prev parent reply other threads:[~2023-09-21 11:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-21 11:48 [PATCH 00/15] fixes and improvements to cnxk crypto PMD Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 01/15] crypto/cnxk: clear rptr and dptr fields Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 02/15] common/cnxk: update SE context fields to match ucode spec Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 03/15] common/cnxk: set cipher key only for non-null cipher Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 04/15] crypto/cnxk: fix private key length in ECDSA param Tejasree Kondoj
2023-09-24 9:15 ` Akhil Goyal
2023-09-21 11:48 ` [PATCH 05/15] crypto/cnxk: fix IPsec CCM and GCM capabilities Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 06/15] crypto/cnxk: remove pdcp chain bit from capabilities Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 07/15] crypto/cnxk: check for sg version in SE engine capabilities Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 08/15] crypto/cnxk: fix control flow issues Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 09/15] crypto/cnxk: make IV pointers as constant Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 10/15] crypto/cnxk: set PDCP chain IV offset based on FVC Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 11/15] crypto/cnxk: minor shuffling in the sess structure Tejasree Kondoj
2023-09-21 11:48 ` Tejasree Kondoj [this message]
2023-09-21 11:48 ` [PATCH 13/15] crypto/cnxk: add support for raw APIs Tejasree Kondoj
2023-09-24 9:14 ` Akhil Goyal
2023-09-21 11:48 ` [PATCH 14/15] crypto/cnxk: update the iv from proper param for gmac Tejasree Kondoj
2023-09-21 11:48 ` [PATCH 15/15] test/crypto: enable raw crypto tests for crypto_cn10k Tejasree Kondoj
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=20230921114820.2526810-13-ktejasree@marvell.com \
--to=ktejasree@marvell.com \
--cc=anoobj@marvell.com \
--cc=asasidharan@marvell.com \
--cc=dev@dpdk.org \
--cc=gakhil@marvell.com \
--cc=gmuthukrishn@marvell.com \
--cc=vvelumuri@marvell.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).