From 255204e653143a6ca3d8bff5713a6c61ea36de10 Mon Sep 17 00:00:00 2001 From: Archana Muniganti Date: Thu, 28 Oct 2021 12:52:46 +0530 Subject: [PATCH] crypto/octeontx2: fix ESN seqhi For current pkt, previous seqhi is used instead of its guessed seqhi. Fixed it. Fixes: 5be562bc5b78 ("crypto/octeontx2: support IPsec ESN and anti-replay") Cc: stable@dpdk.org Signed-off-by: Archana Muniganti Acked-by: Anoob Joseph --- drivers/crypto/octeontx2/otx2_cryptodev_ops.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c index f0b72e05c2..4330cbd1c1 100644 --- a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c +++ b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c @@ -736,6 +736,14 @@ otx2_cpt_enqueue_sec(struct otx2_cpt_qp *qp, struct rte_crypto_op *op, otx2_err("Anti replay check failed"); return IPSEC_ANTI_REPLAY_FAILED; } + + if (esn) { + seq_in_sa = ((uint64_t)esn_hi << 32) | esn_low; + if (seq > seq_in_sa) { + sa->esn_low = rte_cpu_to_be_32(seql); + sa->esn_hi = rte_cpu_to_be_32(seqh); + } + } } ret = process_inb_sa(op, sess, &qp->meta_info, (void **)&req); @@ -749,14 +757,6 @@ otx2_cpt_enqueue_sec(struct otx2_cpt_qp *qp, struct rte_crypto_op *op, ret = otx2_cpt_enqueue_req(qp, pend_q, req, op, sess->cpt_inst_w7, burst_index); - if (winsz && esn) { - seq_in_sa = ((uint64_t)esn_hi << 32) | esn_low; - if (seq > seq_in_sa) { - sa->esn_low = rte_cpu_to_be_32(seql); - sa->esn_hi = rte_cpu_to_be_32(seqh); - } - } - return ret; } -- 2.39.5