]> git.droids-corp.org - dpdk.git/commitdiff
net/cnxk: support IP reassembly
authorVidya Sagar Velumuri <vvelumuri@marvell.com>
Thu, 24 Feb 2022 18:29:01 +0000 (23:59 +0530)
committerJerin Jacob <jerinj@marvell.com>
Thu, 24 Feb 2022 20:33:33 +0000 (21:33 +0100)
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>
Acked-by: Jerin Jacob <jerinj@marvell.com>
176 files changed:
doc/guides/rel_notes/release_22_03.rst
drivers/event/cnxk/cn10k_worker.h
drivers/event/cnxk/deq/cn10k/deq_0_15.c
drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127.c
drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31.c
drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47.c
drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63.c
drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79.c
drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95.c
drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111.c
drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
drivers/net/cnxk/cn10k_ethdev.c
drivers/net/cnxk/cn10k_ethdev.h
drivers/net/cnxk/cn10k_ethdev_sec.c
drivers/net/cnxk/cn10k_rx.h
drivers/net/cnxk/cn10k_rx_select.c
drivers/net/cnxk/cnxk_ethdev.h
drivers/net/cnxk/rx/cn10k/rx_0_15.c
drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_112_127.c
drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_16_31.c
drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_32_47.c
drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_48_63.c
drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_64_79.c
drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_80_95.c
drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
drivers/net/cnxk/rx/cn10k/rx_96_111.c
drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c

index 1ea2784340f4023893b495cd1fdb9250aedd40ee..437b686db43044a7389978e2f905da212281cd2c 100644 (file)
@@ -160,6 +160,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.
 
 * **Updated Mellanox mlx5 driver.**
 
index 0d0685e28e1abf3713e8f788c6650ba3981dbc24..23c1f2ba15ad4d60b6d10c701f39f54abf42e7ce 100644 (file)
@@ -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);
 
index 8359f11fa3e8127f3654da55f026190ba73f4fcf..4da801c9b26d2ef76a027706c4356ddaf7b2878c 100644 (file)
@@ -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
index 853ffe7bc85b29de52a6580aeb26df1d2d96e37f..4f0ce44f8519ff922ba6d2461320fbb1754517e5 100644 (file)
@@ -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
index 6ddc37885f16bf9e041be55da950e367b2a7ed15..7b9cec09dbd7fe895846df148f9829c777c7c3f9 100644 (file)
@@ -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
index 799598c0d84cc48db0308cebe6794f45b0eaa326..55cb3a47e3f3e0d742b2b6759b272587e81bb89b 100644 (file)
@@ -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
index a21a36a55b0a63935e8e94eb655bd6040a1cc5fa..1d427ea19f8486b2e6424bc48d3eef788a3a9a68 100644 (file)
@@ -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
index fa3a18aa3739f24da93798627b9b9c45e5227809..a4ceb2cbc955d6ffaefcd672903b72f548782b42 100644 (file)
@@ -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
index 46abcf25fb3c5d864ca704e8368b5456bb1cc872..3cd179933fab4678529c6c3a39856d1fce139f9b 100644 (file)
@@ -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
index b50cfa27d211d8435a1a4f0394b5928e65416ffa..6433093e5c553fd3b8cc43aa370d68df07f36869 100644 (file)
@@ -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
index 1f4b814189a3ba79c8e34a0e45ee76447f44c23c..42fc7fd2f3f31dc7aacb288e6a4f16de13a5677e 100644 (file)
@@ -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
index e002f65ba2aaad9cc9b75b01f21f1776dea6bede..94a5522e775b12bc3328abd474b753b42ffb1e21 100644 (file)
@@ -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
index d808f40b1c19ce0d0545c9a108746438da61f88b..a6bdf73a32dd14a72294083257042b61fcde0b41 100644 (file)
@@ -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
index 2203ffaf411e1dcea78115ffc17ea3a5efa4c004..87d708adf0edb39e991646834b5b9e859a49b565 100644 (file)
@@ -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
index ac3d1f6b0067ab522ccb1e99bca82efb44a24f02..c3c5793240bf21b6593d9614dcf52962de3be7e8 100644 (file)
@@ -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
index f250c04fdc95f6c55b8a95407988990ca4439e5c..84e39deefccde162ec412e08fa7900adb37d5500 100644 (file)
@@ -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
index a79d60889a7aa06a3ade359cbaf261dac4381307..c19da1b97bac3a9ba7b93b8b59c1afc59af6ec7c 100644 (file)
@@ -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
index a22e98516040f09124d558ff84da2ce1530edc6c..595b2d06ecb8aa35eb64dbb1e82c3b96dedc4ac2 100644 (file)
@@ -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
index 307b2576adac0120ffbbaaf416cc5ed5e77c5f05..2dff8795c8080ded1ad10adb03e168b8184b44c1 100644 (file)
@@ -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
index fe791fd68ef8b8be282182c34229016d038d7b0f..9d6a0d53a7aa01f49cea9f00cfe50ff063866fc4 100644 (file)
@@ -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
index 09866c58b4ca00557efa091d40bcd57de7a3c9a0..b959e2d9e1f5fde8f09e3b57ca1eb99e76fd2d1c 100644 (file)
@@ -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
index 232b90761e5d3dab35f5f0a14a4fd15b090f386b..d31cfdfd5e32159be338f80100c45279dafa0a03 100644 (file)
@@ -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
index e14675c2b0af7e669d4965948df94047a71bd2bb..333ef3f8a91b736e6cd9ec1cd3f75f864ca9f627 100644 (file)
@@ -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
index d30afcce7af78a4158bff21850bd72959c026df8..f3a26618bf0486f26f4fae98be1c1f4ca3934c6f 100644 (file)
@@ -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
index b74cef721db3f30323fe5db591950735de6a194f..f16fd043935c93e3374a5c8028952e1c99b2be7c 100644 (file)
@@ -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
index 2ff4891293132c14387137ca814ded6bb98f88a1..eeac9e34af7ae15b2f98916c8803de9b2e720083 100644 (file)
@@ -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
index e13463dec339f7d4340b7290c9f4c92d3081dd32..73fa822782ded51af3becd0820c46b1d17fe16a0 100644 (file)
@@ -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
index b084639325c09b2adafa8ef3e4912e73dd01191c..a5746fa649fc3202601f831141f520f7545a899f 100644 (file)
@@ -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
index c008d7a0ba14d9d516460c017896d702eb8875d0..032265533f915442cc9817f8d0583865ec581cd9 100644 (file)
@@ -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
index b69b1cce0b51b269ab59a3834c89d2dcf04cb999..68f82747c1264e8c2d939a3a74ad7eaf6debcf9a 100644 (file)
@@ -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
index 94dc43d3d5a4365f6d69e11df9397a089cc292ea..398e5a3e1caf30e9f788e4c5b67677a13f3cd9c4 100644 (file)
@@ -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
index 579a9a67c06f1c91dbe5e3cbcad7e0078ea0b338..fc04345f7e51ae571463ec01ad06560766497068 100644 (file)
@@ -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
index c1425f962951ab934402fb36d57148b7c904ec22..071ec8f6218736cd6a97ed64c68bda16cca44eea 100644 (file)
@@ -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
index e881aef1ac754257019baf441722e0450e117982..b476eff143964e9c487d2a8d34dd7efe1c3bb3e2 100644 (file)
@@ -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
index 46ac501f85923faaf46751bef942080fa2ace4ef..42e6eb3a7fe78b6ce8f0ff29e762c5c753c2105e 100644 (file)
@@ -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
index b52c556fd3497570a57974db81ae3ca9f9d47a0b..e1080e2e82146481f652e4761be5c7e214a82b9c 100644 (file)
@@ -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
index 790ab3217e34c9d916d505ded7ce4ab0f1e5a093..27c2952758b9c502e27733695dba3fafe1963565 100644 (file)
@@ -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
index 2469b0acb5ff2ae47a2e4d40638d9792e9714ac1..f3a41992b5655d6ac1d7cc56672a68639da21a67 100644 (file)
@@ -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
index a4797a1363617163c7324eccd3f215b7e0e1f337..93e33f5b5c92ea789430b3a4db997296c94b4723 100644 (file)
@@ -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
index 0ac48e5fa0fdc3d269b809e8781468de9e1ed001..b829aa0fc8c7057a86e41671c439da577c131556 100644 (file)
@@ -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
index 2cce839f5073ca8417e8c044b0bbae682c52564a..a7e96d41b323f034aee89b9d83615ff55b1a5747 100644 (file)
@@ -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
index 4c4bcfc6dda75fde285960251adfa113a76b438a..ab9acd463757e2f0a95adf4e97c3a3f8b046ff79 100644 (file)
@@ -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
index 4c6ecb2aabd6ac5a4220ff0d6ab440a4becaba6d..312fbc6334df8f1e5657d9686a11c957061fa887 100644 (file)
@@ -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
index 8512ea497ebe300ce2fd957ae330c813364617ff..1f5b96cbb64efcd6706e72b323965b8c3afb4913 100644 (file)
@@ -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
index 1123aabf9e385a0bca1bf9323cb0b390c69cf3b5..fb0b6cf6969ba81189ac05a7a1310e108e0503a8 100644 (file)
@@ -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
index d02067e7574ada565df524dc66ea92f10ffdc194..4d13be7a11cfa77536a898105585a773d54c6b10 100644 (file)
@@ -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
index 4186835661c123a35ffe7a94f1851763b7e7fff5..669ff42a98afadf5bc54a671654fb182224e41be 100644 (file)
@@ -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
index 19640807711d5584f7558768e2056b7744e0b943..019afcbcc779f90dc4af035a30c9fe730a9fdea1 100644 (file)
@@ -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
index 15cba8d6c9988ddfcaecf8758bf9b2e87ba16ecf..0c3a14b4134336ccf4c459850b16cf6cbbe0c015 100644 (file)
@@ -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
index d5fc92766075542c0d213d342c463a15b7fe1783..f76f0d85e7754243a7c1c86ed2d6bc9370d748a2 100644 (file)
@@ -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
index 3b3d76b22e5ad24e71ac269c2c7872bbec7eceb1..b2c1411d34b5c527862af27b833f9e927104bc94 100644 (file)
@@ -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
index b15c6fcac480c00eb6fe465840feee1bf1f94f1e..1bcf8526bb6cd860a845cea1bc698f390a864315 100644 (file)
@@ -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
index 4c44086cc16576cac933da06ecfd6fcb9421a7af..d68cc46d675c136c010ae2d794287fb2d6d76241 100644 (file)
@@ -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
index 7c6906ef643a5703c2100afd4822a9ff9a4e95e9..817edb648d038fb6e03da9edce5e4eac5b194fd4 100644 (file)
@@ -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
index 8259fc2d59d4b1c4741a4e6bfd5a03bf6da6ff15..362fb670404e53edcfbba36170f3f58951cf6b58 100644 (file)
@@ -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
index 79db74ded9cf438c4ac88a08fdcf07b86d406ca1..875e4427968db81f6148c1445f99a3efb7ed8f30 100644 (file)
@@ -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
index 04eca6336e1dde649627ba7068635d80c5fac008..9410e486423344e717817c5b394d256f6dcee5bd 100644 (file)
@@ -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
index 0bf9a4f7570c1ada1613d65e710f85ab476ca839..d45fe712b087a59a1f00b495bbc80bc5dd700ccd 100644 (file)
@@ -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
index 460dd3a7124bfffcd64e7034dbc23a979eeb78f3..c0439536aac998eded75e9fcb11e0c19106397cd 100644 (file)
@@ -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
index 660ea00e6b266ebd582928eaa2d0e5dbd0f56be3..da010b0021e061eadca1b212dd08850cc98a3e17 100644 (file)
@@ -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
index 6f2d39ee3d2166a26161bd1a411beebdb1ce97bb..5da95b21c7495207e125b9849b7d83b84e4e5f9e 100644 (file)
@@ -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
index caa4b75d6f4722b034fffcf78e348d97cbb8802f..65af91363fd9e4fda407c5af1348d47ae2dea5e0 100644 (file)
@@ -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
index d6ee581b18a1047de8065a07b6c8a9051123b05d..cff7e40fdabe84a982cb30379da8ed469df4892f 100644 (file)
@@ -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
index 4f77a9796a5a61774d92c36e226bae446b80a2e4..235fceb609d38e57d8eb6b493268f830c4d5fdf8 100644 (file)
@@ -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
index 59cf0dd5d73a52cfcbf7d57d00f289d775d9402b..73771753da5f64da21cbb88bf0afab651f766d4d 100644 (file)
@@ -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
index dbd6d14ce21b70c4e32a5b16241f2fefd5270fff..df0a69dc7aa84451e330e2751e422d815c937867 100644 (file)
@@ -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
index 993c1a84c7adc0e84a235313b3789a2980f27ec0..3d05fb3005f5cb4632d5ef01d88568abaa384574 100644 (file)
@@ -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
index dd8573dda6e0b7130cdf8f093ce0acfda75e31dd..f5a6ce587a3dedce64fbea80fe7619e50ba6df26 100644 (file)
@@ -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
index 23914ea6dd8d4b4bf4be32bc06fc46c2ee43a714..1afb09b708636c275b3040f574e03930c260d1df 100644 (file)
@@ -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
index ff3f82771f3f2b13218850f431cefbcdc7ab3a27..b6e568bba3c21b83cc4224917fcaeccbc24f6e6f 100644 (file)
@@ -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
index baa19ef66434bfc4345bf9e3db80d3e796e51655..ecb36b4f56b604f04763157996960753ec94cd69 100644 (file)
@@ -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
index 01557d63034895f6c7f5ebd8aaa3baeebc099931..5d83ef8ae2b2585e3c3a16ba098f9f274e50a218 100644 (file)
@@ -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
index 7069cc8a65806ee924228b78391b80e5ec5e9b41..e5783d18bd50a95c3eb209c46a6b3364d6e4afaf 100644 (file)
@@ -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
index f890f0ca942bdffd64f1c40a2f5c80fc1a84aeb0..e4355853cc22a8d0b9676e30655970268d8824cd 100644 (file)
@@ -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
index 373abf8c2d2be66d373ea8e31a7d32639edd362a..269ead74cbad644d88e401c8542d61cca5df610a 100644 (file)
@@ -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
index c8e3a4ea50f93c8289fcc1486af8daadc0b2c52f..b64625425a87d7db466a401b642bb8ac550317ae 100644 (file)
@@ -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
index b21648551cc026cbd015738bc87d0e849f9f78b2..b7f8f677385b56c10892b54a6406c2642ec09235 100644 (file)
@@ -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
index 40efdf7d8451c940a5560381fa6912852096d581..9a9cff9e1488cbc0ab4a36c039aed6460afda10a 100644 (file)
@@ -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
index e30a01d9d6dcdde74499294abff6713556b5bf71..fffcad0c3854ffddef1ea5a8152488b9159c3e2a 100644 (file)
@@ -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
index 4e56a67b8d98262436233d052a214f796dcef400..347dabd042795daf18a489d396eaaad34da2d0b4 100644 (file)
@@ -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
index c38af0ff87e6352df36127a3848cc14d6eab7896..3f6e10e81631c847ac634beca04bbe504334eacc 100644 (file)
@@ -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
index 6f36e4941a90c8098f96626204b8a3b1416abd15..e3078d281642f4710c6ae1d243c8e113a348b961 100644 (file)
@@ -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
index 842cc2e60cecd1c7177f6eada376e50fa5e8c504..d262937a9911ba220595c59f9501505011b90d10 100644 (file)
@@ -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
index c21f598ee18ed9657337cab78cebb4f14f75fb7c..59d5cf190d4bbddb72c448863322c6b0e6736a98 100644 (file)
@@ -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
index 68f1c9c636e5ad71db6596316f6d29f5e3c4d1c8..ed9e6b70b7d0e8245ec32933a16215f2c057dc57 100644 (file)
@@ -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
index 06549d773768387180b52e46049ebbf46a313a2a..40c679ace642744c40a2220a085f1404b900f2b7 100644 (file)
@@ -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
index 4e27885af22e5583e9e0b0533b7b43667d86d93d..8c2f6bb171d8ca036bce853ef1938fa3acb8f987 100644 (file)
@@ -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
index c64dfde2c974cc4809fa621be30b7ba433a741b6..6c3aa83c66c23704087a8b2834c4d50b97cb0bfa 100644 (file)
@@ -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
index 29ec54286f0c4d8f7e60c39b37b553f29f5b108a..ea553303fb570e98111a0c5c37fa4336ddd3e7de 100644 (file)
@@ -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
index e58aece2fe1a5cd72423406a45d22c23aaccce68..b201b8a64267a0e4f145e51655b34577fa472244 100644 (file)
@@ -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
index 66c44478f02dc0e389c73c2071e1d4aabc6ee20e..b8e9bdbbd674afd15739d4aaf97bac831713c043 100644 (file)
@@ -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
index b7fa76e0b181e64ce288ad896af3996294bf6c32..f3bccc222f00364c17fb83aff10db66bc90c9ba8 100644 (file)
@@ -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
index 5b1232359d174ee7f475efb6b7be2902ff0b12ba..0057d6e891125acc8c53f37e9dca644533e06059 100644 (file)
@@ -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
index 4b63c5cf1775904db9ab0143c7fdd29e9d85f22c..216c54c51514c4f32c4874aa9515094c730aa329 100644 (file)
@@ -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
index be77fb8265d6582b0ba5985a01172dfbca41cf16..e17cf532a34698907838ecfc4072fd3c35b84a3c 100644 (file)
@@ -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
index 441528ccff9143d1a745150b69f58e33d5a2ff1b..d9186112c049a4ee11ae8b86f2b10849899c87dd 100644 (file)
@@ -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
index 95c20a55ef522f80d13d69712548a7579eee6bb0..4272ff2a5991436bd1404dbed2205495b5c9086d 100644 (file)
@@ -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
index 64e9e1a3e204ef044f4d68660828cb4fb519eed3..843aaa19ca7a3e0b6863c5d6f8fcb5882c117307 100644 (file)
@@ -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
index f166aa55f6444be92c7a9083a07bcb050aec558a..78ed7e2468f683e0507969b770207c8f930bf356 100644 (file)
@@ -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
index e0f141e6b6d13591150e63ec362afca8c44b58f5..d5613699bbed1d3c47d440ddb80c78008a337e7e 100644 (file)
@@ -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
index d0dacb50a25140ddb7450fd2f80eaac6d8b35cea..3d54bc4f1e84ff8c3cc3424a64cbcbbac43a630d 100644 (file)
@@ -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
index 4b5b63e03d59bd6f60be6f95a545450628b46f08..2cfa40f4c9f6307640c3b4294c10f2a09f1e577d 100644 (file)
@@ -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
index 9899e4d7bd459526836cf31a1bcfce689078b313..f385acf5db10e512537a62005e9bd6b9a02b34fb 100644 (file)
@@ -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
index 6a6e2310d237f3a48fb05f93d802e82f46490fbe..d093cdf027a82854ebb659f4639426ab3eb9c2d0 100644 (file)
@@ -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
index 2b3017a8aa85040ebb3cb01e43b222266ca74675..d41d10b4705eb8951c0fd2612949ce1f47aacc4c 100644 (file)
@@ -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
index c0723980ab5a751a7e69dfb94d0a0d4fde73061d..541770db63c603ac1cdce31f1ebfa74c9e6a5df8 100644 (file)
@@ -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
index 37c2e8720a3108ade72637ca9a3f5314fa7c4fb0..85253c20cdf2935a02031f97193cdbe79cd6a86b 100644 (file)
@@ -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
index 286a4b5906635770cc409c34719148e451841c88..d624789f44662c5a3d7c3f1d3bc94ef691f08ba2 100644 (file)
@@ -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
index e99e7e13d3a0dd7e278b67c66b7b65004c6af657..b9cd213bf03c7622119ff086deabd0336e815ea6 100644 (file)
@@ -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
index 8d44f6ccf984007f174e636fffb25108f05e464b..ac152703a50a30dd960a858cb776cf5babb89f5c 100644 (file)
@@ -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
index c9b518c2f8a35b1ce9989f29ff314865896ac60f..16b16e6a63842c9dfddb9dff21c71deb5557e0bd 100644 (file)
@@ -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
index 3ffd6a7d8acd8409bcca05a40cde396ce5c4c51d..df284b78f9b710b50f4631aff97e1ce32189c1f4 100644 (file)
@@ -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
index b4c0f230107484e930ebcc6ceeee434e79b77223..c890c504c189aa17c6920583a8d49c3be06cc35b 100644 (file)
@@ -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
index a19ecf7f2502d1e7a4f78693259ec6075bf0bae4..6af6918dbeb9f20a6a1423f5dae3965036ecc786 100644 (file)
@@ -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
index 9dd8542cae0968375ffbfe2ad13712441834a1b5..00e32a3aa68f7a4541a30e8fd8505ffdce02cea8 100644 (file)
@@ -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
index 688ca922a4ea0fd786fff05f15e4238b59969af6..8a4549a5d9553617bb23e09e91e917f3108f2b53 100644 (file)
@@ -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
index baf006945aba0cad15424be1dfa298f48dee6817..4f8a2fd846359bab0b32705171ecbca8ee5b0e42 100644 (file)
@@ -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
index ad2e644785a5f1523c66de7e73a5c46882e3d276..cc0f53f7867c92f12a3c9c4f8ab5cfffe5d5d8a4 100644 (file)
@@ -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
index ecfb08a869941dfb21e51b32a366b946dc5f25e9..dff2aa84d2c700c1055fadab17528d4769c3da06 100644 (file)
@@ -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
index 1610f3ee2c109c2ac4076894c5808cbc30c511fb..da6a596a6adb227738347820b348f03f67052193 100644 (file)
@@ -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
index d4854f90acd0d6eda2835ee9ce6caea2728a3cf0..cf09f3e6002b5f8458bd969f8892c626703bcaa1 100644 (file)
@@ -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
index 6da5d17b29f16bebf3f507983ff986b56294ea02..a7a3f8302ca2b995435f1d67c9d062a43e6ffa1b 100644 (file)
@@ -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
index e7b2a89dc8fc32dda4b6fbf04bc74114b8b42ac6..5eb2ca77b0a8b34d5946fc19ed92b26af0ad9979 100644 (file)
@@ -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
index 178049bc3ed4200afeec7d3733edf6ce58933393..0e97b764dcf66c028841804374166f1d0bf8a528 100644 (file)
@@ -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
index acd1efbe69f820eeb8bf1d84a524f09fb3799994..f23317bbd474235a74d054a801daaf4053e1d2a9 100644 (file)
@@ -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
index 023fad9e8bb3108a86ae7e79d98d35290e049568..be3178c5b50436b66b26551708b52fb4cc0179f4 100644 (file)
@@ -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
index feb3078847f95f47cf9a5da1c08004158420c556..b0e2a106e08751367555e33d18e566ac46c2b407 100644 (file)
@@ -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
index 3b0008b8f1fd9e282556ac6eaa6e5ed3fe79c3fe..60d0a5ac598d3c9e3576006010d4f0a66d85e656 100644 (file)
@@ -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
index 198bb27ad6a3f057cbe1d27af6d5963d7f862707..5f9479dd5251621fdb73c9e499078db6e0a782fb 100644 (file)
@@ -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
index 9ab6fb54b8263b9fb66847ed66093c3f4553d155..769e78471814bf83f3ac2bb44e2047686057d7a8 100644 (file)
@@ -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
index 7c3f41bc714da9f8f53cce47e195271575e4b78d..53ec7c0a41c7faf2c0fa862b27bc53084f274ce3 100644 (file)
@@ -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
index 3feef4413f9697097911c4ae7653da64f6976fd1..c262a92ac4466122b488880406f7ca65852b50bd 100644 (file)
@@ -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
index ed9711c6dcad9febccc334d96cc1ec63a0737781..a54fb2f72be1a1e445d43585858a06ea6bf41459 100644 (file)
@@ -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
index 6d06b0789292be3c8e2f1514b6085bce148b74c1..013abbad1eb6f3f29451a6b2a8ee3bc022c389b3 100644 (file)
@@ -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
index a9ce488779fd105d38204c92997cbebdc8a79e45..39d19f43814c6f390af7450896de4416ca0f7187 100644 (file)
@@ -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
index 5badd56e6387037f66c3b309789f14e6f3d5ed6b..4cc80dd4c917df609d12a521164ae61575bc7698 100644 (file)
@@ -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
index 6cacfb6ee049160544374c9bcfdf2e31de75ba70..a68904247032e5dd146082fb8eb8dc689b8a5942 100644 (file)
@@ -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
index 321c49bba8879951cb6f2430cdfd934f1daafad5..a3aba85cd3d91d11c3382d04596c688c6d0f3294 100644 (file)
@@ -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
index e57847ef3a7e1ff771ebe428bb5b399c6afb8f54..9f2dc8a36420d6f02d3708ef9a6867c99b8aaf68 100644 (file)
@@ -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
index 523fb452f04f3105360460f740f9c51df4a3d195..62b434e71f69ce624d3877154c8e620d37a8dd8d 100644 (file)
@@ -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;
 };
 
index d7d6437f368bfddc90ecc54d37dab1b65f78c234..87bb691ab4aa711b06657e9ff33582a6c54b9795 100644 (file)
@@ -371,6 +371,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);
@@ -477,6 +484,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;
index de5e41483bd61b9091f266890a6940cdc264135c..7f219e5dddc11a1c00be19386a8783fa9929f919 100644 (file)
@@ -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)
@@ -58,6 +59,17 @@ nix_mbuf_validate_next(struct rte_mbuf *m)
 }
 #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;
@@ -125,19 +137,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));
 
@@ -152,8 +492,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.
@@ -169,18 +525,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;
@@ -189,7 +549,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) */
@@ -304,7 +757,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;
        }
@@ -367,30 +820,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) {
@@ -406,10 +839,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)
                /*
@@ -419,8 +857,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
@@ -530,9 +966,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,
@@ -889,25 +1327,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);
                }
 
@@ -1363,6 +1816,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                                            \
@@ -1371,7 +1825,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(          \
@@ -1381,6 +1835,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
index e3777b1a33b6c6dd353dcd1a51febf12ada553ce..b906f6725a9a925485330b3b76af742819297285 100644 (file)
@@ -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) {
+               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_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_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);
 }
index 351b9f8fcffc40ad991a5be3c0c3603e72e9da02..445b7abf69039904c9beba9d898c42f86eaca851 100644 (file)
@@ -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 {
index 50135e7252fa3f8c56bf5e8af5ccdad4ea5b8fe2..5087bad1b04e0beb5c1c8e3eb010569d319ae922 100644 (file)
@@ -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
index fbcb35d3a6aee22e1765df326c87ec05081cfd9d..1db51c0b2b4c3567087fb1ef6c17204fca43c938 100644 (file)
@@ -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
index 63fa34e6d72b3f003c7853854d4eaa768a65c5b8..17a7bbdfe43243efb318af874386cb31e5b99d1a 100644 (file)
@@ -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
index 94dfade1fdaf87435e2f78ec3b91046bd2c242e2..c795c5a0c3caf842f0bf49dd2cb9bab78fbb44bf 100644 (file)
@@ -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
index c3fa34ccb4b72b7ba972970a9853e19778375db4..3298313c3fb0cde06a02aa9c47380b119f4925dc 100644 (file)
@@ -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
index 1016942ed08c5e26b89fe722e41047efc93c0cc5..1c4528436a3775bcb666eea63f284419430c7b66 100644 (file)
@@ -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
index 7aeb0f22ba20a49e960e76ad271d4eec6665116f..8943cc6ea55e00610242e4a78ae6fb03c43852ce 100644 (file)
@@ -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
index 415022af9ab6f4155e5e6b2d497e06896c369623..cd16537dd7433efc4bcb5843417f36146d84a43f 100644 (file)
@@ -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
index 66436879c5d6b20d93f8ba6301d94dd63dadb50a..c65e1707121f823d58e8769ff0e7019dbd4cf872 100644 (file)
@@ -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
index 0f253baecbe534972df0f79aab6fa5a4882d7b94..8f2c9d1732c7f208488782b90010e9ab28f7170a 100644 (file)
@@ -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
index d0866043dbbb6256c80dc2c66c3a0d82a75cb0da..809d288fdb00881d43f9d8240e90f1480b358c4a 100644 (file)
@@ -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
index 0f919d3456c68b60026f399b077c293365d77ab1..d30608a0fd59120af16a8bd490101f326fe167f1 100644 (file)
@@ -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
index fca899eb273e77fff717644fa02273d266f2224a..fdc0fdabaaa2baa8dd11517b3ca0c82e6c2b6936 100644 (file)
@@ -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
index fda888071a757d02927d3e40bbbdf42a70e9e08e..9837bc6a66b7433cdc8ac3909f38453ffc409a8a 100644 (file)
@@ -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
index 117e5d5513852ddf162e6c4691a40c1d8f6ea40a..27436ca35d0b166ddb5a6378b9399b1323177dba 100644 (file)
@@ -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
index 626a4684d2c9ad109b7d152d4ef7a8f435e4be55..f324de9f8c5e182b8cd891e7eeb41bccdbbdc64d 100644 (file)
@@ -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
index daf5fb9740854aeecc454cfa68ae5ea6d1af7dbf..73fc2f9e90065286c825bdbcf6578778535b32b0 100644 (file)
@@ -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
index b169862a714c9ca883a1ea34a70ef2c71802dda8..51d31a734ad64484689ddbf2bef4bc28405ed630 100644 (file)
@@ -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
index 79f124a6322b36f2226f11527f294b5d26841503..a9b7627c969ffb06ec121e916ae22500bf64850c 100644 (file)
@@ -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
index 6ee58cd126d246071b8b1e6ac69597ad5862a499..0088acbdce3359b5dc94b94b99d2fd7a45a34b85 100644 (file)
@@ -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
index bdae0f98f9a3ce66754a8cb3a562f7a05dfec220..fc65d8ec23ab56565c3a92be06ff38bd5817b943 100644 (file)
@@ -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
index 7b21384479aca35d1e6f72efe20b8d9c5cc5d9bd..5670f6a6ab6b9a068521b3f8042a8851150e88a2 100644 (file)
@@ -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
index 6c7c6e747b94c30516d2533dc81e26cb2b95f18f..1911feff5c21e69d66f2c86a2382f9055227feca 100644 (file)
@@ -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
index e1f13549329d218c72c2a3d045023139b6ab420f..8302f415a11b6bfb1c1139f37ae9c8316558fb4a 100644 (file)
@@ -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
index 14ea0fd67c4623b139d903034d62097d8c171b5c..5d507a4f72ce93dfc8383eeaeeb1d46c651b128d 100644 (file)
@@ -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
index 5672e87fbc8a004671dd4c577f0be70a88c8bd27..91456ecad5e7e9054538d975af00ee62f77914f9 100644 (file)
@@ -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
index bc85897387e0a7d0b5094ba78b3df5f04c57f70d..407f7ca07698067f16a704688e2878b730169bc7 100644 (file)
@@ -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
index 45965ba3130357accce7e3f4271bce77f539a0bd..c2d4a3df63993ceb0a3440a65b8b61cc8fae5c16 100644 (file)
@@ -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
index e3b4cd0de5da88305d6925bf6a9c425da7b0911d..1075734360409d3f2c161f8d71b585180b82c9d4 100644 (file)
@@ -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
index 77f383d7d4d0f72a0f3b206410fb1902cc0493b8..4040a3ec1f6c84c11211e5ffe5b9e3b238f8813e 100644 (file)
@@ -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
index a12c665355b5d565af28a1a6728817477739c61a..24e888dc862a913eba3fcdbbe30c79f0c232c330 100644 (file)
@@ -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
index 5ef73862026fd0456a5e2d9bdb4929c077168dec..8ff7e419bbd58429143fca488bdd05e728748089 100644 (file)
@@ -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