DPDK patches and discussions
 help / color / mirror / Atom feed
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


  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).