[v5,2/2] net/cnxk: support IP reassembly

Message ID 20220224182901.4050206-3-gakhil@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series net/cnxk: support IP reassembly offload |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation warning apply issues

Commit Message

Akhil Goyal Feb. 24, 2022, 6:29 p.m. UTC
  From: Vidya Sagar Velumuri <vvelumuri@marvell.com>

Added capability and support for inline inbound IP reassembly
in cnxk driver. The IP reassembly offload is supported only
when the inline IPSec security offload is enabled.

In case of IP reassembly incomplete, the mbufs are attached
in the mbuf dynamic field and a dynamic flag is set accordingly.

Signed-off-by: Vidya Sagar Velumuri <vvelumuri@marvell.com>
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 doc/guides/rel_notes/release_22_03.rst        |   1 +
 drivers/event/cnxk/cn10k_worker.h             |  56 +-
 drivers/event/cnxk/deq/cn10k/deq_0_15.c       |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c    |   4 +-
 .../event/cnxk/deq/cn10k/deq_0_15_ca_burst.c  |   4 +-
 .../event/cnxk/deq/cn10k/deq_0_15_ca_seg.c    |   4 +-
 .../cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c    |   4 +-
 .../event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c    |   4 +-
 .../cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c    |   4 +-
 .../cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c      |   4 +-
 .../deq/cn10k/deq_0_15_ca_tmo_seg_burst.c     |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_0_15_seg_burst.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c   |   4 +-
 .../cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c   |   2 +-
 drivers/event/cnxk/deq/cn10k/deq_112_127.c    |   4 +-
 .../event/cnxk/deq/cn10k/deq_112_127_burst.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_ca_burst.c     |   4 +-
 .../event/cnxk/deq/cn10k/deq_112_127_ca_seg.c |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c   |   4 +-
 .../deq/cn10k/deq_112_127_ca_tmo_seg_burst.c  |   4 +-
 .../event/cnxk/deq/cn10k/deq_112_127_dual.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_112_127_seg.c    |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_seg_burst.c    |   4 +-
 .../event/cnxk/deq/cn10k/deq_112_127_tmo.c    |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_tmo_burst.c    |   4 +-
 .../cnxk/deq/cn10k/deq_112_127_tmo_seg.c      |   4 +-
 .../deq/cn10k/deq_112_127_tmo_seg_burst.c     |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_16_31.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_16_31_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_16_31_ca_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_16_31_ca_seg.c   |   5 +-
 .../cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c   |   5 +-
 .../cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c   |   4 +-
 .../cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c     |   4 +-
 .../deq/cn10k/deq_16_31_ca_tmo_seg_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_16_31_seg_burst.c      |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c  |   4 +-
 .../cnxk/deq/cn10k/deq_16_31_tmo_burst.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c  |   5 +-
 .../cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_32_47.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_32_47_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_32_47_ca_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_32_47_ca_seg.c   |   5 +-
 .../cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c   |   5 +-
 .../cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c   |   4 +-
 .../cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c     |   4 +-
 .../deq/cn10k/deq_32_47_ca_tmo_seg_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_32_47_seg_burst.c      |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c  |   4 +-
 .../cnxk/deq/cn10k/deq_32_47_tmo_burst.c      |   5 +-
 .../event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c  |   5 +-
 .../cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_48_63.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_48_63_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_48_63_ca_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_48_63_ca_seg.c   |   5 +-
 .../cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c   |   5 +-
 .../cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c   |   4 +-
 .../cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c     |   4 +-
 .../deq/cn10k/deq_48_63_ca_tmo_seg_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_48_63_seg_burst.c      |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c  |   4 +-
 .../cnxk/deq/cn10k/deq_48_63_tmo_burst.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c  |   5 +-
 .../cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_64_79.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_64_79_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_64_79_ca_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_64_79_ca_seg.c   |   4 +-
 .../cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c   |   4 +-
 .../cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c   |   4 +-
 .../cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c     |   4 +-
 .../deq/cn10k/deq_64_79_ca_tmo_seg_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_64_79_seg_burst.c      |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c  |   4 +-
 .../cnxk/deq/cn10k/deq_64_79_tmo_burst.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_80_95.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_80_95_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_80_95_ca_burst.c |   4 +-
 .../event/cnxk/deq/cn10k/deq_80_95_ca_seg.c   |   4 +-
 .../cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c   |   4 +-
 .../cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c   |   4 +-
 .../cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c     |   4 +-
 .../deq/cn10k/deq_80_95_ca_tmo_seg_burst.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_80_95_seg_burst.c      |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c  |   4 +-
 .../cnxk/deq/cn10k/deq_80_95_tmo_burst.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c  |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_96_111.c     |   4 +-
 .../event/cnxk/deq/cn10k/deq_96_111_burst.c   |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c  |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_ca_burst.c      |   4 +-
 .../event/cnxk/deq/cn10k/deq_96_111_ca_seg.c  |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c  |   4 +-
 .../event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c  |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c  |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c    |   4 +-
 .../deq/cn10k/deq_96_111_ca_tmo_seg_burst.c   |   4 +-
 .../event/cnxk/deq/cn10k/deq_96_111_dual.c    |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_seg_burst.c     |   4 +-
 drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_tmo_burst.c     |   4 +-
 .../event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c |   4 +-
 .../cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c |   4 +-
 drivers/net/cnxk/cn10k_ethdev.c               |  51 ++
 drivers/net/cnxk/cn10k_ethdev.h               |   2 +
 drivers/net/cnxk/cn10k_ethdev_sec.c           |  13 +
 drivers/net/cnxk/cn10k_rx.h                   | 566 ++++++++++++++++--
 drivers/net/cnxk/cn10k_rx_select.c            |  54 +-
 drivers/net/cnxk/cnxk_ethdev.h                |   4 +
 drivers/net/cnxk/rx/cn10k/rx_0_15.c           |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c      |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c       |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c  |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_112_127.c        |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c   |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c    |   4 +-
 .../net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c   |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_16_31.c          |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c     |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c      |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_32_47.c          |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c     |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c      |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_48_63.c          |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c     |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c      |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_64_79.c          |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c     |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c      |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_80_95.c          |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c     |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c      |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_96_111.c         |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c    |   4 +-
 drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c     |   4 +-
 .../net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c    |   4 +-
 176 files changed, 1197 insertions(+), 230 deletions(-)
  

Patch

diff --git a/doc/guides/rel_notes/release_22_03.rst b/doc/guides/rel_notes/release_22_03.rst
index 66b80a230a..8a4ccc5e09 100644
--- a/doc/guides/rel_notes/release_22_03.rst
+++ b/doc/guides/rel_notes/release_22_03.rst
@@ -133,6 +133,7 @@  New Features
 * **Updated Marvell cnxk ethdev PMD.**
 
   * Added queue based priority flow control support for CN9K & CN10K.
+  * Added support for IP reassembly for inline inbound IPsec packets.
 
 * **Added an API for private user data in asymmetric crypto session.**
 
diff --git a/drivers/event/cnxk/cn10k_worker.h b/drivers/event/cnxk/cn10k_worker.h
index a827a1e422..68f4d0e57a 100644
--- a/drivers/event/cnxk/cn10k_worker.h
+++ b/drivers/event/cnxk/cn10k_worker.h
@@ -169,9 +169,11 @@  cn10k_process_vwqe(uintptr_t vwqe, uint16_t port_id, const uint32_t flags,
 		/* Translate meta to mbuf */
 		if (flags & NIX_RX_OFFLOAD_SECURITY_F) {
 			const uint64_t cq_w1 = *((const uint64_t *)cqe + 1);
+			const uint64_t cq_w5 = *((const uint64_t *)cqe + 5);
 
-			mbuf = nix_sec_meta_to_mbuf_sc(cq_w1, sa_base, laddr,
-						       &loff, mbuf, d_off);
+			mbuf = nix_sec_meta_to_mbuf_sc(cq_w1, cq_w5, sa_base, laddr,
+						       &loff, mbuf, d_off,
+						       flags, mbuf_init);
 		}
 
 		cn10k_nix_cqe_to_mbuf(cqe, cqe->tag, mbuf, lookup_mem,
@@ -236,26 +238,32 @@  cn10k_sso_hws_get_work(struct cn10k_sso_hws *ws, struct rte_event *ev,
 			mbuf = gw.u64[1] - sizeof(struct rte_mbuf);
 			rte_prefetch0((void *)mbuf);
 			if (flags & NIX_RX_OFFLOAD_SECURITY_F) {
+				const uint64_t mbuf_init = 0x100010000ULL |
+					RTE_PKTMBUF_HEADROOM |
+					(flags & NIX_RX_OFFLOAD_TSTAMP_F ? 8 : 0);
 				struct rte_mbuf *m;
 				uintptr_t sa_base;
 				uint64_t iova = 0;
 				uint8_t loff = 0;
 				uint16_t d_off;
 				uint64_t cq_w1;
+				uint64_t cq_w5;
 
 				m = (struct rte_mbuf *)mbuf;
 				d_off = (uintptr_t)(m->buf_addr) - (uintptr_t)m;
 				d_off += RTE_PKTMBUF_HEADROOM;
 
 				cq_w1 = *(uint64_t *)(gw.u64[1] + 8);
+				cq_w5 = *(uint64_t *)(gw.u64[1] + 40);
 
 				sa_base =
 					cnxk_nix_sa_base_get(port, lookup_mem);
 				sa_base &= ~(ROC_NIX_INL_SA_BASE_ALIGN - 1);
 
 				mbuf = (uint64_t)nix_sec_meta_to_mbuf_sc(
-					cq_w1, sa_base, (uintptr_t)&iova, &loff,
-					(struct rte_mbuf *)mbuf, d_off);
+					cq_w1, cq_w5, sa_base, (uintptr_t)&iova, &loff,
+					(struct rte_mbuf *)mbuf, d_off, flags,
+					mbuf_init | ((uint64_t)port) << 48);
 				if (loff)
 					roc_npa_aura_op_free(m->pool->pool_id,
 							     0, iova);
@@ -405,6 +413,46 @@  uint16_t __rte_hot cn10k_sso_hws_ca_enq(void *port, struct rte_event ev[],
 	uint16_t __rte_hot cn10k_sso_hws_deq_tmo_ca_seg_##name(                \
 		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
 	uint16_t __rte_hot cn10k_sso_hws_deq_tmo_ca_seg_burst_##name(          \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_##name(                      \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_burst_##name(                \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_##name(                  \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_burst_##name(            \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_ca_##name(                   \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_ca_burst_##name(             \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_ca_##name(               \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_ca_burst_##name(         \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_seg_##name(                  \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_seg_burst_##name(            \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_seg_##name(              \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_seg_burst_##name(        \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_ca_seg_##name(               \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_ca_seg_burst_##name(         \
+		void *port, struct rte_event ev[], uint16_t nb_events,         \
+		uint64_t timeout_ticks);                                       \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_ca_seg_##name(           \
+		void *port, struct rte_event *ev, uint64_t timeout_ticks);     \
+	uint16_t __rte_hot cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name(     \
 		void *port, struct rte_event ev[], uint16_t nb_events,         \
 		uint64_t timeout_ticks);
 
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15.c b/drivers/event/cnxk/deq/cn10k/deq_0_15.c
index 8359f11fa3..4da801c9b2 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                                \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
index 853ffe7bc8..4f0ce44f85 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
index 6ddc37885f..7b9cec09db 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
index 799598c0d8..55cb3a47e3 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			  cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
index a21a36a55b..1d427ea19f 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
index fa3a18aa37..a4ceb2cbc9 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+			 cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
index 46abcf25fb..3cd179933f 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
index b50cfa27d2..6433093e5c 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+			cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
index 1f4b814189..42fc7fd2f3 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			   flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
index e002f65ba2..94a5522e77 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		  cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
index d808f40b1c..a6bdf73a32 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
index 2203ffaf41..87d708adf0 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
index ac3d1f6b00..c3c5793240 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+		      cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
index f250c04fdc..84e39deefc 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
index a79d60889a..c19da1b97b 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+			  cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
index a22e985160..595b2d06ec 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
index 307b2576ad..2dff8795c8 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
@@ -8,7 +8,7 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_reas_deq_tmo_seg_##name, flags)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127.c b/drivers/event/cnxk/deq/cn10k/deq_112_127.c
index fe791fd68e..9d6a0d53a7 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
index 09866c58b4..b959e2d9e1 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
index 232b90761e..d31cfdfd5e 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
index e14675c2b0..333ef3f8a9 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			  cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
index d30afcce7a..f3a26618bf 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
index b74cef721d..f16fd04393 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+			cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
index 2ff4891293..eeac9e34af 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
index e13463dec3..73fa822782 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+			  cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
index b084639325..a5746fa649 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			   flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
index c008d7a0ba..032265533f 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
index b69b1cce0b..68f82747c1 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
index 94dc43d3d5..398e5a3e1c 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
index 579a9a67c0..fc04345f7e 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+			    cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
index c1425f9629..071ec8f621 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
index e881aef1ac..b476eff143 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+			  cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
index 46ac501f85..42e6eb3a7f 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
index b52c556fd3..e1080e2e82 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+			cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31.c b/drivers/event/cnxk/deq/cn10k/deq_16_31.c
index 790ab3217e..27c2952758 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
index 2469b0acb5..f3a41992b5 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F_)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
index a4797a1363..93e33f5b5c 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
index 0ac48e5fa0..b829aa0fc8 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
index 2cce839f50..a7e96d41b3 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name,                   \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
index 4c4bcfc6dd..ab9acd4637 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+		cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
index 4c6ecb2aab..312fbc6334 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name,                   \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
index 8512ea497e..1f5b96cbb6 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+		cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
index 1123aabf9e..fb0b6cf696 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
index d02067e757..4d13be7a11 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
index 4186835661..669ff42a98 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
index 1964080771..019afcbcc7 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
index 15cba8d6c9..0c3a14b413 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+		cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
index d5fc927660..f76f0d85e7 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
index 3b3d76b22e..b2c1411d34 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+		cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
index b15c6fcac4..1bcf8526bb 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name,                 \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
index 4c44086cc1..d68cc46d67 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+		cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47.c b/drivers/event/cnxk/deq/cn10k/deq_32_47.c
index 7c6906ef64..817edb648d 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
index 8259fc2d59..362fb67040 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F_)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
index 79db74ded9..875e442796 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
index 04eca6336e..9410e48642 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
index 0bf9a4f757..d45fe712b0 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name,                   \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
index 460dd3a712..c0439536aa 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+		cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
index 660ea00e6b..da010b0021 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name,                   \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
index 6f2d39ee3d..5da95b21c7 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+		cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
index caa4b75d6f..65af91363f 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
index d6ee581b18..cff7e40fda 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
index 4f77a9796a..235fceb609 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
index 59cf0dd5d7..73771753da 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
index dbd6d14ce2..df0a69dc7a 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+		cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
index 993c1a84c7..3d05fb3005 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
index dd8573dda6..f5a6ce587a 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
@@ -8,7 +8,10 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+			  cn10k_sso_hws_reas_deq_tmo_##name,                   \
+			  flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
index 23914ea6dd..1afb09b708 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name,                 \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
index ff3f82771f..b6e568bba3 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+		cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63.c b/drivers/event/cnxk/deq/cn10k/deq_48_63.c
index baa19ef664..ecb36b4f56 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
index 01557d6303..5d83ef8ae2 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
index 7069cc8a65..e5783d18bd 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
index f890f0ca94..e4355853cc 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
index 373abf8c2d..269ead74cb 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name,                   \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
index c8e3a4ea50..b64625425a 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+		cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
index b21648551c..b7f8f67738 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name,                   \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
index 40efdf7d84..9a9cff9e14 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+		cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
index e30a01d9d6..fffcad0c38 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
index 4e56a67b8d..347dabd042 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
index c38af0ff87..3f6e10e816 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
index 6f36e4941a..e3078d2816 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
index 842cc2e60c..d262937a99 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+		cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
index c21f598ee1..59d5cf190d 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
index 68f1c9c636..ed9e6b70b7 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+		  cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
index 06549d7737..40c679ace6 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
@@ -6,7 +6,10 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name,                 \
+			flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
index 4e27885af2..8c2f6bb171 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+		cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79.c b/drivers/event/cnxk/deq/cn10k/deq_64_79.c
index c64dfde2c9..6c3aa83c66 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
index 29ec54286f..ea553303fb 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
index e58aece2fe..b201b8a642 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
index 66c44478f0..b8e9bdbbd6 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			  cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
index b7fa76e0b1..f3bccc222f 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
index 5b1232359d..0057d6e891 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+			cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
index 4b63c5cf17..216c54c515 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
index be77fb8265..e17cf532a3 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+			cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
index 441528ccff..d9186112c0 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			   flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
index 95c20a55ef..4272ff2a59 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
index 64e9e1a3e2..843aaa19ca 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
index f166aa55f6..78ed7e2468 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
index e0f141e6b6..d5613699bb 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+			   cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
index d0dacb50a2..3d54bc4f1e 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
index 4b5b63e03d..2cfa40f4c9 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+			  cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
index 9899e4d7bd..f385acf5db 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
index 6a6e2310d2..d093cdf027 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+		 cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95.c b/drivers/event/cnxk/deq/cn10k/deq_80_95.c
index 2b3017a8aa..d41d10b470 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
index c0723980ab..541770db63 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
index 37c2e8720a..85253c20cd 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
index 286a4b5906..d624789f44 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			  cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
index e99e7e13d3..b9cd213bf0 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
index 8d44f6ccf9..ac152703a5 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+			cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
index c9b518c2f8..16b16e6a63 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
index 3ffd6a7d8a..df284b78f9 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+			cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
index b4c0f23010..c890c504c1 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			   flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
index a19ecf7f25..6af6918dbe 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
index 9dd8542cae..00e32a3aa6 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
index 688ca922a4..8a4549a5d9 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
index baf006945a..4f8a2fd846 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+			    cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
index ad2e644785..cc0f53f786 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
index ecfb08a869..dff2aa84d2 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+			  cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
index 1610f3ee2c..da6a596a6a 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
index d4854f90ac..cf09f3e600 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+			cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111.c b/drivers/event/cnxk/deq/cn10k/deq_96_111.c
index 6da5d17b29..a7a3f8302c 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ(cn10k_sso_hws_deq_##name, flags)                               \
+	SSO_DEQ(cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
index e7b2a89dc8..5eb2ca77b0 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name,                      \
-			  cn10k_sso_hws_deq_##name, flags)
+			  cn10k_sso_hws_deq_##name, flags)                     \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_burst_##name,                 \
+			  cn10k_sso_hws_reas_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
index 178049bc3e..0e97b764dc 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)                         \
+	SSO_DEQ_CA(cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
index acd1efbe69..f23317bbd4 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name,                   \
-			  cn10k_sso_hws_deq_ca_##name, flags)
+			  cn10k_sso_hws_deq_ca_##name, flags)                  \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_burst_##name,              \
+			  cn10k_sso_hws_reas_deq_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
index 023fad9e8b..be3178c5b5 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)                 \
+	SSO_DEQ_CA_SEG(cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
index feb3078847..b0e2a106e0 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name,               \
-			  cn10k_sso_hws_deq_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_ca_seg_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_ca_seg_burst_##name,          \
+			 cn10k_sso_hws_reas_deq_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
index 3b0008b8f1..60d0a5ac59 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)                 \
+	SSO_DEQ_TMO_CA(cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
index 198bb27ad6..5f9479dd52 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name,               \
-			  cn10k_sso_hws_deq_tmo_ca_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_##name, flags)              \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_burst_##name,          \
+			 cn10k_sso_hws_reas_deq_tmo_ca_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
index 9ab6fb54b8..769e784718 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
@@ -7,7 +7,9 @@ 
 #include "cnxk_worker.h"
 
 #define R(name, flags)                                                         \
-	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)         \
+	SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_reas_deq_tmo_ca_seg_##name,           \
+			   flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
index 7c3f41bc71..53ec7c0a41 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,           \
-			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)          \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_ca_seg_burst_##name,      \
+		cn10k_sso_hws_reas_deq_tmo_ca_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
index 3feef4413f..c262a92ac4 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)                     \
+	SSO_DUAL_DEQ(cn10k_sso_hws_reas_dual_deq_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
index ed9711c6dc..a54fb2f72b 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)                       \
+	SSO_DEQ_SEG(cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
index 6d06b07892..013abbad1e 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name,              \
-			      cn10k_sso_hws_deq_seg_##name, flags)
+			      cn10k_sso_hws_deq_seg_##name, flags)             \
+	SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_reas_deq_seg_burst_##name,         \
+			    cn10k_sso_hws_reas_deq_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
index a9ce488779..39d19f4381 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)                       \
+	SSO_DEQ_TMO(cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
index 5badd56e63..4cc80dd4c9 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name,                  \
-			  cn10k_sso_hws_deq_tmo_##name, flags)
+			  cn10k_sso_hws_deq_tmo_##name, flags)                 \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_burst_##name,             \
+			  cn10k_sso_hws_reas_deq_tmo_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
index 6cacfb6ee0..a689042470 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
@@ -6,7 +6,9 @@ 
 #include "cnxk_eventdev.h"
 #include "cnxk_worker.h"
 
-#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+#define R(name, flags)                                                         \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)               \
+	SSO_DEQ_TMO_SEG(cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
index 321c49bba8..a3aba85cd3 100644
--- a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
@@ -8,7 +8,9 @@ 
 
 #define R(name, flags)                                                         \
 	SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name,              \
-			  cn10k_sso_hws_deq_tmo_seg_##name, flags)
+			  cn10k_sso_hws_deq_tmo_seg_##name, flags)             \
+	SSO_CMN_DEQ_BURST(cn10k_sso_hws_reas_deq_tmo_seg_burst_##name,         \
+			cn10k_sso_hws_reas_deq_tmo_seg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/net/cnxk/cn10k_ethdev.c b/drivers/net/cnxk/cn10k_ethdev.c
index e57847ef3a..9f2dc8a364 100644
--- a/drivers/net/cnxk/cn10k_ethdev.c
+++ b/drivers/net/cnxk/cn10k_ethdev.c
@@ -304,6 +304,10 @@  cn10k_nix_configure(struct rte_eth_dev *eth_dev)
 	dev->rx_offload_flags = nix_rx_offload_flags(eth_dev);
 	dev->tx_offload_flags = nix_tx_offload_flags(eth_dev);
 
+	/* reset reassembly dynfield/flag offset */
+	dev->reass_dynfield_off = -1;
+	dev->reass_dynflag_bit = -1;
+
 	plt_nix_dbg("Configured port%d platform specific rx_offload_flags=%x"
 		    " tx_offload_flags=0x%x",
 		    eth_dev->data->port_id, dev->rx_offload_flags,
@@ -499,6 +503,49 @@  cn10k_nix_rx_metadata_negotiate(struct rte_eth_dev *eth_dev, uint64_t *features)
 	return 0;
 }
 
+static int
+cn10k_nix_reassembly_capability_get(struct rte_eth_dev *eth_dev,
+		struct rte_eth_ip_reassembly_params *reassembly_capa)
+{
+	struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+	int rc = -ENOTSUP;
+	RTE_SET_USED(eth_dev);
+
+	if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY) {
+		reassembly_capa->timeout_ms = 60 * 1000;
+		reassembly_capa->max_frags = 4;
+		reassembly_capa->flags = RTE_ETH_DEV_REASSEMBLY_F_IPV4 |
+					 RTE_ETH_DEV_REASSEMBLY_F_IPV6;
+		rc = 0;
+	}
+
+	return rc;
+}
+
+static int
+cn10k_nix_reassembly_conf_get(struct rte_eth_dev *eth_dev,
+		struct rte_eth_ip_reassembly_params *conf)
+{
+	RTE_SET_USED(eth_dev);
+	RTE_SET_USED(conf);
+	return -ENOTSUP;
+}
+
+static int
+cn10k_nix_reassembly_conf_set(struct rte_eth_dev *eth_dev,
+		const struct rte_eth_ip_reassembly_params *conf)
+{
+	struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+	int rc = 0;
+
+	rc = roc_nix_reassembly_configure(conf->timeout_ms,
+				conf->max_frags);
+	if (!rc && dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY)
+		dev->rx_offload_flags |= NIX_RX_REAS_F;
+
+	return rc;
+}
+
 /* Update platform specific eth dev ops */
 static void
 nix_eth_dev_ops_override(void)
@@ -522,6 +569,10 @@  nix_eth_dev_ops_override(void)
 		cn10k_nix_rx_metadata_negotiate;
 	cnxk_eth_dev_ops.timesync_read_tx_timestamp =
 		cn10k_nix_timesync_read_tx_timestamp;
+	cnxk_eth_dev_ops.ip_reassembly_capability_get =
+			cn10k_nix_reassembly_capability_get;
+	cnxk_eth_dev_ops.ip_reassembly_conf_get = cn10k_nix_reassembly_conf_get;
+	cnxk_eth_dev_ops.ip_reassembly_conf_set = cn10k_nix_reassembly_conf_set;
 }
 
 static void
diff --git a/drivers/net/cnxk/cn10k_ethdev.h b/drivers/net/cnxk/cn10k_ethdev.h
index fd7273078a..ab51eafcb1 100644
--- a/drivers/net/cnxk/cn10k_ethdev.h
+++ b/drivers/net/cnxk/cn10k_ethdev.h
@@ -44,6 +44,8 @@  struct cn10k_eth_rxq {
 /* Private data in sw rsvd area of struct roc_ot_ipsec_inb_sa */
 struct cn10k_inb_priv_data {
 	void *userdata;
+	int reass_dynfield_off;
+	int reass_dynflag_bit;
 	struct cnxk_eth_sec_sess *eth_sec;
 };
 
diff --git a/drivers/net/cnxk/cn10k_ethdev_sec.c b/drivers/net/cnxk/cn10k_ethdev_sec.c
index a514345034..b194ce6355 100644
--- a/drivers/net/cnxk/cn10k_ethdev_sec.c
+++ b/drivers/net/cnxk/cn10k_ethdev_sec.c
@@ -336,6 +336,13 @@  cn10k_eth_sec_session_create(void *device,
 	if (rte_security_dynfield_register() < 0)
 		return -ENOTSUP;
 
+	if (conf->ipsec.options.ip_reassembly_en &&
+			dev->reass_dynfield_off < 0) {
+		if (rte_eth_ip_reassembly_dynfield_register(&dev->reass_dynfield_off,
+					&dev->reass_dynflag_bit) < 0)
+			return -rte_errno;
+	}
+
 	ipsec = &conf->ipsec;
 	crypto = conf->crypto_xform;
 	inbound = !!(ipsec->direction == RTE_SECURITY_IPSEC_SA_DIR_INGRESS);
@@ -442,6 +449,12 @@  cn10k_eth_sec_session_create(void *device,
 					   sizeof(struct roc_ot_ipsec_inb_sa));
 		if (rc)
 			goto mempool_put;
+
+		if (conf->ipsec.options.ip_reassembly_en) {
+			inb_priv->reass_dynfield_off = dev->reass_dynfield_off;
+			inb_priv->reass_dynflag_bit = dev->reass_dynflag_bit;
+		}
+
 	} else {
 		struct roc_ot_ipsec_outb_sa *outb_sa, *outb_sa_dptr;
 		struct cn10k_outb_priv_data *outb_priv;
diff --git a/drivers/net/cnxk/cn10k_rx.h b/drivers/net/cnxk/cn10k_rx.h
index 66a35c69f9..33b30edd4a 100644
--- a/drivers/net/cnxk/cn10k_rx.h
+++ b/drivers/net/cnxk/cn10k_rx.h
@@ -23,6 +23,7 @@ 
  * Defining it from backwards to denote its been
  * not used as offload flags to pick function
  */
+#define NIX_RX_REAS_F	   BIT(12)
 #define NIX_RX_VWQE_F	   BIT(13)
 #define NIX_RX_MULTI_SEG_F BIT(14)
 #define CPT_RX_WQE_F	   BIT(15)
@@ -53,6 +54,17 @@ 
 	} while (0)
 #endif
 
+#define NIX_RX_SEC_REASSEMBLY_F \
+	(NIX_RX_REAS_F | NIX_RX_OFFLOAD_SECURITY_F)
+
+static inline rte_eth_ip_reassembly_dynfield_t *
+cnxk_ip_reassembly_dynfield(struct rte_mbuf *mbuf,
+		int ip_reassembly_dynfield_offset)
+{
+	return RTE_MBUF_DYNFIELD(mbuf, ip_reassembly_dynfield_offset,
+				 rte_eth_ip_reassembly_dynfield_t *);
+}
+
 union mbuf_initializer {
 	struct {
 		uint16_t data_off;
@@ -120,19 +132,347 @@  nix_sec_flush_meta(uintptr_t laddr, uint16_t lmt_id, uint8_t loff,
 	roc_lmt_submit_steorl(lmt_id, pa);
 }
 
+static struct rte_mbuf *
+nix_sec_attach_frags(const struct cpt_parse_hdr_s *hdr,
+		     struct cn10k_inb_priv_data *inb_priv,
+		     const uint64_t mbuf_init)
+{
+	struct rte_mbuf *head, *mbuf, *mbuf_prev;
+	uint32_t offset = hdr->w2.fi_offset;
+	union nix_rx_parse_u *frag_rx;
+	struct cpt_frag_info_s *finfo;
+	uint64_t *frag_ptr, ol_flags;
+	uint16_t frag_size;
+	uint16_t rlen;
+	uint64_t *wqe;
+	int off;
+
+	off = inb_priv->reass_dynfield_off;
+	ol_flags = BIT_ULL(inb_priv->reass_dynflag_bit);
+	ol_flags |= RTE_MBUF_F_RX_SEC_OFFLOAD;
+
+	/* offset of 0 implies 256B, otherwise it implies offset*8B */
+	offset = (((offset - 1) & 0x1f) + 1) * 8;
+	finfo = RTE_PTR_ADD(hdr, offset + hdr->w2.fi_pad);
+
+	/* Frag-0: */
+	wqe = (uint64_t *)(rte_be_to_cpu_64(hdr->wqe_ptr));
+	rlen = ((*(wqe + 10)) >> 16) & 0xFFFF;
+
+	frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+	frag_size = rlen + frag_rx->lcptr - frag_rx->laptr;
+	frag_rx->pkt_lenm1 = frag_size - 1;
+
+	mbuf = (struct rte_mbuf *)((uintptr_t)wqe - sizeof(struct rte_mbuf));
+	*(uint64_t *)(&mbuf->rearm_data) = mbuf_init;
+	mbuf->data_len = frag_size;
+	mbuf->pkt_len = frag_size;
+	mbuf->ol_flags = ol_flags;
+	mbuf->next = NULL;
+	head = mbuf;
+	mbuf_prev = mbuf;
+	/* Update dynamic field with userdata */
+	*rte_security_dynfield(mbuf) = (uint64_t)inb_priv->userdata;
+
+	cnxk_ip_reassembly_dynfield(head, off)->nb_frags = hdr->w0.num_frags - 1;
+	cnxk_ip_reassembly_dynfield(head, off)->next_frag = NULL;
+
+	/* Frag-1: */
+	if (hdr->w0.num_frags > 1) {
+		wqe = (uint64_t *)(rte_be_to_cpu_64(hdr->frag1_wqe_ptr));
+		rlen = ((*(wqe + 10)) >> 16) & 0xFFFF;
+
+		frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+		frag_size = rlen + frag_rx->lcptr - frag_rx->laptr;
+		frag_rx->pkt_lenm1 = frag_size - 1;
+
+		mbuf = (struct rte_mbuf *)((uintptr_t)wqe -
+				sizeof(struct rte_mbuf));
+		*(uint64_t *)(&mbuf->rearm_data) = mbuf_init;
+		mbuf->data_len = frag_size;
+		mbuf->pkt_len = frag_size;
+		mbuf->ol_flags = ol_flags;
+		mbuf->next = NULL;
+
+		/* Update dynamic field with userdata */
+		*rte_security_dynfield(mbuf) = (uint64_t)inb_priv->userdata;
+
+		cnxk_ip_reassembly_dynfield(mbuf, off)->nb_frags =
+			hdr->w0.num_frags - 2;
+		cnxk_ip_reassembly_dynfield(mbuf, off)->next_frag = NULL;
+		cnxk_ip_reassembly_dynfield(mbuf_prev, off)->next_frag = mbuf;
+		mbuf_prev = mbuf;
+	}
+
+	/* Frag-2: */
+	if (hdr->w0.num_frags > 2) {
+		frag_ptr = (uint64_t *)(finfo + 1);
+		wqe = (uint64_t *)(rte_be_to_cpu_64(*frag_ptr));
+		rlen = ((*(wqe + 10)) >> 16) & 0xFFFF;
+
+		frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+		frag_size = rlen + frag_rx->lcptr - frag_rx->laptr;
+		frag_rx->pkt_lenm1 = frag_size - 1;
+
+		mbuf = (struct rte_mbuf *)((uintptr_t)wqe -
+				sizeof(struct rte_mbuf));
+		*(uint64_t *)(&mbuf->rearm_data) = mbuf_init;
+		mbuf->data_len = frag_size;
+		mbuf->pkt_len = frag_size;
+		mbuf->ol_flags = ol_flags;
+		mbuf->next = NULL;
+
+		/* Update dynamic field with userdata */
+		*rte_security_dynfield(mbuf) = (uint64_t)inb_priv->userdata;
+
+		cnxk_ip_reassembly_dynfield(mbuf, off)->nb_frags =
+			hdr->w0.num_frags - 3;
+		cnxk_ip_reassembly_dynfield(mbuf, off)->next_frag = NULL;
+		cnxk_ip_reassembly_dynfield(mbuf_prev, off)->next_frag = mbuf;
+		mbuf_prev = mbuf;
+	}
+
+	/* Frag-3: */
+	if (hdr->w0.num_frags > 3) {
+		wqe = (uint64_t *)(rte_be_to_cpu_64(*(frag_ptr + 1)));
+		rlen = ((*(wqe + 10)) >> 16) & 0xFFFF;
+
+		frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+		frag_size = rlen + frag_rx->lcptr - frag_rx->laptr;
+		frag_rx->pkt_lenm1 = frag_size - 1;
+
+		mbuf = (struct rte_mbuf *)((uintptr_t)wqe -
+				sizeof(struct rte_mbuf));
+		*(uint64_t *)(&mbuf->rearm_data) = mbuf_init;
+		mbuf->data_len = frag_size;
+		mbuf->pkt_len = frag_size;
+		mbuf->ol_flags = ol_flags;
+		mbuf->next = NULL;
+
+		/* Update dynamic field with userdata */
+		*rte_security_dynfield(mbuf) = (uint64_t)inb_priv->userdata;
+
+		cnxk_ip_reassembly_dynfield(mbuf, off)->nb_frags =
+			hdr->w0.num_frags - 4;
+		cnxk_ip_reassembly_dynfield(mbuf, off)->next_frag = NULL;
+		cnxk_ip_reassembly_dynfield(mbuf_prev, off)->next_frag = mbuf;
+	}
+	return head;
+}
+
+static struct rte_mbuf *
+nix_sec_reassemble_frags(const struct cpt_parse_hdr_s *hdr, uint64_t cq_w1,
+			uint64_t cq_w5, uint64_t mbuf_init)
+{
+	uint32_t fragx_sum, pkt_hdr_len, l3_hdr_size;
+	uint32_t offset = hdr->w2.fi_offset;
+	union nix_rx_parse_u *inner_rx;
+	uint16_t rlen, data_off, b_off;
+	union nix_rx_parse_u *frag_rx;
+	struct cpt_frag_info_s *finfo;
+	struct rte_mbuf *head, *mbuf;
+	rte_iova_t *inner_iova;
+	uint64_t *frag_ptr;
+	uint16_t frag_size;
+	uint64_t *wqe;
+
+	/* Base data offset */
+	b_off = mbuf_init & 0xFFFFUL;
+	mbuf_init &= ~0xFFFFUL;
+
+	/* offset of 0 implies 256B, otherwise it implies offset*8B */
+	offset = (((offset - 1) & 0x1f) + 1) * 8;
+	finfo = RTE_PTR_ADD(hdr, offset + hdr->w2.fi_pad);
+
+	/* Frag-0: */
+	wqe = (uint64_t *)rte_be_to_cpu_64(hdr->wqe_ptr);
+	inner_rx = (union nix_rx_parse_u *)(wqe + 1);
+	inner_iova = (rte_iova_t *)*(wqe + 9);
+
+	/* Update only the upper 28-bits from meta pkt parse info */
+	*((uint64_t *)inner_rx) = ((*((uint64_t *)inner_rx) & ((1ULL << 36) - 1)) |
+				(cq_w1 & ~((1ULL << 36) - 1)));
+
+	rlen = ((*(wqe + 10)) >> 16) & 0xFFFF;
+	frag_size = rlen + ((cq_w5 >> 16) & 0xFF) - (cq_w5 & 0xFF);
+	fragx_sum = rte_be_to_cpu_16(finfo->w1.frag_size0);
+	pkt_hdr_len = frag_size - fragx_sum;
+
+	mbuf = (struct rte_mbuf *)((uintptr_t)wqe - sizeof(struct rte_mbuf));
+	*(uint64_t *)(&mbuf->rearm_data) = mbuf_init | b_off;
+	mbuf->data_len = frag_size;
+	head = mbuf;
+
+	if (inner_rx->lctype == NPC_LT_LC_IP) {
+		struct rte_ipv4_hdr *hdr = (struct rte_ipv4_hdr *)
+				RTE_PTR_ADD(inner_iova, inner_rx->lcptr);
+
+		l3_hdr_size = (hdr->version_ihl & 0xf) << 2;
+	} else {
+		struct rte_ipv6_hdr *hdr = (struct rte_ipv6_hdr *)
+				RTE_PTR_ADD(inner_iova, inner_rx->lcptr);
+		size_t ext_len = sizeof(struct rte_ipv6_hdr);
+		uint8_t *nxt_hdr = (uint8_t *)hdr;
+		int nh = hdr->proto;
+
+		l3_hdr_size = 0;
+		while (nh != -EINVAL) {
+			nxt_hdr += ext_len;
+			l3_hdr_size += ext_len;
+			nh = rte_ipv6_get_next_ext(nxt_hdr, nh, &ext_len);
+		}
+	}
+
+	/* Frag-1: */
+	wqe = (uint64_t *)(rte_be_to_cpu_64(hdr->frag1_wqe_ptr));
+	frag_size = rte_be_to_cpu_16(finfo->w1.frag_size1);
+	frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+
+	mbuf->next = (struct rte_mbuf *)((uintptr_t)wqe - sizeof(struct rte_mbuf));
+	mbuf = mbuf->next;
+	data_off = b_off + frag_rx->lcptr + l3_hdr_size;
+	*(uint64_t *)(&mbuf->rearm_data) = mbuf_init | data_off;
+	mbuf->data_len = frag_size;
+	fragx_sum += frag_size;
+
+	/* Frag-2: */
+	if (hdr->w0.num_frags > 2) {
+		frag_ptr = (uint64_t *)(finfo + 1);
+		wqe = (uint64_t *)(rte_be_to_cpu_64(*frag_ptr));
+		frag_size = rte_be_to_cpu_16(finfo->w1.frag_size2);
+		frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+
+		mbuf->next = (struct rte_mbuf *)((uintptr_t)wqe - sizeof(struct rte_mbuf));
+		mbuf = mbuf->next;
+		data_off = b_off + frag_rx->lcptr + l3_hdr_size;
+		*(uint64_t *)(&mbuf->rearm_data) = mbuf_init | data_off;
+		mbuf->data_len = frag_size;
+		fragx_sum += frag_size;
+	}
+
+	/* Frag-3: */
+	if (hdr->w0.num_frags > 3) {
+		wqe = (uint64_t *)(rte_be_to_cpu_64(*(frag_ptr + 1)));
+		frag_size = rte_be_to_cpu_16(finfo->w1.frag_size3);
+		frag_rx = (union nix_rx_parse_u *)(wqe + 1);
+
+		mbuf->next = (struct rte_mbuf *)((uintptr_t)wqe - sizeof(struct rte_mbuf));
+		mbuf = mbuf->next;
+		data_off = b_off + frag_rx->lcptr + l3_hdr_size;
+		*(uint64_t *)(&mbuf->rearm_data) = mbuf_init | data_off;
+		mbuf->data_len = frag_size;
+		fragx_sum += frag_size;
+	}
+
+	if (inner_rx->lctype == NPC_LT_LC_IP) {
+		struct rte_ipv4_hdr *hdr = (struct rte_ipv4_hdr *)
+				RTE_PTR_ADD(inner_iova, inner_rx->lcptr);
+
+		hdr->fragment_offset = 0;
+		hdr->total_length = rte_cpu_to_be_16(fragx_sum + l3_hdr_size);
+		hdr->hdr_checksum = 0;
+		hdr->hdr_checksum = rte_ipv4_cksum(hdr);
+
+		inner_rx->pkt_lenm1 = pkt_hdr_len + fragx_sum - 1;
+	} else {
+		/* Remove the frag header by moving header 8 bytes forward */
+		struct rte_ipv6_hdr *hdr = (struct rte_ipv6_hdr *)
+				RTE_PTR_ADD(inner_iova, inner_rx->lcptr);
+
+		hdr->payload_len = rte_cpu_to_be_16(fragx_sum + l3_hdr_size -
+					8 - sizeof(struct rte_ipv6_hdr));
+
+		rte_memcpy(rte_pktmbuf_mtod_offset(head, void *, 8),
+			   rte_pktmbuf_mtod(head, void *),
+			   inner_rx->lcptr + sizeof(struct rte_ipv6_hdr));
+
+		inner_rx->pkt_lenm1 = pkt_hdr_len + fragx_sum - 8 - 1;
+		head->data_len -= 8;
+		head->data_off += 8;
+	}
+	mbuf->next = NULL;
+	head->pkt_len = inner_rx->pkt_lenm1 + 1;
+	head->nb_segs = hdr->w0.num_frags;
+
+	return head;
+}
+
 static __rte_always_inline struct rte_mbuf *
-nix_sec_meta_to_mbuf_sc(uint64_t cq_w1, const uint64_t sa_base, uintptr_t laddr,
-			uint8_t *loff, struct rte_mbuf *mbuf, uint16_t data_off)
+nix_sec_meta_to_mbuf_sc(uint64_t cq_w1, uint64_t cq_w5, const uint64_t sa_base,
+			uintptr_t laddr, uint8_t *loff, struct rte_mbuf *mbuf,
+			uint16_t data_off, const uint16_t flags,
+			const uint64_t mbuf_init)
 {
 	const void *__p = (void *)((uintptr_t)mbuf + (uint16_t)data_off);
 	const struct cpt_parse_hdr_s *hdr = (const struct cpt_parse_hdr_s *)__p;
 	struct cn10k_inb_priv_data *inb_priv;
-	struct rte_mbuf *inner;
+	struct rte_mbuf *inner = NULL;
+	uint64_t res_w1;
 	uint32_t sa_idx;
+	uint16_t uc_cc;
+	uint32_t len;
 	void *inb_sa;
 	uint64_t w0;
 
-	if (cq_w1 & BIT(11)) {
+	if ((flags & NIX_RX_REAS_F) && (cq_w1 & BIT(11))) {
+		/* Get SPI from CPT_PARSE_S's cookie(already swapped) */
+		w0 = hdr->w0.u64;
+		sa_idx = w0 >> 32;
+
+		inb_sa = roc_nix_inl_ot_ipsec_inb_sa(sa_base, sa_idx);
+		inb_priv = roc_nix_inl_ot_ipsec_inb_sa_sw_rsvd(inb_sa);
+
+		if (!hdr->w0.num_frags) {
+			/* No Reassembly or inbound error */
+			inner = (struct rte_mbuf *)
+				(rte_be_to_cpu_64(hdr->wqe_ptr) -
+				 sizeof(struct rte_mbuf));
+
+			/* Update dynamic field with userdata */
+			*rte_security_dynfield(inner) =
+				(uint64_t)inb_priv->userdata;
+
+			/* CPT result(struct cpt_cn10k_res_s) is at
+			 * after first IOVA in meta
+			 */
+			res_w1 = *((uint64_t *)(&inner[1]) + 10);
+			uc_cc = res_w1 & 0xFF;
+
+			/* Calculate inner packet length */
+			len = ((res_w1 >> 16) & 0xFFFF) + hdr->w2.il3_off -
+				sizeof(struct cpt_parse_hdr_s) - (w0 & 0x7);
+			inner->pkt_len = len;
+			inner->data_len = len;
+			*(uint64_t *)(&inner->rearm_data) = mbuf_init;
+
+			inner->ol_flags = ((uc_cc == CPT_COMP_WARN) ?
+					   RTE_MBUF_F_RX_SEC_OFFLOAD :
+					   (RTE_MBUF_F_RX_SEC_OFFLOAD |
+					    RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED));
+		} else if (!(hdr->w0.err_sum) && !(hdr->w0.reas_sts)) {
+			/* Reassembly success */
+			inner = nix_sec_reassemble_frags(hdr, cq_w1, cq_w5,
+							 mbuf_init);
+
+			/* Update dynamic field with userdata */
+			*rte_security_dynfield(inner) =
+				(uint64_t)inb_priv->userdata;
+
+			/* Assume success */
+			inner->ol_flags = RTE_MBUF_F_RX_SEC_OFFLOAD;
+		} else {
+			/* Reassembly failure */
+			inner = nix_sec_attach_frags(hdr, inb_priv, mbuf_init);
+		}
+
+		/* Store meta in lmtline to free
+		 * Assume all meta's from same aura.
+		 */
+		*(uint64_t *)(laddr + (*loff << 3)) = (uint64_t)mbuf;
+		*loff = *loff + 1;
+
+		return inner;
+	} else if (cq_w1 & BIT(11)) {
 		inner = (struct rte_mbuf *)(rte_be_to_cpu_64(hdr->wqe_ptr) -
 					    sizeof(struct rte_mbuf));
 
@@ -147,8 +487,24 @@  nix_sec_meta_to_mbuf_sc(uint64_t cq_w1, const uint64_t sa_base, uintptr_t laddr,
 		*rte_security_dynfield(inner) = (uint64_t)inb_priv->userdata;
 
 		/* Update l2 hdr length first */
-		inner->pkt_len = (hdr->w2.il3_off -
-				  sizeof(struct cpt_parse_hdr_s) - (w0 & 0x7));
+
+		/* CPT result(struct cpt_cn10k_res_s) is at
+		 * after first IOVA in meta
+		 */
+		res_w1 = *((uint64_t *)(&inner[1]) + 10);
+		uc_cc = res_w1 & 0xFF;
+
+		/* Calculate inner packet length */
+		len = ((res_w1 >> 16) & 0xFFFF) + hdr->w2.il3_off -
+			sizeof(struct cpt_parse_hdr_s) - (w0 & 0x7);
+		inner->pkt_len = len;
+		inner->data_len = len;
+		*(uint64_t *)(&inner->rearm_data) = mbuf_init;
+
+		inner->ol_flags = ((uc_cc == CPT_COMP_WARN) ?
+				   RTE_MBUF_F_RX_SEC_OFFLOAD :
+				   (RTE_MBUF_F_RX_SEC_OFFLOAD |
+				    RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED));
 
 		/* Store meta in lmtline to free
 		 * Assume all meta's from same aura.
@@ -164,18 +520,22 @@  nix_sec_meta_to_mbuf_sc(uint64_t cq_w1, const uint64_t sa_base, uintptr_t laddr,
 
 		return inner;
 	}
+
 	return mbuf;
 }
 
 #if defined(RTE_ARCH_ARM64)
 
 static __rte_always_inline struct rte_mbuf *
-nix_sec_meta_to_mbuf(uint64_t cq_w1, uintptr_t sa_base, uintptr_t laddr,
-		     uint8_t *loff, struct rte_mbuf *mbuf, uint16_t data_off,
-		     uint8x16_t *rx_desc_field1, uint64_t *ol_flags)
+nix_sec_meta_to_mbuf(uint64_t cq_w1, uint64_t cq_w5, uintptr_t sa_base,
+		     uintptr_t laddr, uint8_t *loff, struct rte_mbuf *mbuf,
+		     uint16_t data_off, uint8x16_t *rx_desc_field1,
+		     uint64_t *ol_flags, const uint16_t flags,
+		     uint64x2_t *rearm)
 {
 	const void *__p = (void *)((uintptr_t)mbuf + (uint16_t)data_off);
 	const struct cpt_parse_hdr_s *hdr = (const struct cpt_parse_hdr_s *)__p;
+	uint64_t mbuf_init = vgetq_lane_u64(*rearm, 0);
 	struct cn10k_inb_priv_data *inb_priv;
 	struct rte_mbuf *inner;
 	uint64_t *sg, res_w1;
@@ -184,7 +544,100 @@  nix_sec_meta_to_mbuf(uint64_t cq_w1, uintptr_t sa_base, uintptr_t laddr,
 	uint16_t len;
 	uint64_t w0;
 
-	if (cq_w1 & BIT(11)) {
+	if ((flags & NIX_RX_REAS_F) && (cq_w1 & BIT(11))) {
+		w0 = hdr->w0.u64;
+		sa_idx = w0 >> 32;
+
+		/* Get SPI from CPT_PARSE_S's cookie(already swapped) */
+		w0 = hdr->w0.u64;
+		sa_idx = w0 >> 32;
+
+		inb_sa = roc_nix_inl_ot_ipsec_inb_sa(sa_base, sa_idx);
+		inb_priv = roc_nix_inl_ot_ipsec_inb_sa_sw_rsvd(inb_sa);
+
+		/* Clear checksum flags */
+		*ol_flags &= ~(RTE_MBUF_F_RX_L4_CKSUM_MASK |
+			       RTE_MBUF_F_RX_IP_CKSUM_MASK);
+
+		if (!hdr->w0.num_frags) {
+			/* No Reassembly or inbound error */
+			inner = (struct rte_mbuf *)
+				(rte_be_to_cpu_64(hdr->wqe_ptr) -
+				 sizeof(struct rte_mbuf));
+			/* Update dynamic field with userdata */
+			*rte_security_dynfield(inner) =
+				(uint64_t)inb_priv->userdata;
+
+			/* CPT result(struct cpt_cn10k_res_s) is at
+			 * after first IOVA in meta
+			 */
+			sg = (uint64_t *)(inner + 1);
+			res_w1 = sg[10];
+
+			/* Clear checksum flags and update security flag */
+			*ol_flags &= ~(RTE_MBUF_F_RX_L4_CKSUM_MASK |
+				       RTE_MBUF_F_RX_IP_CKSUM_MASK);
+			*ol_flags |=
+				(((res_w1 & 0xFF) == CPT_COMP_WARN) ?
+				 RTE_MBUF_F_RX_SEC_OFFLOAD :
+				 (RTE_MBUF_F_RX_SEC_OFFLOAD |
+				  RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED));
+			/* Calculate inner packet length */
+			len = ((res_w1 >> 16) & 0xFFFF) +
+				hdr->w2.il3_off -
+				sizeof(struct cpt_parse_hdr_s) -
+				(w0 & 0x7);
+			/* Update pkt_len and data_len */
+			*rx_desc_field1 =
+				vsetq_lane_u16(len, *rx_desc_field1, 2);
+			*rx_desc_field1 =
+				vsetq_lane_u16(len, *rx_desc_field1, 4);
+
+		} else if (!(hdr->w0.err_sum) && !(hdr->w0.reas_sts)) {
+			/* Reassembly success */
+			inner = nix_sec_reassemble_frags(hdr, cq_w1, cq_w5,
+							 mbuf_init);
+			sg = (uint64_t *)(inner + 1);
+			res_w1 = sg[10];
+
+			/* Update dynamic field with userdata */
+			*rte_security_dynfield(inner) =
+				(uint64_t)inb_priv->userdata;
+
+			/* Assume success */
+			*ol_flags |= RTE_MBUF_F_RX_SEC_OFFLOAD;
+
+			/* Update pkt_len and data_len */
+			*rx_desc_field1 = vsetq_lane_u16(inner->pkt_len,
+							 *rx_desc_field1, 2);
+			*rx_desc_field1 = vsetq_lane_u16(inner->data_len,
+							 *rx_desc_field1, 4);
+
+			/* Data offset might be updated */
+			mbuf_init = *(uint64_t *)(&inner->rearm_data);
+			*rearm = vsetq_lane_u64(mbuf_init, *rearm, 0);
+		} else {
+			/* Reassembly failure */
+			inner = nix_sec_attach_frags(hdr, inb_priv, mbuf_init);
+			*ol_flags |= inner->ol_flags;
+
+			/* Update pkt_len and data_len */
+			*rx_desc_field1 = vsetq_lane_u16(inner->pkt_len,
+							 *rx_desc_field1, 2);
+			*rx_desc_field1 = vsetq_lane_u16(inner->data_len,
+							 *rx_desc_field1, 4);
+		}
+
+		/* Store meta in lmtline to free
+		 * Assume all meta's from same aura.
+		 */
+		*(uint64_t *)(laddr + (*loff << 3)) = (uint64_t)mbuf;
+		*loff = *loff + 1;
+
+		/* Return inner mbuf */
+		return inner;
+
+	} else if (cq_w1 & BIT(11)) {
 		inner = (struct rte_mbuf *)(rte_be_to_cpu_64(hdr->wqe_ptr) -
 					    sizeof(struct rte_mbuf));
 		/* Get SPI from CPT_PARSE_S's cookie(already swapped) */
@@ -299,7 +752,7 @@  nix_cqe_xtract_mseg(const union nix_rx_parse_u *rx, struct rte_mbuf *mbuf,
 	sg = *(const uint64_t *)(rx + 1);
 	nb_segs = (sg >> 48) & 0x3;
 
-	if (nb_segs == 1) {
+	if (nb_segs == 1 && !(flags & NIX_RX_SEC_REASSEMBLY_F)) {
 		mbuf->next = NULL;
 		return;
 	}
@@ -362,30 +815,10 @@  cn10k_nix_cqe_to_mbuf(const struct nix_cqe_hdr_s *cq, const uint32_t tag,
 		ol_flags |= RTE_MBUF_F_RX_RSS_HASH;
 	}
 
-	/* Process Security packets */
-	if (flag & NIX_RX_OFFLOAD_SECURITY_F) {
-		if (w1 & BIT(11)) {
-			/* CPT result(struct cpt_cn10k_res_s) is at
-			 * after first IOVA in meta
-			 */
-			const uint64_t *sg = (const uint64_t *)(mbuf + 1);
-			const uint64_t res_w1 = sg[10];
-			const uint16_t uc_cc = res_w1 & 0xFF;
-
-			/* Rlen */
-			len = ((res_w1 >> 16) & 0xFFFF) + mbuf->pkt_len;
-			ol_flags |= ((uc_cc == CPT_COMP_WARN) ?
-						   RTE_MBUF_F_RX_SEC_OFFLOAD :
-						   (RTE_MBUF_F_RX_SEC_OFFLOAD |
-					      RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED));
-		} else {
-			if (flag & NIX_RX_OFFLOAD_CHECKSUM_F)
-				ol_flags |= nix_rx_olflags_get(lookup_mem, w1);
-		}
-	} else {
-		if (flag & NIX_RX_OFFLOAD_CHECKSUM_F)
-			ol_flags |= nix_rx_olflags_get(lookup_mem, w1);
-	}
+	/* Skip rx ol flags extraction for Security packets */
+	if ((!(flag & NIX_RX_SEC_REASSEMBLY_F) || !(w1 & BIT(11))) &&
+			flag & NIX_RX_OFFLOAD_CHECKSUM_F)
+		ol_flags |= nix_rx_olflags_get(lookup_mem, w1);
 
 	if (flag & NIX_RX_OFFLOAD_VLAN_STRIP_F) {
 		if (rx->vtag0_gone) {
@@ -401,10 +834,15 @@  cn10k_nix_cqe_to_mbuf(const struct nix_cqe_hdr_s *cq, const uint32_t tag,
 	if (flag & NIX_RX_OFFLOAD_MARK_UPDATE_F)
 		ol_flags = nix_update_match_id(rx->match_id, ol_flags, mbuf);
 
-	mbuf->ol_flags = ol_flags;
-	mbuf->pkt_len = len;
-	mbuf->data_len = len;
-	*(uint64_t *)(&mbuf->rearm_data) = val;
+	/* Packet data length and ol flags is already updated for sec */
+	if (flag & NIX_RX_SEC_REASSEMBLY_F && w1 & BIT_ULL(11)) {
+		mbuf->ol_flags |= ol_flags;
+	} else {
+		mbuf->ol_flags = ol_flags;
+		mbuf->pkt_len = len;
+		mbuf->data_len = len;
+		*(uint64_t *)(&mbuf->rearm_data) = val;
+	}
 
 	if (flag & NIX_RX_MULTI_SEG_F)
 		/*
@@ -414,8 +852,6 @@  cn10k_nix_cqe_to_mbuf(const struct nix_cqe_hdr_s *cq, const uint32_t tag,
 		 * Hence, flag argument is not required.
 		 */
 		nix_cqe_xtract_mseg(rx, mbuf, val, 0);
-	else
-		mbuf->next = NULL;
 }
 
 static inline uint16_t
@@ -525,9 +961,11 @@  cn10k_nix_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts,
 		/* Translate meta to mbuf */
 		if (flags & NIX_RX_OFFLOAD_SECURITY_F) {
 			const uint64_t cq_w1 = *((const uint64_t *)cq + 1);
+			const uint64_t cq_w5 = *((const uint64_t *)cq + 5);
 
-			mbuf = nix_sec_meta_to_mbuf_sc(cq_w1, sa_base, laddr,
-						       &loff, mbuf, data_off);
+			mbuf = nix_sec_meta_to_mbuf_sc(cq_w1, cq_w5, sa_base, laddr,
+						       &loff, mbuf, data_off,
+						       flags, mbuf_init);
 		}
 
 		cn10k_nix_cqe_to_mbuf(cq, cq->tag, mbuf, lookup_mem, mbuf_init,
@@ -893,25 +1331,40 @@  cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
 
 		/* Translate meta to mbuf */
 		if (flags & NIX_RX_OFFLOAD_SECURITY_F) {
+			uint64_t cq0_w5 = *(uint64_t *)(cq0 + CQE_SZ(0) + 40);
+			uint64_t cq1_w5 = *(uint64_t *)(cq0 + CQE_SZ(1) + 40);
+			uint64_t cq2_w5 = *(uint64_t *)(cq0 + CQE_SZ(2) + 40);
+			uint64_t cq3_w5 = *(uint64_t *)(cq0 + CQE_SZ(3) + 40);
+
+			/* Initialize rearm data when reassembly is enabled as
+			 * data offset might change.
+			 */
+			if (flags & NIX_RX_REAS_F) {
+				rearm0 = vdupq_n_u64(mbuf_initializer);
+				rearm1 = vdupq_n_u64(mbuf_initializer);
+				rearm2 = vdupq_n_u64(mbuf_initializer);
+				rearm3 = vdupq_n_u64(mbuf_initializer);
+			}
+
 			/* Checksum ol_flags will be cleared if mbuf is meta */
-			mbuf0 = nix_sec_meta_to_mbuf(cq0_w1, sa_base, laddr,
+			mbuf0 = nix_sec_meta_to_mbuf(cq0_w1, cq0_w5, sa_base, laddr,
 						     &loff, mbuf0, d_off, &f0,
-						     &ol_flags0);
+						     &ol_flags0, flags, &rearm0);
 			mbuf01 = vsetq_lane_u64((uint64_t)mbuf0, mbuf01, 0);
 
-			mbuf1 = nix_sec_meta_to_mbuf(cq1_w1, sa_base, laddr,
+			mbuf1 = nix_sec_meta_to_mbuf(cq1_w1, cq1_w5, sa_base, laddr,
 						     &loff, mbuf1, d_off, &f1,
-						     &ol_flags1);
+						     &ol_flags1, flags, &rearm1);
 			mbuf01 = vsetq_lane_u64((uint64_t)mbuf1, mbuf01, 1);
 
-			mbuf2 = nix_sec_meta_to_mbuf(cq2_w1, sa_base, laddr,
+			mbuf2 = nix_sec_meta_to_mbuf(cq2_w1, cq2_w5, sa_base, laddr,
 						     &loff, mbuf2, d_off, &f2,
-						     &ol_flags2);
+						     &ol_flags2, flags, &rearm2);
 			mbuf23 = vsetq_lane_u64((uint64_t)mbuf2, mbuf23, 0);
 
-			mbuf3 = nix_sec_meta_to_mbuf(cq3_w1, sa_base, laddr,
+			mbuf3 = nix_sec_meta_to_mbuf(cq3_w1, cq3_w5, sa_base, laddr,
 						     &loff, mbuf3, d_off, &f3,
-						     &ol_flags3);
+						     &ol_flags3, flags, &rearm3);
 			mbuf23 = vsetq_lane_u64((uint64_t)mbuf3, mbuf23, 1);
 		}
 
@@ -1367,6 +1820,7 @@  cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
 	R(sec_vlan_ts_mark_cksum_ptype_rss,                                    \
 	  R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
 
+
 #define NIX_RX_FASTPATH_MODES                                                  \
 	NIX_RX_FASTPATH_MODES_0_15                                             \
 	NIX_RX_FASTPATH_MODES_16_31                                            \
@@ -1375,7 +1829,7 @@  cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
 	NIX_RX_FASTPATH_MODES_64_79                                            \
 	NIX_RX_FASTPATH_MODES_80_95                                            \
 	NIX_RX_FASTPATH_MODES_96_111                                           \
-	NIX_RX_FASTPATH_MODES_112_127
+	NIX_RX_FASTPATH_MODES_112_127                                          \
 
 #define R(name, flags)                                                         \
 	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_##name(          \
@@ -1385,6 +1839,14 @@  cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
 	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_vec_##name(      \
 		void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);     \
 	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_vec_mseg_##name( \
+		void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);     \
+	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_reas_##name(     \
+		void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);     \
+	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_reas_mseg_##name(\
+		void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);     \
+	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_reas_vec_##name( \
+		void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);     \
+	uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_reas_vec_mseg_##name( \
 		void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);
 
 NIX_RX_FASTPATH_MODES
diff --git a/drivers/net/cnxk/cn10k_rx_select.c b/drivers/net/cnxk/cn10k_rx_select.c
index e3777b1a33..b906f6725a 100644
--- a/drivers/net/cnxk/cn10k_rx_select.c
+++ b/drivers/net/cnxk/cn10k_rx_select.c
@@ -41,6 +41,18 @@  cn10k_eth_set_rx_function(struct rte_eth_dev *eth_dev)
 #undef R
 	};
 
+	const eth_rx_burst_t nix_eth_rx_burst_reas[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags)[flags] = cn10k_nix_recv_pkts_reas_##name,
+		NIX_RX_FASTPATH_MODES
+#undef R
+	};
+
+	const eth_rx_burst_t nix_eth_rx_burst_mseg_reas[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags)[flags] = cn10k_nix_recv_pkts_reas_mseg_##name,
+		NIX_RX_FASTPATH_MODES
+#undef R
+	};
+
 	const eth_rx_burst_t nix_eth_rx_vec_burst[NIX_RX_OFFLOAD_MAX] = {
 #define R(name, flags)[flags] = cn10k_nix_recv_pkts_vec_##name,
 
@@ -55,17 +67,47 @@  cn10k_eth_set_rx_function(struct rte_eth_dev *eth_dev)
 #undef R
 	};
 
+	const eth_rx_burst_t nix_eth_rx_vec_burst_reas[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags)[flags] = cn10k_nix_recv_pkts_reas_vec_##name,
+		NIX_RX_FASTPATH_MODES
+#undef R
+	};
+
+	const eth_rx_burst_t nix_eth_rx_vec_burst_mseg_reas[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags)[flags] = cn10k_nix_recv_pkts_reas_vec_mseg_##name,
+		NIX_RX_FASTPATH_MODES
+#undef R
+	};
+
 	/* Copy multi seg version with no offload for tear down sequence */
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
 		dev->rx_pkt_burst_no_offload = nix_eth_rx_burst_mseg[0];
 
 	if (dev->scalar_ena) {
-		if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SCATTER)
-			return pick_rx_func(eth_dev, nix_eth_rx_burst_mseg);
-		return pick_rx_func(eth_dev, nix_eth_rx_burst);
+		if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SCATTER) {
+			if (dev->rx_offload_flags & NIX_RX_REAS_F)
+				return pick_rx_func(eth_dev,
+						nix_eth_rx_burst_mseg_reas);
+			else
+				return pick_rx_func(eth_dev,
+						nix_eth_rx_burst_mseg);
+		}
+		if (dev->rx_offload_flags & NIX_RX_REAS_F)
+			return pick_rx_func(eth_dev, nix_eth_rx_burst_reas);
+		else
+			return pick_rx_func(eth_dev, nix_eth_rx_burst);
 	}
 
-	if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SCATTER)
-		return pick_rx_func(eth_dev, nix_eth_rx_vec_burst_mseg);
-	return pick_rx_func(eth_dev, nix_eth_rx_vec_burst);
+	if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SCATTER) {
+		if (dev->rx_offload_flags & NIX_RX_REAS_F)
+			return pick_rx_func(eth_dev,
+					nix_eth_rx_vec_burst_mseg_reas);
+		else
+			return pick_rx_func(eth_dev, nix_eth_rx_vec_burst_mseg);
+	}
+
+	if (dev->rx_offload_flags & NIX_RX_REAS_F)
+		return pick_rx_func(eth_dev, nix_eth_rx_vec_burst_reas);
+	else
+		return pick_rx_func(eth_dev, nix_eth_rx_vec_burst);
 }
diff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h
index 351b9f8fcf..445b7abf69 100644
--- a/drivers/net/cnxk/cnxk_ethdev.h
+++ b/drivers/net/cnxk/cnxk_ethdev.h
@@ -419,6 +419,10 @@  struct cnxk_eth_dev {
 	/* Security data */
 	struct cnxk_eth_dev_sec_inb inb;
 	struct cnxk_eth_dev_sec_outb outb;
+
+	/* Reassembly dynfield/flag offsets */
+	int reass_dynfield_off;
+	int reass_dynflag_bit;
 };
 
 struct cnxk_eth_rxq_sp {
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15.c b/drivers/net/cnxk/rx/cn10k/rx_0_15.c
index 50135e7252..5087bad1b0 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_0_15.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
index fbcb35d3a6..1db51c0b2b 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
index 63fa34e6d7..17a7bbdfe4 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
index 94dfade1fd..c795c5a0c3 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_0_15
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127.c b/drivers/net/cnxk/rx/cn10k/rx_112_127.c
index c3fa34ccb4..3298313c3f 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_112_127.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
index 1016942ed0..1c4528436a 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
index 7aeb0f22ba..8943cc6ea5 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
index 415022af9a..cd16537dd7 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_112_127
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31.c b/drivers/net/cnxk/rx/cn10k/rx_16_31.c
index 66436879c5..c65e170712 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_16_31.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
index 0f253baecb..8f2c9d1732 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
index d0866043db..809d288fdb 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
index 0f919d3456..d30608a0fd 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_16_31
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47.c b/drivers/net/cnxk/rx/cn10k/rx_32_47.c
index fca899eb27..fdc0fdabaa 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_32_47.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
index fda888071a..9837bc6a66 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
index 117e5d5513..27436ca35d 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
index 626a4684d2..f324de9f8c 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_32_47
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63.c b/drivers/net/cnxk/rx/cn10k/rx_48_63.c
index daf5fb9740..73fc2f9e90 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_48_63.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
index b169862a71..51d31a734a 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
index 79f124a632..a9b7627c96 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
index 6ee58cd126..0088acbdce 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_48_63
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79.c b/drivers/net/cnxk/rx/cn10k/rx_64_79.c
index bdae0f98f9..fc65d8ec23 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_64_79.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
index 7b21384479..5670f6a6ab 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
index 6c7c6e747b..1911feff5c 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
index e1f1354932..8302f415a1 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,   \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_64_79
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95.c b/drivers/net/cnxk/rx/cn10k/rx_80_95.c
index 14ea0fd67c..5d507a4f72 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_80_95.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
index 5672e87fbc..91456ecad5 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
index bc85897387..407f7ca076 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
index 45965ba313..c2d4a3df63 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_80_95
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111.c b/drivers/net/cnxk/rx/cn10k/rx_96_111.c
index e3b4cd0de5..1075734360 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_96_111.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)                         \
+	NIX_RX_RECV(cn10k_nix_recv_pkts_reas_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
index 77f383d7d4..4040a3ec1f 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)               \
+	NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_reas_mseg_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
index a12c665355..24e888dc86 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
@@ -5,7 +5,9 @@ 
 #include "cn10k_ethdev.h"
 #include "cn10k_rx.h"
 
-#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+#define R(name, flags)                                                         \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)                 \
+	NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_reas_vec_##name, flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c
index 5ef7386202..8ff7e419bb 100644
--- a/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c
@@ -6,7 +6,9 @@ 
 #include "cn10k_rx.h"
 
 #define R(name, flags)                                                         \
-	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)       \
+	NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_reas_vec_mseg_##name,         \
+			     flags | NIX_RX_REAS_F)
 
 NIX_RX_FASTPATH_MODES_96_111
 #undef R