* [PATCH 2/8] net/cnxk: add CN9K template Rx functions to build
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
2022-01-20 4:53 ` Jerin Jacob
2021-12-13 8:22 ` [PATCH 3/8] net/cnxk: add CN9K segregated Tx functions pbhagavatula
` (5 subsequent siblings)
6 siblings, 1 reply; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao,
Anatoly Burakov
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN9K seggeregated Rx and event dequeue functions to build,
add macros to make future modifications simpler.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/cn9k_eventdev.c | 229 +++++----
drivers/event/cnxk/cn9k_worker.h | 143 +++++-
drivers/event/cnxk/cn9k_worker_deq.c | 44 --
drivers/event/cnxk/cn9k_worker_deq_burst.c | 29 --
drivers/event/cnxk/cn9k_worker_deq_ca.c | 65 ---
drivers/event/cnxk/cn9k_worker_deq_tmo.c | 72 ---
drivers/event/cnxk/cn9k_worker_dual_deq.c | 53 --
.../event/cnxk/cn9k_worker_dual_deq_burst.c | 30 --
drivers/event/cnxk/cn9k_worker_dual_deq_ca.c | 74 ---
drivers/event/cnxk/cn9k_worker_dual_deq_tmo.c | 87 ----
drivers/event/cnxk/meson.build | 270 +++++++++-
drivers/net/cnxk/cn9k_rx.h | 461 ++++++++----------
drivers/net/cnxk/cn9k_rx_mseg.c | 17 -
drivers/net/cnxk/cn9k_rx_select.c | 67 +++
drivers/net/cnxk/cn9k_rx_vec.c | 17 -
drivers/net/cnxk/cn9k_rx_vec_mseg.c | 18 -
drivers/net/cnxk/meson.build | 41 +-
17 files changed, 845 insertions(+), 872 deletions(-)
delete mode 100644 drivers/event/cnxk/cn9k_worker_deq.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_deq_burst.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_deq_ca.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_deq_tmo.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_dual_deq.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_dual_deq_burst.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_dual_deq_ca.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_dual_deq_tmo.c
delete mode 100644 drivers/net/cnxk/cn9k_rx_mseg.c
create mode 100644 drivers/net/cnxk/cn9k_rx_select.c
delete mode 100644 drivers/net/cnxk/cn9k_rx_vec.c
delete mode 100644 drivers/net/cnxk/cn9k_rx_vec_mseg.c
diff --git a/drivers/event/cnxk/cn9k_eventdev.c b/drivers/event/cnxk/cn9k_eventdev.c
index b68ce6c0a4..1d0e1288ce 100644
--- a/drivers/event/cnxk/cn9k_eventdev.c
+++ b/drivers/event/cnxk/cn9k_eventdev.c
@@ -10,13 +10,7 @@
#define CN9K_DUAL_WS_PAIR_ID(x, id) (((x)*CN9K_DUAL_WS_NB_WS) + id)
#define CN9K_SET_EVDEV_DEQ_OP(dev, deq_op, deq_ops) \
- (deq_op = deq_ops[!!(dev->rx_offloads & NIX_RX_OFFLOAD_SECURITY_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_VLAN_STRIP_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_TSTAMP_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_MARK_UPDATE_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_CHECKSUM_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_PTYPE_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_RSS_F)])
+ deq_op = deq_ops[dev->rx_offloads & (NIX_RX_OFFLOAD_MAX - 1)]
#define CN9K_SET_EVDEV_ENQ_OP(dev, enq_op, enq_ops) \
(enq_op = enq_ops[!!(dev->tx_offloads & NIX_TX_OFFLOAD_SECURITY_F)] \
@@ -316,188 +310,214 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)
{
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
/* Single WS modes */
- const event_dequeue_t sso_hws_deq[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_##name,
+ const event_dequeue_t sso_hws_deq[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_burst_t sso_hws_deq_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_burst_##name,
+ const event_dequeue_burst_t sso_hws_deq_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_tmo[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_tmo_##name,
+ const event_dequeue_t sso_hws_deq_tmo[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_burst_t
- sso_hws_deq_tmo_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_tmo_burst_##name,
- NIX_RX_FASTPATH_MODES
+ const event_dequeue_burst_t sso_hws_deq_tmo_burst[NIX_RX_OFFLOAD_MAX] =
+ {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_burst_##name,
+ NIX_RX_FASTPATH_MODES
#undef R
- };
+ };
- const event_dequeue_t sso_hws_deq_ca[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_ca_##name,
+ const event_dequeue_t sso_hws_deq_ca[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_ca_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_burst_t
- sso_hws_deq_ca_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_ca_burst_##name,
+ const event_dequeue_burst_t sso_hws_deq_ca_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_ca_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_seg_##name,
+ const event_dequeue_t sso_hws_deq_tmo_ca[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_ca_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_deq_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_seg_burst_##name,
+ sso_hws_deq_tmo_ca_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_ca_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_deq_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_tmo_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_tmo_seg_##name,
+ const event_dequeue_burst_t sso_hws_deq_seg_burst[NIX_RX_OFFLOAD_MAX] =
+ {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_seg_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_deq_tmo_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_deq_tmo_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_tmo_seg_burst_##name,
+ sso_hws_deq_tmo_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_seg_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
- };
+ };
- const event_dequeue_t sso_hws_deq_ca_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_ca_seg_##name,
+ const event_dequeue_t sso_hws_deq_ca_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_ca_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_deq_ca_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_deq_ca_seg_burst_##name,
+ sso_hws_deq_ca_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_ca_seg_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
- };
+ };
- /* Dual WS modes */
- const event_dequeue_t sso_hws_dual_deq[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_##name,
+ const event_dequeue_t sso_hws_deq_tmo_ca_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_ca_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_dual_deq_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_burst_##name,
+ sso_hws_deq_tmo_ca_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_deq_tmo_ca_seg_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ /* Dual WS modes */
+ const event_dequeue_t sso_hws_dual_deq[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_dual_deq_tmo[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_tmo_##name,
+ const event_dequeue_burst_t sso_hws_dual_deq_burst[NIX_RX_OFFLOAD_MAX] =
+ {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_dual_deq_tmo[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_dual_deq_tmo_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_tmo_burst_##name,
+ sso_hws_dual_deq_tmo_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
- };
+ };
- const event_dequeue_t sso_hws_dual_deq_ca[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_ca_##name,
+ const event_dequeue_t sso_hws_dual_deq_ca[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_ca_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_dual_deq_ca_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_ca_burst_##name,
+ sso_hws_dual_deq_ca_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_ca_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
- };
+ };
- const event_dequeue_t sso_hws_dual_deq_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_seg_##name,
+ const event_dequeue_t sso_hws_dual_deq_tmo_ca[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_ca_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_dual_deq_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_seg_burst_##name,
+ sso_hws_dual_deq_tmo_ca_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_ca_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_dual_deq_tmo_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_tmo_seg_##name,
+ const event_dequeue_t sso_hws_dual_deq_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_dual_deq_tmo_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = \
- cn9k_sso_hws_dual_deq_tmo_seg_burst_##name,
+ sso_hws_dual_deq_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_seg_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_dual_deq_ca_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_deq_ca_seg_##name,
+ const event_dequeue_t sso_hws_dual_deq_tmo_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_dual_deq_ca_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = \
- cn9k_sso_hws_dual_deq_ca_seg_burst_##name,
+ sso_hws_dual_deq_tmo_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_seg_burst_##name,
NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_dual_deq_ca_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_ca_seg_##name,
+ NIX_RX_FASTPATH_MODES
#undef R
};
+ const event_dequeue_burst_t
+ sso_hws_dual_deq_ca_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_ca_seg_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_dual_deq_tmo_ca_seg[NIX_RX_OFFLOAD_MAX] =
+ {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_ca_seg_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_burst_t
+ sso_hws_dual_deq_tmo_ca_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_sso_hws_dual_deq_tmo_ca_seg_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
/* Tx modes */
const event_tx_adapter_enqueue_t
sso_hws_tx_adptr_enq[2][2][2][2][2][2][2] = {
@@ -552,6 +572,13 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)
CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
sso_hws_deq_ca_seg_burst);
}
+
+ if (dev->is_ca_internal_port && dev->is_timeout_deq) {
+ CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue,
+ sso_hws_deq_tmo_ca_seg);
+ CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
+ sso_hws_deq_tmo_ca_seg_burst);
+ }
} else {
CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue, sso_hws_deq);
CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
@@ -568,6 +595,13 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)
CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
sso_hws_deq_ca_burst);
}
+
+ if (dev->is_ca_internal_port && dev->is_timeout_deq) {
+ CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue,
+ sso_hws_deq_tmo_ca);
+ CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
+ sso_hws_deq_tmo_ca_burst);
+ }
}
event_dev->ca_enqueue = cn9k_sso_hws_ca_enq;
@@ -605,6 +639,14 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)
dev, event_dev->dequeue_burst,
sso_hws_dual_deq_ca_seg_burst);
}
+ if (dev->is_ca_internal_port && dev->is_timeout_deq) {
+ CN9K_SET_EVDEV_DEQ_OP(
+ dev, event_dev->dequeue,
+ sso_hws_dual_deq_tmo_ca_seg);
+ CN9K_SET_EVDEV_DEQ_OP(
+ dev, event_dev->dequeue_burst,
+ sso_hws_dual_deq_tmo_ca_seg_burst);
+ }
} else {
CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue,
sso_hws_dual_deq);
@@ -624,6 +666,13 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)
dev, event_dev->dequeue_burst,
sso_hws_dual_deq_ca_burst);
}
+ if (dev->is_ca_internal_port && dev->is_timeout_deq) {
+ CN9K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue,
+ sso_hws_dual_deq_tmo_ca);
+ CN9K_SET_EVDEV_DEQ_OP(
+ dev, event_dev->dequeue_burst,
+ sso_hws_dual_deq_tmo_ca_burst);
+ }
}
if (dev->tx_offloads & NIX_TX_MULTI_SEG_F)
diff --git a/drivers/event/cnxk/cn9k_worker.h b/drivers/event/cnxk/cn9k_worker.h
index 9377fa50e7..b421412adc 100644
--- a/drivers/event/cnxk/cn9k_worker.h
+++ b/drivers/event/cnxk/cn9k_worker.h
@@ -385,7 +385,7 @@ uint16_t __rte_hot cn9k_sso_hws_ca_enq(void *port, struct rte_event ev[],
uint16_t __rte_hot cn9k_sso_hws_dual_ca_enq(void *port, struct rte_event ev[],
uint16_t nb_events);
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
+#define R(name, flags) \
uint16_t __rte_hot cn9k_sso_hws_deq_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_deq_burst_##name( \
@@ -401,6 +401,11 @@ uint16_t __rte_hot cn9k_sso_hws_dual_ca_enq(void *port, struct rte_event ev[],
uint16_t __rte_hot cn9k_sso_hws_deq_ca_burst_##name( \
void *port, struct rte_event ev[], uint16_t nb_events, \
uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_deq_tmo_ca_##name( \
+ void *port, struct rte_event *ev, uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_deq_tmo_ca_burst_##name( \
+ void *port, struct rte_event ev[], uint16_t nb_events, \
+ uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_deq_seg_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_deq_seg_burst_##name( \
@@ -414,13 +419,61 @@ uint16_t __rte_hot cn9k_sso_hws_dual_ca_enq(void *port, struct rte_event ev[],
uint16_t __rte_hot cn9k_sso_hws_deq_ca_seg_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_deq_ca_seg_burst_##name( \
+ void *port, struct rte_event ev[], uint16_t nb_events, \
+ uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_deq_tmo_ca_seg_##name( \
+ void *port, struct rte_event *ev, uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_deq_tmo_ca_seg_burst_##name( \
void *port, struct rte_event ev[], uint16_t nb_events, \
uint64_t timeout_ticks);
NIX_RX_FASTPATH_MODES
#undef R
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
+#define SSO_DEQ(fn, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event *ev, \
+ uint64_t timeout_ticks) \
+ { \
+ struct cn9k_sso_hws *ws = port; \
+ \
+ RTE_SET_USED(timeout_ticks); \
+ if (ws->swtag_req) { \
+ ws->swtag_req = 0; \
+ cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
+ return 1; \
+ } \
+ return cn9k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
+ }
+
+#define SSO_DEQ_SEG(fn, flags) SSO_DEQ(fn, flags | NIX_RX_MULTI_SEG_F)
+#define SSO_DEQ_CA(fn, flags) SSO_DEQ(fn, flags | CPT_RX_WQE_F)
+#define SSO_DEQ_CA_SEG(fn, flags) SSO_DEQ_SEG(fn, flags | CPT_RX_WQE_F)
+
+#define SSO_DEQ_TMO(fn, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event *ev, \
+ uint64_t timeout_ticks) \
+ { \
+ struct cn9k_sso_hws *ws = port; \
+ uint16_t ret = 1; \
+ uint64_t iter; \
+ \
+ if (ws->swtag_req) { \
+ ws->swtag_req = 0; \
+ cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
+ return ret; \
+ } \
+ ret = cn9k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
+ for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
+ ret = cn9k_sso_hws_get_work(ws, ev, flags, \
+ ws->lookup_mem); \
+ return ret; \
+ }
+
+#define SSO_DEQ_TMO_SEG(fn, flags) SSO_DEQ_TMO(fn, flags | NIX_RX_MULTI_SEG_F)
+#define SSO_DEQ_TMO_CA(fn, flags) SSO_DEQ_TMO(fn, flags | CPT_RX_WQE_F)
+#define SSO_DEQ_TMO_CA_SEG(fn, flags) SSO_DEQ_TMO_SEG(fn, flags | CPT_RX_WQE_F)
+
+#define R(name, flags) \
uint16_t __rte_hot cn9k_sso_hws_dual_deq_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_dual_deq_burst_##name( \
@@ -436,6 +489,11 @@ NIX_RX_FASTPATH_MODES
uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_burst_##name( \
void *port, struct rte_event ev[], uint16_t nb_events, \
uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_ca_##name( \
+ void *port, struct rte_event *ev, uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_ca_burst_##name( \
+ void *port, struct rte_event ev[], uint16_t nb_events, \
+ uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_dual_deq_seg_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_dual_deq_seg_burst_##name( \
@@ -449,12 +507,93 @@ NIX_RX_FASTPATH_MODES
uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_seg_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_seg_burst_##name( \
+ void *port, struct rte_event ev[], uint16_t nb_events, \
+ uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_ca_seg_##name( \
+ void *port, struct rte_event *ev, uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_ca_seg_burst_##name( \
void *port, struct rte_event ev[], uint16_t nb_events, \
uint64_t timeout_ticks);
NIX_RX_FASTPATH_MODES
#undef R
+#define SSO_DUAL_DEQ(fn, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event *ev, \
+ uint64_t timeout_ticks) \
+ { \
+ struct cn9k_sso_hws_dual *dws = port; \
+ uint16_t gw; \
+ \
+ RTE_SET_USED(timeout_ticks); \
+ if (dws->swtag_req) { \
+ dws->swtag_req = 0; \
+ cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
+ SSOW_LF_GWS_TAG); \
+ return 1; \
+ } \
+ gw = cn9k_sso_hws_dual_get_work( \
+ dws->base[dws->vws], dws->base[!dws->vws], ev, flags, \
+ dws->lookup_mem, dws->tstamp); \
+ dws->vws = !dws->vws; \
+ return gw; \
+ }
+
+#define SSO_DUAL_DEQ_SEG(fn, flags) SSO_DUAL_DEQ(fn, flags | NIX_RX_MULTI_SEG_F)
+#define SSO_DUAL_DEQ_CA(fn, flags) SSO_DUAL_DEQ(fn, flags | CPT_RX_WQE_F)
+#define SSO_DUAL_DEQ_CA_SEG(fn, flags) \
+ SSO_DUAL_DEQ_SEG(fn, flags | CPT_RX_WQE_F)
+
+#define SSO_DUAL_DEQ_TMO(fn, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event *ev, \
+ uint64_t timeout_ticks) \
+ { \
+ struct cn9k_sso_hws_dual *dws = port; \
+ uint16_t ret = 1; \
+ uint64_t iter; \
+ \
+ if (dws->swtag_req) { \
+ dws->swtag_req = 0; \
+ cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
+ SSOW_LF_GWS_TAG); \
+ return ret; \
+ } \
+ ret = cn9k_sso_hws_dual_get_work( \
+ dws->base[dws->vws], dws->base[!dws->vws], ev, flags, \
+ dws->lookup_mem, dws->tstamp); \
+ dws->vws = !dws->vws; \
+ for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) { \
+ ret = cn9k_sso_hws_dual_get_work( \
+ dws->base[dws->vws], dws->base[!dws->vws], ev, \
+ flags, dws->lookup_mem, dws->tstamp); \
+ dws->vws = !dws->vws; \
+ } \
+ return ret; \
+ }
+
+#define SSO_DUAL_DEQ_TMO_SEG(fn, flags) \
+ SSO_DUAL_DEQ_TMO(fn, flags | NIX_RX_MULTI_SEG_F)
+#define SSO_DUAL_DEQ_TMO_CA(fn, flags) \
+ SSO_DUAL_DEQ_TMO(fn, flags | CPT_RX_WQE_F)
+#define SSO_DUAL_DEQ_TMO_CA_SEG(fn, flags) \
+ SSO_DUAL_DEQ_TMO_SEG(fn, flags | CPT_RX_WQE_F)
+
+#define SSO_CMN_DEQ_BURST(fnb, fn, flags) \
+ uint16_t __rte_hot fnb(void *port, struct rte_event ev[], \
+ uint16_t nb_events, uint64_t timeout_ticks) \
+ { \
+ RTE_SET_USED(nb_events); \
+ return fn(port, ev, timeout_ticks); \
+ }
+
+#define SSO_CMN_DEQ_SEG_BURST(fnb, fn, flags) \
+ uint16_t __rte_hot fnb(void *port, struct rte_event ev[], \
+ uint16_t nb_events, uint64_t timeout_ticks) \
+ { \
+ RTE_SET_USED(nb_events); \
+ return fn(port, ev, timeout_ticks); \
+ }
+
static __rte_always_inline void
cn9k_sso_txq_fc_wait(const struct cn9k_eth_txq *txq)
{
diff --git a/drivers/event/cnxk/cn9k_worker_deq.c b/drivers/event/cnxk/cn9k_worker_deq.c
deleted file mode 100644
index ba6fd05381..0000000000
--- a/drivers/event/cnxk/cn9k_worker_deq.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_deq_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- return cn9k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- return cn9k_sso_hws_get_work( \
- ws, ev, flags | NIX_RX_MULTI_SEG_F, ws->lookup_mem); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_deq_burst.c b/drivers/event/cnxk/cn9k_worker_deq_burst.c
deleted file mode 100644
index 42dc59bd07..0000000000
--- a/drivers/event/cnxk/cn9k_worker_deq_burst.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_deq_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_deq_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_deq_seg_##name(port, ev, timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_deq_ca.c b/drivers/event/cnxk/cn9k_worker_deq_ca.c
deleted file mode 100644
index ffe7a7c9e2..0000000000
--- a/drivers/event/cnxk/cn9k_worker_deq_ca.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_deq_ca_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- return cn9k_sso_hws_get_work(ws, ev, flags | CPT_RX_WQE_F, \
- ws->lookup_mem); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_ca_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_deq_ca_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_ca_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- return cn9k_sso_hws_get_work( \
- ws, ev, flags | NIX_RX_MULTI_SEG_F | CPT_RX_WQE_F, \
- ws->lookup_mem); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_ca_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_deq_ca_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_deq_tmo.c b/drivers/event/cnxk/cn9k_worker_deq_tmo.c
deleted file mode 100644
index 5147c1933a..0000000000
--- a/drivers/event/cnxk/cn9k_worker_deq_tmo.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_deq_tmo_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws *ws = port; \
- uint16_t ret = 1; \
- uint64_t iter; \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
- return ret; \
- } \
- \
- ret = cn9k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
- for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
- ret = cn9k_sso_hws_get_work(ws, ev, flags, \
- ws->lookup_mem); \
- \
- return ret; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_tmo_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_deq_tmo_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_tmo_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws *ws = port; \
- uint16_t ret = 1; \
- uint64_t iter; \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_TAG); \
- return ret; \
- } \
- \
- ret = cn9k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
- for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
- ret = cn9k_sso_hws_get_work(ws, ev, flags, \
- ws->lookup_mem); \
- \
- return ret; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_deq_tmo_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_deq_tmo_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_dual_deq.c b/drivers/event/cnxk/cn9k_worker_dual_deq.c
deleted file mode 100644
index ed134ab779..0000000000
--- a/drivers/event/cnxk/cn9k_worker_dual_deq.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws_dual *dws = port; \
- uint16_t gw; \
- \
- RTE_SET_USED(timeout_ticks); \
- if (dws->swtag_req) { \
- dws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
- SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- gw = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, flags, \
- dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- return gw; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws_dual *dws = port; \
- uint16_t gw; \
- \
- RTE_SET_USED(timeout_ticks); \
- if (dws->swtag_req) { \
- dws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
- SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- gw = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, flags, \
- dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- return gw; \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_dual_deq_burst.c b/drivers/event/cnxk/cn9k_worker_dual_deq_burst.c
deleted file mode 100644
index 4d913f9ea7..0000000000
--- a/drivers/event/cnxk/cn9k_worker_dual_deq_burst.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_dual_deq_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_dual_deq_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_dual_deq_ca.c b/drivers/event/cnxk/cn9k_worker_dual_deq_ca.c
deleted file mode 100644
index 22e148be73..0000000000
--- a/drivers/event/cnxk/cn9k_worker_dual_deq_ca.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws_dual *dws = port; \
- uint16_t gw; \
- \
- RTE_SET_USED(timeout_ticks); \
- if (dws->swtag_req) { \
- dws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
- SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- gw = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, \
- flags | CPT_RX_WQE_F, dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- return gw; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_dual_deq_ca_##name(port, ev, \
- timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws_dual *dws = port; \
- uint16_t gw; \
- \
- RTE_SET_USED(timeout_ticks); \
- if (dws->swtag_req) { \
- dws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
- SSOW_LF_GWS_TAG); \
- return 1; \
- } \
- \
- gw = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, \
- flags | NIX_RX_MULTI_SEG_F | CPT_RX_WQE_F, \
- dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- return gw; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_dual_deq_ca_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn9k_worker_dual_deq_tmo.c b/drivers/event/cnxk/cn9k_worker_dual_deq_tmo.c
deleted file mode 100644
index e5ba3feb22..0000000000
--- a/drivers/event/cnxk/cn9k_worker_dual_deq_tmo.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws_dual *dws = port; \
- uint16_t ret = 1; \
- uint64_t iter; \
- \
- if (dws->swtag_req) { \
- dws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
- SSOW_LF_GWS_TAG); \
- return ret; \
- } \
- \
- ret = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, flags, \
- dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) { \
- ret = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, \
- flags, dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- } \
- \
- return ret; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_dual_deq_tmo_##name(port, ev, \
- timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn9k_sso_hws_dual *dws = port; \
- uint16_t ret = 1; \
- uint64_t iter; \
- \
- if (dws->swtag_req) { \
- dws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(dws->base[!dws->vws] + \
- SSOW_LF_GWS_TAG); \
- return ret; \
- } \
- \
- ret = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, flags, \
- dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) { \
- ret = cn9k_sso_hws_dual_get_work( \
- dws->base[dws->vws], dws->base[!dws->vws], ev, \
- flags, dws->lookup_mem, dws->tstamp); \
- dws->vws = !dws->vws; \
- } \
- \
- return ret; \
- } \
- \
- uint16_t __rte_hot cn9k_sso_hws_dual_deq_tmo_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn9k_sso_hws_dual_deq_tmo_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index 6f8b23c8e8..27697d2ece 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -11,14 +11,6 @@ endif
sources = files(
'cn9k_eventdev.c',
'cn9k_worker.c',
- 'cn9k_worker_deq.c',
- 'cn9k_worker_deq_burst.c',
- 'cn9k_worker_deq_ca.c',
- 'cn9k_worker_deq_tmo.c',
- 'cn9k_worker_dual_deq.c',
- 'cn9k_worker_dual_deq_burst.c',
- 'cn9k_worker_dual_deq_ca.c',
- 'cn9k_worker_dual_deq_tmo.c',
'cn9k_worker_tx_enq.c',
'cn9k_worker_tx_enq_seg.c',
'cn9k_worker_dual_tx_enq.c',
@@ -39,6 +31,268 @@ sources = files(
'cnxk_tim_worker.c',
)
+sources += files(
+ 'deq/cn9k/deq_0_15_burst.c',
+ 'deq/cn9k/deq_16_31_burst.c',
+ 'deq/cn9k/deq_32_47_burst.c',
+ 'deq/cn9k/deq_48_63_burst.c',
+ 'deq/cn9k/deq_64_79_burst.c',
+ 'deq/cn9k/deq_80_95_burst.c',
+ 'deq/cn9k/deq_96_111_burst.c',
+ 'deq/cn9k/deq_112_127_burst.c',
+ 'deq/cn9k/deq_0_15_seg_burst.c',
+ 'deq/cn9k/deq_16_31_seg_burst.c',
+ 'deq/cn9k/deq_32_47_seg_burst.c',
+ 'deq/cn9k/deq_48_63_seg_burst.c',
+ 'deq/cn9k/deq_64_79_seg_burst.c',
+ 'deq/cn9k/deq_80_95_seg_burst.c',
+ 'deq/cn9k/deq_96_111_seg_burst.c',
+ 'deq/cn9k/deq_112_127_seg_burst.c',
+ 'deq/cn9k/deq_0_15.c',
+ 'deq/cn9k/deq_16_31.c',
+ 'deq/cn9k/deq_32_47.c',
+ 'deq/cn9k/deq_48_63.c',
+ 'deq/cn9k/deq_64_79.c',
+ 'deq/cn9k/deq_80_95.c',
+ 'deq/cn9k/deq_96_111.c',
+ 'deq/cn9k/deq_112_127.c',
+ 'deq/cn9k/deq_0_15_seg.c',
+ 'deq/cn9k/deq_16_31_seg.c',
+ 'deq/cn9k/deq_32_47_seg.c',
+ 'deq/cn9k/deq_48_63_seg.c',
+ 'deq/cn9k/deq_64_79_seg.c',
+ 'deq/cn9k/deq_80_95_seg.c',
+ 'deq/cn9k/deq_96_111_seg.c',
+ 'deq/cn9k/deq_112_127_seg.c',
+ 'deq/cn9k/deq_0_15_tmo.c',
+ 'deq/cn9k/deq_16_31_tmo.c',
+ 'deq/cn9k/deq_32_47_tmo.c',
+ 'deq/cn9k/deq_48_63_tmo.c',
+ 'deq/cn9k/deq_64_79_tmo.c',
+ 'deq/cn9k/deq_80_95_tmo.c',
+ 'deq/cn9k/deq_96_111_tmo.c',
+ 'deq/cn9k/deq_112_127_tmo.c',
+ 'deq/cn9k/deq_0_15_tmo_burst.c',
+ 'deq/cn9k/deq_16_31_tmo_burst.c',
+ 'deq/cn9k/deq_32_47_tmo_burst.c',
+ 'deq/cn9k/deq_48_63_tmo_burst.c',
+ 'deq/cn9k/deq_64_79_tmo_burst.c',
+ 'deq/cn9k/deq_80_95_tmo_burst.c',
+ 'deq/cn9k/deq_96_111_tmo_burst.c',
+ 'deq/cn9k/deq_112_127_tmo_burst.c',
+ 'deq/cn9k/deq_0_15_tmo_seg.c',
+ 'deq/cn9k/deq_16_31_tmo_seg.c',
+ 'deq/cn9k/deq_32_47_tmo_seg.c',
+ 'deq/cn9k/deq_48_63_tmo_seg.c',
+ 'deq/cn9k/deq_64_79_tmo_seg.c',
+ 'deq/cn9k/deq_80_95_tmo_seg.c',
+ 'deq/cn9k/deq_96_111_tmo_seg.c',
+ 'deq/cn9k/deq_112_127_tmo_seg.c',
+ 'deq/cn9k/deq_0_15_tmo_seg_burst.c',
+ 'deq/cn9k/deq_16_31_tmo_seg_burst.c',
+ 'deq/cn9k/deq_32_47_tmo_seg_burst.c',
+ 'deq/cn9k/deq_48_63_tmo_seg_burst.c',
+ 'deq/cn9k/deq_64_79_tmo_seg_burst.c',
+ 'deq/cn9k/deq_80_95_tmo_seg_burst.c',
+ 'deq/cn9k/deq_96_111_tmo_seg_burst.c',
+ 'deq/cn9k/deq_112_127_tmo_seg_burst.c',
+ 'deq/cn9k/deq_0_15_ca.c',
+ 'deq/cn9k/deq_16_31_ca.c',
+ 'deq/cn9k/deq_32_47_ca.c',
+ 'deq/cn9k/deq_48_63_ca.c',
+ 'deq/cn9k/deq_64_79_ca.c',
+ 'deq/cn9k/deq_80_95_ca.c',
+ 'deq/cn9k/deq_96_111_ca.c',
+ 'deq/cn9k/deq_112_127_ca.c',
+ 'deq/cn9k/deq_0_15_ca_burst.c',
+ 'deq/cn9k/deq_16_31_ca_burst.c',
+ 'deq/cn9k/deq_32_47_ca_burst.c',
+ 'deq/cn9k/deq_48_63_ca_burst.c',
+ 'deq/cn9k/deq_64_79_ca_burst.c',
+ 'deq/cn9k/deq_80_95_ca_burst.c',
+ 'deq/cn9k/deq_96_111_ca_burst.c',
+ 'deq/cn9k/deq_112_127_ca_burst.c',
+ 'deq/cn9k/deq_0_15_ca_seg.c',
+ 'deq/cn9k/deq_16_31_ca_seg.c',
+ 'deq/cn9k/deq_32_47_ca_seg.c',
+ 'deq/cn9k/deq_48_63_ca_seg.c',
+ 'deq/cn9k/deq_64_79_ca_seg.c',
+ 'deq/cn9k/deq_80_95_ca_seg.c',
+ 'deq/cn9k/deq_96_111_ca_seg.c',
+ 'deq/cn9k/deq_112_127_ca_seg.c',
+ 'deq/cn9k/deq_0_15_ca_seg_burst.c',
+ 'deq/cn9k/deq_16_31_ca_seg_burst.c',
+ 'deq/cn9k/deq_32_47_ca_seg_burst.c',
+ 'deq/cn9k/deq_48_63_ca_seg_burst.c',
+ 'deq/cn9k/deq_64_79_ca_seg_burst.c',
+ 'deq/cn9k/deq_80_95_ca_seg_burst.c',
+ 'deq/cn9k/deq_96_111_ca_seg_burst.c',
+ 'deq/cn9k/deq_112_127_ca_seg_burst.c',
+ 'deq/cn9k/deq_0_15_ca_tmo.c',
+ 'deq/cn9k/deq_16_31_ca_tmo.c',
+ 'deq/cn9k/deq_32_47_ca_tmo.c',
+ 'deq/cn9k/deq_48_63_ca_tmo.c',
+ 'deq/cn9k/deq_64_79_ca_tmo.c',
+ 'deq/cn9k/deq_80_95_ca_tmo.c',
+ 'deq/cn9k/deq_96_111_ca_tmo.c',
+ 'deq/cn9k/deq_112_127_ca_tmo.c',
+ 'deq/cn9k/deq_0_15_ca_tmo_burst.c',
+ 'deq/cn9k/deq_16_31_ca_tmo_burst.c',
+ 'deq/cn9k/deq_32_47_ca_tmo_burst.c',
+ 'deq/cn9k/deq_48_63_ca_tmo_burst.c',
+ 'deq/cn9k/deq_64_79_ca_tmo_burst.c',
+ 'deq/cn9k/deq_80_95_ca_tmo_burst.c',
+ 'deq/cn9k/deq_96_111_ca_tmo_burst.c',
+ 'deq/cn9k/deq_112_127_ca_tmo_burst.c',
+ 'deq/cn9k/deq_0_15_ca_tmo_seg.c',
+ 'deq/cn9k/deq_16_31_ca_tmo_seg.c',
+ 'deq/cn9k/deq_32_47_ca_tmo_seg.c',
+ 'deq/cn9k/deq_48_63_ca_tmo_seg.c',
+ 'deq/cn9k/deq_64_79_ca_tmo_seg.c',
+ 'deq/cn9k/deq_80_95_ca_tmo_seg.c',
+ 'deq/cn9k/deq_96_111_ca_tmo_seg.c',
+ 'deq/cn9k/deq_112_127_ca_tmo_seg.c',
+ 'deq/cn9k/deq_0_15_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_16_31_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_32_47_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_48_63_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_64_79_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_80_95_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_96_111_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_112_127_ca_tmo_seg_burst.c',
+)
+
+sources += files(
+ 'deq/cn9k/deq_0_15_dual_burst.c',
+ 'deq/cn9k/deq_16_31_dual_burst.c',
+ 'deq/cn9k/deq_32_47_dual_burst.c',
+ 'deq/cn9k/deq_48_63_dual_burst.c',
+ 'deq/cn9k/deq_64_79_dual_burst.c',
+ 'deq/cn9k/deq_80_95_dual_burst.c',
+ 'deq/cn9k/deq_96_111_dual_burst.c',
+ 'deq/cn9k/deq_112_127_dual_burst.c',
+ 'deq/cn9k/deq_0_15_dual_seg_burst.c',
+ 'deq/cn9k/deq_16_31_dual_seg_burst.c',
+ 'deq/cn9k/deq_32_47_dual_seg_burst.c',
+ 'deq/cn9k/deq_48_63_dual_seg_burst.c',
+ 'deq/cn9k/deq_64_79_dual_seg_burst.c',
+ 'deq/cn9k/deq_80_95_dual_seg_burst.c',
+ 'deq/cn9k/deq_96_111_dual_seg_burst.c',
+ 'deq/cn9k/deq_112_127_dual_seg_burst.c',
+ 'deq/cn9k/deq_0_15_dual.c',
+ 'deq/cn9k/deq_16_31_dual.c',
+ 'deq/cn9k/deq_32_47_dual.c',
+ 'deq/cn9k/deq_48_63_dual.c',
+ 'deq/cn9k/deq_64_79_dual.c',
+ 'deq/cn9k/deq_80_95_dual.c',
+ 'deq/cn9k/deq_96_111_dual.c',
+ 'deq/cn9k/deq_112_127_dual.c',
+ 'deq/cn9k/deq_0_15_dual_seg.c',
+ 'deq/cn9k/deq_16_31_dual_seg.c',
+ 'deq/cn9k/deq_32_47_dual_seg.c',
+ 'deq/cn9k/deq_48_63_dual_seg.c',
+ 'deq/cn9k/deq_64_79_dual_seg.c',
+ 'deq/cn9k/deq_80_95_dual_seg.c',
+ 'deq/cn9k/deq_96_111_dual_seg.c',
+ 'deq/cn9k/deq_112_127_dual_seg.c',
+ 'deq/cn9k/deq_0_15_dual_tmo.c',
+ 'deq/cn9k/deq_16_31_dual_tmo.c',
+ 'deq/cn9k/deq_32_47_dual_tmo.c',
+ 'deq/cn9k/deq_48_63_dual_tmo.c',
+ 'deq/cn9k/deq_64_79_dual_tmo.c',
+ 'deq/cn9k/deq_80_95_dual_tmo.c',
+ 'deq/cn9k/deq_96_111_dual_tmo.c',
+ 'deq/cn9k/deq_112_127_dual_tmo.c',
+ 'deq/cn9k/deq_0_15_dual_tmo_burst.c',
+ 'deq/cn9k/deq_16_31_dual_tmo_burst.c',
+ 'deq/cn9k/deq_32_47_dual_tmo_burst.c',
+ 'deq/cn9k/deq_48_63_dual_tmo_burst.c',
+ 'deq/cn9k/deq_64_79_dual_tmo_burst.c',
+ 'deq/cn9k/deq_80_95_dual_tmo_burst.c',
+ 'deq/cn9k/deq_96_111_dual_tmo_burst.c',
+ 'deq/cn9k/deq_112_127_dual_tmo_burst.c',
+ 'deq/cn9k/deq_0_15_dual_tmo_seg.c',
+ 'deq/cn9k/deq_16_31_dual_tmo_seg.c',
+ 'deq/cn9k/deq_32_47_dual_tmo_seg.c',
+ 'deq/cn9k/deq_48_63_dual_tmo_seg.c',
+ 'deq/cn9k/deq_64_79_dual_tmo_seg.c',
+ 'deq/cn9k/deq_80_95_dual_tmo_seg.c',
+ 'deq/cn9k/deq_96_111_dual_tmo_seg.c',
+ 'deq/cn9k/deq_112_127_dual_tmo_seg.c',
+ 'deq/cn9k/deq_0_15_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_16_31_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_32_47_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_48_63_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_64_79_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_80_95_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_96_111_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_112_127_dual_tmo_seg_burst.c',
+ 'deq/cn9k/deq_0_15_dual_ca.c',
+ 'deq/cn9k/deq_16_31_dual_ca.c',
+ 'deq/cn9k/deq_32_47_dual_ca.c',
+ 'deq/cn9k/deq_48_63_dual_ca.c',
+ 'deq/cn9k/deq_64_79_dual_ca.c',
+ 'deq/cn9k/deq_80_95_dual_ca.c',
+ 'deq/cn9k/deq_96_111_dual_ca.c',
+ 'deq/cn9k/deq_112_127_dual_ca.c',
+ 'deq/cn9k/deq_0_15_dual_ca_burst.c',
+ 'deq/cn9k/deq_16_31_dual_ca_burst.c',
+ 'deq/cn9k/deq_32_47_dual_ca_burst.c',
+ 'deq/cn9k/deq_48_63_dual_ca_burst.c',
+ 'deq/cn9k/deq_64_79_dual_ca_burst.c',
+ 'deq/cn9k/deq_80_95_dual_ca_burst.c',
+ 'deq/cn9k/deq_96_111_dual_ca_burst.c',
+ 'deq/cn9k/deq_112_127_dual_ca_burst.c',
+ 'deq/cn9k/deq_0_15_dual_ca_seg.c',
+ 'deq/cn9k/deq_16_31_dual_ca_seg.c',
+ 'deq/cn9k/deq_32_47_dual_ca_seg.c',
+ 'deq/cn9k/deq_48_63_dual_ca_seg.c',
+ 'deq/cn9k/deq_64_79_dual_ca_seg.c',
+ 'deq/cn9k/deq_80_95_dual_ca_seg.c',
+ 'deq/cn9k/deq_96_111_dual_ca_seg.c',
+ 'deq/cn9k/deq_112_127_dual_ca_seg.c',
+ 'deq/cn9k/deq_0_15_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_16_31_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_32_47_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_48_63_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_64_79_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_80_95_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_96_111_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_112_127_dual_ca_seg_burst.c',
+ 'deq/cn9k/deq_0_15_dual_ca_tmo.c',
+ 'deq/cn9k/deq_16_31_dual_ca_tmo.c',
+ 'deq/cn9k/deq_32_47_dual_ca_tmo.c',
+ 'deq/cn9k/deq_48_63_dual_ca_tmo.c',
+ 'deq/cn9k/deq_64_79_dual_ca_tmo.c',
+ 'deq/cn9k/deq_80_95_dual_ca_tmo.c',
+ 'deq/cn9k/deq_96_111_dual_ca_tmo.c',
+ 'deq/cn9k/deq_112_127_dual_ca_tmo.c',
+ 'deq/cn9k/deq_0_15_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_16_31_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_32_47_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_48_63_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_64_79_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_80_95_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_96_111_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_112_127_dual_ca_tmo_burst.c',
+ 'deq/cn9k/deq_0_15_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_16_31_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_32_47_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_48_63_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_64_79_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_80_95_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_96_111_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_112_127_dual_ca_tmo_seg.c',
+ 'deq/cn9k/deq_0_15_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_16_31_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_32_47_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_48_63_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_64_79_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_80_95_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_96_111_dual_ca_tmo_seg_burst.c',
+ 'deq/cn9k/deq_112_127_dual_ca_tmo_seg_burst.c',
+)
+
extra_flags = ['-flax-vector-conversions', '-Wno-strict-aliasing']
foreach flag: extra_flags
if cc.has_argument(flag)
diff --git a/drivers/net/cnxk/cn9k_rx.h b/drivers/net/cnxk/cn9k_rx.h
index 225bb4197c..b038b1a6ef 100644
--- a/drivers/net/cnxk/cn9k_rx.h
+++ b/drivers/net/cnxk/cn9k_rx.h
@@ -18,6 +18,7 @@
#define NIX_RX_OFFLOAD_TSTAMP_F BIT(4)
#define NIX_RX_OFFLOAD_VLAN_STRIP_F BIT(5)
#define NIX_RX_OFFLOAD_SECURITY_F BIT(6)
+#define NIX_RX_OFFLOAD_MAX (NIX_RX_OFFLOAD_SECURITY_F << 1)
/* Flags to control cqe_to_mbuf conversion function.
* Defining it from backwards to denote its been
@@ -807,278 +808,214 @@ cn9k_nix_recv_pkts_vector(void *rx_queue, struct rte_mbuf **rx_pkts,
#define R_SEC_F NIX_RX_OFFLOAD_SECURITY_F
/* [R_SEC_F] [RX_VLAN_F] [TS] [MARK] [CKSUM] [PTYPE] [RSS] */
-#define NIX_RX_FASTPATH_MODES \
-R(no_offload, 0, 0, 0, 0, 0, 0, 0, \
- NIX_RX_OFFLOAD_NONE) \
-R(rss, 0, 0, 0, 0, 0, 0, 1, \
- RSS_F) \
-R(ptype, 0, 0, 0, 0, 0, 1, 0, \
- PTYPE_F) \
-R(ptype_rss, 0, 0, 0, 0, 0, 1, 1, \
- PTYPE_F | RSS_F) \
-R(cksum, 0, 0, 0, 0, 1, 0, 0, \
- CKSUM_F) \
-R(cksum_rss, 0, 0, 0, 0, 1, 0, 1, \
- CKSUM_F | RSS_F) \
-R(cksum_ptype, 0, 0, 0, 0, 1, 1, 0, \
- CKSUM_F | PTYPE_F) \
-R(cksum_ptype_rss, 0, 0, 0, 0, 1, 1, 1, \
- CKSUM_F | PTYPE_F | RSS_F) \
-R(mark, 0, 0, 0, 1, 0, 0, 0, \
- MARK_F) \
-R(mark_rss, 0, 0, 0, 1, 0, 0, 1, \
- MARK_F | RSS_F) \
-R(mark_ptype, 0, 0, 0, 1, 0, 1, 0, \
- MARK_F | PTYPE_F) \
-R(mark_ptype_rss, 0, 0, 0, 1, 0, 1, 1, \
- MARK_F | PTYPE_F | RSS_F) \
-R(mark_cksum, 0, 0, 0, 1, 1, 0, 0, \
- MARK_F | CKSUM_F) \
-R(mark_cksum_rss, 0, 0, 0, 1, 1, 0, 1, \
- MARK_F | CKSUM_F | RSS_F) \
-R(mark_cksum_ptype, 0, 0, 0, 1, 1, 1, 0, \
- MARK_F | CKSUM_F | PTYPE_F) \
-R(mark_cksum_ptype_rss, 0, 0, 0, 1, 1, 1, 1, \
- MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(ts, 0, 0, 1, 0, 0, 0, 0, \
- TS_F) \
-R(ts_rss, 0, 0, 1, 0, 0, 0, 1, \
- TS_F | RSS_F) \
-R(ts_ptype, 0, 0, 1, 0, 0, 1, 0, \
- TS_F | PTYPE_F) \
-R(ts_ptype_rss, 0, 0, 1, 0, 0, 1, 1, \
- TS_F | PTYPE_F | RSS_F) \
-R(ts_cksum, 0, 0, 1, 0, 1, 0, 0, \
- TS_F | CKSUM_F) \
-R(ts_cksum_rss, 0, 0, 1, 0, 1, 0, 1, \
- TS_F | CKSUM_F | RSS_F) \
-R(ts_cksum_ptype, 0, 0, 1, 0, 1, 1, 0, \
- TS_F | CKSUM_F | PTYPE_F) \
-R(ts_cksum_ptype_rss, 0, 0, 1, 0, 1, 1, 1, \
- TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(ts_mark, 0, 0, 1, 1, 0, 0, 0, \
- TS_F | MARK_F) \
-R(ts_mark_rss, 0, 0, 1, 1, 0, 0, 1, \
- TS_F | MARK_F | RSS_F) \
-R(ts_mark_ptype, 0, 0, 1, 1, 0, 1, 0, \
- TS_F | MARK_F | PTYPE_F) \
-R(ts_mark_ptype_rss, 0, 0, 1, 1, 0, 1, 1, \
- TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(ts_mark_cksum, 0, 0, 1, 1, 1, 0, 0, \
- TS_F | MARK_F | CKSUM_F) \
-R(ts_mark_cksum_rss, 0, 0, 1, 1, 1, 0, 1, \
- TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(ts_mark_cksum_ptype, 0, 0, 1, 1, 1, 1, 0, \
- TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(ts_mark_cksum_ptype_rss, 0, 0, 1, 1, 1, 1, 1, \
- TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan, 0, 1, 0, 0, 0, 0, 0, \
- RX_VLAN_F) \
-R(vlan_rss, 0, 1, 0, 0, 0, 0, 1, \
- RX_VLAN_F | RSS_F) \
-R(vlan_ptype, 0, 1, 0, 0, 0, 1, 0, \
- RX_VLAN_F | PTYPE_F) \
-R(vlan_ptype_rss, 0, 1, 0, 0, 0, 1, 1, \
- RX_VLAN_F | PTYPE_F | RSS_F) \
-R(vlan_cksum, 0, 1, 0, 0, 1, 0, 0, \
- RX_VLAN_F | CKSUM_F) \
-R(vlan_cksum_rss, 0, 1, 0, 0, 1, 0, 1, \
- RX_VLAN_F | CKSUM_F | RSS_F) \
-R(vlan_cksum_ptype, 0, 1, 0, 0, 1, 1, 0, \
- RX_VLAN_F | CKSUM_F | PTYPE_F) \
-R(vlan_cksum_ptype_rss, 0, 1, 0, 0, 1, 1, 1, \
- RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan_mark, 0, 1, 0, 1, 0, 0, 0, \
- RX_VLAN_F | MARK_F) \
-R(vlan_mark_rss, 0, 1, 0, 1, 0, 0, 1, \
- RX_VLAN_F | MARK_F | RSS_F) \
-R(vlan_mark_ptype, 0, 1, 0, 1, 0, 1, 0, \
- RX_VLAN_F | MARK_F | PTYPE_F) \
-R(vlan_mark_ptype_rss, 0, 1, 0, 1, 0, 1, 1, \
- RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
-R(vlan_mark_cksum, 0, 1, 0, 1, 1, 0, 0, \
- RX_VLAN_F | MARK_F | CKSUM_F) \
-R(vlan_mark_cksum_rss, 0, 1, 0, 1, 1, 0, 1, \
- RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
-R(vlan_mark_cksum_ptype, 0, 1, 0, 1, 1, 1, 0, \
- RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(vlan_mark_cksum_ptype_rss, 0, 1, 0, 1, 1, 1, 1, \
- RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan_ts, 0, 1, 1, 0, 0, 0, 0, \
- RX_VLAN_F | TS_F) \
-R(vlan_ts_rss, 0, 1, 1, 0, 0, 0, 1, \
- RX_VLAN_F | TS_F | RSS_F) \
-R(vlan_ts_ptype, 0, 1, 1, 0, 0, 1, 0, \
- RX_VLAN_F | TS_F | PTYPE_F) \
-R(vlan_ts_ptype_rss, 0, 1, 1, 0, 0, 1, 1, \
- RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
-R(vlan_ts_cksum, 0, 1, 1, 0, 1, 0, 0, \
- RX_VLAN_F | TS_F | CKSUM_F) \
-R(vlan_ts_cksum_rss, 0, 1, 1, 0, 1, 0, 1, \
- RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
-R(vlan_ts_cksum_ptype, 0, 1, 1, 0, 1, 1, 0, \
- RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
-R(vlan_ts_cksum_ptype_rss, 0, 1, 1, 0, 1, 1, 1, \
- RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan_ts_mark, 0, 1, 1, 1, 0, 0, 0, \
- RX_VLAN_F | TS_F | MARK_F) \
-R(vlan_ts_mark_rss, 0, 1, 1, 1, 0, 0, 1, \
- RX_VLAN_F | TS_F | MARK_F | RSS_F) \
-R(vlan_ts_mark_ptype, 0, 1, 1, 1, 0, 1, 0, \
- RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
-R(vlan_ts_mark_ptype_rss, 0, 1, 1, 1, 0, 1, 1, \
- RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(vlan_ts_mark_cksum, 0, 1, 1, 1, 1, 0, 0, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
-R(vlan_ts_mark_cksum_rss, 0, 1, 1, 1, 1, 0, 1, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(vlan_ts_mark_cksum_ptype, 0, 1, 1, 1, 1, 1, 0, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(vlan_ts_mark_cksum_ptype_rss, 0, 1, 1, 1, 1, 1, 1, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec, 1, 0, 0, 0, 0, 0, 0, \
- R_SEC_F) \
-R(sec_rss, 1, 0, 0, 0, 0, 0, 1, \
- RSS_F) \
-R(sec_ptype, 1, 0, 0, 0, 0, 1, 0, \
- R_SEC_F | PTYPE_F) \
-R(sec_ptype_rss, 1, 0, 0, 0, 0, 1, 1, \
- R_SEC_F | PTYPE_F | RSS_F) \
-R(sec_cksum, 1, 0, 0, 0, 1, 0, 0, \
- R_SEC_F | CKSUM_F) \
-R(sec_cksum_rss, 1, 0, 0, 0, 1, 0, 1, \
- R_SEC_F | CKSUM_F | RSS_F) \
-R(sec_cksum_ptype, 1, 0, 0, 0, 1, 1, 0, \
- R_SEC_F | CKSUM_F | PTYPE_F) \
-R(sec_cksum_ptype_rss, 1, 0, 0, 0, 1, 1, 1, \
- R_SEC_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_mark, 1, 0, 0, 1, 0, 0, 0, \
- R_SEC_F | MARK_F) \
-R(sec_mark_rss, 1, 0, 0, 1, 0, 0, 1, \
- R_SEC_F | MARK_F | RSS_F) \
-R(sec_mark_ptype, 1, 0, 0, 1, 0, 1, 0, \
- R_SEC_F | MARK_F | PTYPE_F) \
-R(sec_mark_ptype_rss, 1, 0, 0, 1, 0, 1, 1, \
- R_SEC_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_mark_cksum, 1, 0, 0, 1, 1, 0, 0, \
- R_SEC_F | MARK_F | CKSUM_F) \
-R(sec_mark_cksum_rss, 1, 0, 0, 1, 1, 0, 1, \
- R_SEC_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_mark_cksum_ptype, 1, 0, 0, 1, 1, 1, 0, \
- R_SEC_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_mark_cksum_ptype_rss, 1, 0, 0, 1, 1, 1, 1, \
- R_SEC_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_ts, 1, 0, 1, 0, 0, 0, 0, \
- R_SEC_F | TS_F) \
-R(sec_ts_rss, 1, 0, 1, 0, 0, 0, 1, \
- R_SEC_F | TS_F | RSS_F) \
-R(sec_ts_ptype, 1, 0, 1, 0, 0, 1, 0, \
- R_SEC_F | TS_F | PTYPE_F) \
-R(sec_ts_ptype_rss, 1, 0, 1, 0, 0, 1, 1, \
- R_SEC_F | TS_F | PTYPE_F | RSS_F) \
-R(sec_ts_cksum, 1, 0, 1, 0, 1, 0, 0, \
- R_SEC_F | TS_F | CKSUM_F) \
-R(sec_ts_cksum_rss, 1, 0, 1, 0, 1, 0, 1, \
- R_SEC_F | TS_F | CKSUM_F | RSS_F) \
-R(sec_ts_cksum_ptype, 1, 0, 1, 0, 1, 1, 0, \
- R_SEC_F | TS_F | CKSUM_F | PTYPE_F) \
-R(sec_ts_cksum_ptype_rss, 1, 0, 1, 0, 1, 1, 1, \
- R_SEC_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_ts_mark, 1, 0, 1, 1, 0, 0, 0, \
- R_SEC_F | TS_F | MARK_F) \
-R(sec_ts_mark_rss, 1, 0, 1, 1, 0, 0, 1, \
- R_SEC_F | TS_F | MARK_F | RSS_F) \
-R(sec_ts_mark_ptype, 1, 0, 1, 1, 0, 1, 0, \
- R_SEC_F | TS_F | MARK_F | PTYPE_F) \
-R(sec_ts_mark_ptype_rss, 1, 0, 1, 1, 0, 1, 1, \
- R_SEC_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_ts_mark_cksum, 1, 0, 1, 1, 1, 0, 0, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F) \
-R(sec_ts_mark_cksum_rss, 1, 0, 1, 1, 1, 0, 1, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_ts_mark_cksum_ptype, 1, 0, 1, 1, 1, 1, 0, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_ts_mark_cksum_ptype_rss, 1, 0, 1, 1, 1, 1, 1, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan, 1, 1, 0, 0, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F) \
-R(sec_vlan_rss, 1, 1, 0, 0, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | RSS_F) \
-R(sec_vlan_ptype, 1, 1, 0, 0, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | PTYPE_F) \
-R(sec_vlan_ptype_rss, 1, 1, 0, 0, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | PTYPE_F | RSS_F) \
-R(sec_vlan_cksum, 1, 1, 0, 0, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | CKSUM_F) \
-R(sec_vlan_cksum_rss, 1, 1, 0, 0, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | CKSUM_F | RSS_F) \
-R(sec_vlan_cksum_ptype, 1, 1, 0, 0, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_cksum_ptype_rss, 1, 1, 0, 0, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan_mark, 1, 1, 0, 1, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F) \
-R(sec_vlan_mark_rss, 1, 1, 0, 1, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | RSS_F) \
-R(sec_vlan_mark_ptype, 1, 1, 0, 1, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F) \
-R(sec_vlan_mark_ptype_rss, 1, 1, 0, 1, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_vlan_mark_cksum, 1, 1, 0, 1, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F) \
-R(sec_vlan_mark_cksum_rss, 1, 1, 0, 1, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_vlan_mark_cksum_ptype, 1, 1, 0, 1, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_mark_cksum_ptype_rss, 1, 1, 0, 1, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts, 1, 1, 1, 0, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F) \
-R(sec_vlan_ts_rss, 1, 1, 1, 0, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | RSS_F) \
-R(sec_vlan_ts_ptype, 1, 1, 1, 0, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F) \
-R(sec_vlan_ts_ptype_rss, 1, 1, 1, 0, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts_cksum, 1, 1, 1, 0, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F) \
-R(sec_vlan_ts_cksum_rss, 1, 1, 1, 0, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
-R(sec_vlan_ts_cksum_ptype, 1, 1, 1, 0, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_ts_cksum_ptype_rss, 1, 1, 1, 0, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts_mark, 1, 1, 1, 1, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F) \
-R(sec_vlan_ts_mark_rss, 1, 1, 1, 1, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | RSS_F) \
-R(sec_vlan_ts_mark_ptype, 1, 1, 1, 1, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
-R(sec_vlan_ts_mark_ptype_rss, 1, 1, 1, 1, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts_mark_cksum, 1, 1, 1, 1, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
-R(sec_vlan_ts_mark_cksum_rss, 1, 1, 1, 1, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_vlan_ts_mark_cksum_ptype, 1, 1, 1, 1, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_ts_mark_cksum_ptype_rss, 1, 1, 1, 1, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
+#define NIX_RX_FASTPATH_MODES_0_15 \
+ R(no_offload, NIX_RX_OFFLOAD_NONE) \
+ R(rss, RSS_F) \
+ R(ptype, PTYPE_F) \
+ R(ptype_rss, PTYPE_F | RSS_F) \
+ R(cksum, CKSUM_F) \
+ R(cksum_rss, CKSUM_F | RSS_F) \
+ R(cksum_ptype, CKSUM_F | PTYPE_F) \
+ R(cksum_ptype_rss, CKSUM_F | PTYPE_F | RSS_F) \
+ R(mark, MARK_F) \
+ R(mark_rss, MARK_F | RSS_F) \
+ R(mark_ptype, MARK_F | PTYPE_F) \
+ R(mark_ptype_rss, MARK_F | PTYPE_F | RSS_F) \
+ R(mark_cksum, MARK_F | CKSUM_F) \
+ R(mark_cksum_rss, MARK_F | CKSUM_F | RSS_F) \
+ R(mark_cksum_ptype, MARK_F | CKSUM_F | PTYPE_F) \
+ R(mark_cksum_ptype_rss, MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_16_31 \
+ R(ts, TS_F) \
+ R(ts_rss, TS_F | RSS_F) \
+ R(ts_ptype, TS_F | PTYPE_F) \
+ R(ts_ptype_rss, TS_F | PTYPE_F | RSS_F) \
+ R(ts_cksum, TS_F | CKSUM_F) \
+ R(ts_cksum_rss, TS_F | CKSUM_F | RSS_F) \
+ R(ts_cksum_ptype, TS_F | CKSUM_F | PTYPE_F) \
+ R(ts_cksum_ptype_rss, TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(ts_mark, TS_F | MARK_F) \
+ R(ts_mark_rss, TS_F | MARK_F | RSS_F) \
+ R(ts_mark_ptype, TS_F | MARK_F | PTYPE_F) \
+ R(ts_mark_ptype_rss, TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(ts_mark_cksum, TS_F | MARK_F | CKSUM_F) \
+ R(ts_mark_cksum_rss, TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(ts_mark_cksum_ptype, TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(ts_mark_cksum_ptype_rss, TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_32_47 \
+ R(vlan, RX_VLAN_F) \
+ R(vlan_rss, RX_VLAN_F | RSS_F) \
+ R(vlan_ptype, RX_VLAN_F | PTYPE_F) \
+ R(vlan_ptype_rss, RX_VLAN_F | PTYPE_F | RSS_F) \
+ R(vlan_cksum, RX_VLAN_F | CKSUM_F) \
+ R(vlan_cksum_rss, RX_VLAN_F | CKSUM_F | RSS_F) \
+ R(vlan_cksum_ptype, RX_VLAN_F | CKSUM_F | PTYPE_F) \
+ R(vlan_cksum_ptype_rss, RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(vlan_mark, RX_VLAN_F | MARK_F) \
+ R(vlan_mark_rss, RX_VLAN_F | MARK_F | RSS_F) \
+ R(vlan_mark_ptype, RX_VLAN_F | MARK_F | PTYPE_F) \
+ R(vlan_mark_ptype_rss, RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
+ R(vlan_mark_cksum, RX_VLAN_F | MARK_F | CKSUM_F) \
+ R(vlan_mark_cksum_rss, RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
+ R(vlan_mark_cksum_ptype, RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(vlan_mark_cksum_ptype_rss, \
+ RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_48_63 \
+ R(vlan_ts, RX_VLAN_F | TS_F) \
+ R(vlan_ts_rss, RX_VLAN_F | TS_F | RSS_F) \
+ R(vlan_ts_ptype, RX_VLAN_F | TS_F | PTYPE_F) \
+ R(vlan_ts_ptype_rss, RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
+ R(vlan_ts_cksum, RX_VLAN_F | TS_F | CKSUM_F) \
+ R(vlan_ts_cksum_rss, RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
+ R(vlan_ts_cksum_ptype, RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
+ R(vlan_ts_cksum_ptype_rss, \
+ RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(vlan_ts_mark, RX_VLAN_F | TS_F | MARK_F) \
+ R(vlan_ts_mark_rss, RX_VLAN_F | TS_F | MARK_F | RSS_F) \
+ R(vlan_ts_mark_ptype, RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
+ R(vlan_ts_mark_ptype_rss, RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(vlan_ts_mark_cksum, RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
+ R(vlan_ts_mark_cksum_rss, RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(vlan_ts_mark_cksum_ptype, \
+ RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(vlan_ts_mark_cksum_ptype_rss, \
+ RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_64_79 \
+ R(sec, R_SEC_F) \
+ R(sec_rss, R_SEC_F | RSS_F) \
+ R(sec_ptype, R_SEC_F | PTYPE_F) \
+ R(sec_ptype_rss, R_SEC_F | PTYPE_F | RSS_F) \
+ R(sec_cksum, R_SEC_F | CKSUM_F) \
+ R(sec_cksum_rss, R_SEC_F | CKSUM_F | RSS_F) \
+ R(sec_cksum_ptype, R_SEC_F | CKSUM_F | PTYPE_F) \
+ R(sec_cksum_ptype_rss, R_SEC_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_mark, R_SEC_F | MARK_F) \
+ R(sec_mark_rss, R_SEC_F | MARK_F | RSS_F) \
+ R(sec_mark_ptype, R_SEC_F | MARK_F | PTYPE_F) \
+ R(sec_mark_ptype_rss, R_SEC_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_mark_cksum, R_SEC_F | MARK_F | CKSUM_F) \
+ R(sec_mark_cksum_rss, R_SEC_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_mark_cksum_ptype, R_SEC_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(sec_mark_cksum_ptype_rss, \
+ R_SEC_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_80_95 \
+ R(sec_ts, R_SEC_F | TS_F) \
+ R(sec_ts_rss, R_SEC_F | TS_F | RSS_F) \
+ R(sec_ts_ptype, R_SEC_F | TS_F | PTYPE_F) \
+ R(sec_ts_ptype_rss, R_SEC_F | TS_F | PTYPE_F | RSS_F) \
+ R(sec_ts_cksum, R_SEC_F | TS_F | CKSUM_F) \
+ R(sec_ts_cksum_rss, R_SEC_F | TS_F | CKSUM_F | RSS_F) \
+ R(sec_ts_cksum_ptype, R_SEC_F | TS_F | CKSUM_F | PTYPE_F) \
+ R(sec_ts_cksum_ptype_rss, R_SEC_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_ts_mark, R_SEC_F | TS_F | MARK_F) \
+ R(sec_ts_mark_rss, R_SEC_F | TS_F | MARK_F | RSS_F) \
+ R(sec_ts_mark_ptype, R_SEC_F | TS_F | MARK_F | PTYPE_F) \
+ R(sec_ts_mark_ptype_rss, R_SEC_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_ts_mark_cksum, R_SEC_F | TS_F | MARK_F | CKSUM_F) \
+ R(sec_ts_mark_cksum_rss, R_SEC_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_ts_mark_cksum_ptype, \
+ R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(sec_ts_mark_cksum_ptype_rss, \
+ R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_96_111 \
+ R(sec_vlan, R_SEC_F | RX_VLAN_F) \
+ R(sec_vlan_rss, R_SEC_F | RX_VLAN_F | RSS_F) \
+ R(sec_vlan_ptype, R_SEC_F | RX_VLAN_F | PTYPE_F) \
+ R(sec_vlan_ptype_rss, R_SEC_F | RX_VLAN_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_cksum, R_SEC_F | RX_VLAN_F | CKSUM_F) \
+ R(sec_vlan_cksum_rss, R_SEC_F | RX_VLAN_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_cksum_ptype, R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F) \
+ R(sec_vlan_cksum_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_mark, R_SEC_F | RX_VLAN_F | MARK_F) \
+ R(sec_vlan_mark_rss, R_SEC_F | RX_VLAN_F | MARK_F | RSS_F) \
+ R(sec_vlan_mark_ptype, R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F) \
+ R(sec_vlan_mark_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_mark_cksum, R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F) \
+ R(sec_vlan_mark_cksum_rss, \
+ R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_mark_cksum_ptype, \
+ R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(sec_vlan_mark_cksum_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_112_127 \
+ R(sec_vlan_ts, R_SEC_F | RX_VLAN_F | TS_F) \
+ R(sec_vlan_ts_rss, R_SEC_F | RX_VLAN_F | TS_F | RSS_F) \
+ R(sec_vlan_ts_ptype, R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F) \
+ R(sec_vlan_ts_ptype_rss, R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_ts_cksum, R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F) \
+ R(sec_vlan_ts_cksum_rss, R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_ts_cksum_ptype, \
+ R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
+ R(sec_vlan_ts_cksum_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_ts_mark, R_SEC_F | RX_VLAN_F | TS_F | MARK_F) \
+ R(sec_vlan_ts_mark_rss, R_SEC_F | RX_VLAN_F | TS_F | MARK_F | RSS_F) \
+ R(sec_vlan_ts_mark_ptype, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
+ R(sec_vlan_ts_mark_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_ts_mark_cksum, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
+ R(sec_vlan_ts_mark_cksum_rss, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_ts_mark_cksum_ptype, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ 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 \
+ NIX_RX_FASTPATH_MODES_32_47 \
+ NIX_RX_FASTPATH_MODES_48_63 \
+ NIX_RX_FASTPATH_MODES_64_79 \
+ NIX_RX_FASTPATH_MODES_80_95 \
+ NIX_RX_FASTPATH_MODES_96_111 \
+ NIX_RX_FASTPATH_MODES_112_127
+
+#define R(name, flags) \
uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_##name( \
void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_mseg_##name( \
void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_vec_##name( \
void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_vec_mseg_##name( \
void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts);
NIX_RX_FASTPATH_MODES
#undef R
+#define NIX_RX_RECV(fn, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
+ { \
+ return cn9k_nix_recv_pkts(rx_queue, rx_pkts, pkts, (flags)); \
+ }
+
+#define NIX_RX_RECV_MSEG(fn, flags) NIX_RX_RECV(fn, flags | NIX_RX_MULTI_SEG_F)
+
+#define NIX_RX_RECV_VEC(fn, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
+ { \
+ return cn9k_nix_recv_pkts_vector(rx_queue, rx_pkts, pkts, \
+ (flags)); \
+ }
+
+#define NIX_RX_RECV_VEC_MSEG(fn, flags) \
+ NIX_RX_RECV_VEC(fn, flags | NIX_RX_MULTI_SEG_F)
+
#endif /* __CN9K_RX_H__ */
diff --git a/drivers/net/cnxk/cn9k_rx_mseg.c b/drivers/net/cnxk/cn9k_rx_mseg.c
deleted file mode 100644
index 06509e81ff..0000000000
--- a/drivers/net/cnxk/cn9k_rx_mseg.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_ethdev.h"
-#include "cn9k_rx.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_mseg_##name( \
- void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
- { \
- return cn9k_nix_recv_pkts(rx_queue, rx_pkts, pkts, \
- (flags) | NIX_RX_MULTI_SEG_F); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/net/cnxk/cn9k_rx_select.c b/drivers/net/cnxk/cn9k_rx_select.c
new file mode 100644
index 0000000000..faecebc17c
--- /dev/null
+++ b/drivers/net/cnxk/cn9k_rx_select.c
@@ -0,0 +1,67 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_rx.h"
+
+static inline void
+pick_rx_func(struct rte_eth_dev *eth_dev,
+ const eth_rx_burst_t rx_burst[NIX_RX_OFFLOAD_MAX])
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ /* [TSP] [MARK] [VLAN] [CKSUM] [PTYPE] [RSS] */
+ eth_dev->rx_pkt_burst =
+ rx_burst[dev->rx_offload_flags & (NIX_RX_OFFLOAD_MAX - 1)];
+
+ rte_atomic_thread_fence(__ATOMIC_RELEASE);
+}
+
+void
+cn9k_eth_set_rx_function(struct rte_eth_dev *eth_dev)
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ const eth_rx_burst_t nix_eth_rx_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_nix_recv_pkts_##name,
+
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const eth_rx_burst_t nix_eth_rx_burst_mseg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_nix_recv_pkts_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] = cn9k_nix_recv_pkts_vec_##name,
+
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const eth_rx_burst_t nix_eth_rx_vec_burst_mseg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn9k_nix_recv_pkts_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 & DEV_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 & DEV_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);
+}
diff --git a/drivers/net/cnxk/cn9k_rx_vec.c b/drivers/net/cnxk/cn9k_rx_vec.c
deleted file mode 100644
index c96f61c406..0000000000
--- a/drivers/net/cnxk/cn9k_rx_vec.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_ethdev.h"
-#include "cn9k_rx.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_vec_##name( \
- void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
- { \
- return cn9k_nix_recv_pkts_vector(rx_queue, rx_pkts, pkts, \
- (flags)); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/net/cnxk/cn9k_rx_vec_mseg.c b/drivers/net/cnxk/cn9k_rx_vec_mseg.c
deleted file mode 100644
index 938b1c0b47..0000000000
--- a/drivers/net/cnxk/cn9k_rx_vec_mseg.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_ethdev.h"
-#include "cn9k_rx.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_noinline __rte_hot cn9k_nix_recv_pkts_vec_mseg_##name( \
- void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
- { \
- return cn9k_nix_recv_pkts_vector(rx_queue, rx_pkts, pkts, \
- (flags) | \
- NIX_RX_MULTI_SEG_F); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 7648ff5760..fcf8140686 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -28,15 +28,48 @@ sources += files(
'cn9k_ethdev.c',
'cn9k_ethdev_sec.c',
'cn9k_rte_flow.c',
- 'cn9k_rx.c',
- 'cn9k_rx_mseg.c',
- 'cn9k_rx_vec.c',
- 'cn9k_rx_vec_mseg.c',
+ 'cn9k_rx_select.c',
'cn9k_tx.c',
'cn9k_tx_mseg.c',
'cn9k_tx_vec.c',
'cn9k_tx_vec_mseg.c',
)
+
+sources += files(
+ 'rx/cn9k/rx_0_15.c',
+ 'rx/cn9k/rx_16_31.c',
+ 'rx/cn9k/rx_32_47.c',
+ 'rx/cn9k/rx_48_63.c',
+ 'rx/cn9k/rx_64_79.c',
+ 'rx/cn9k/rx_80_95.c',
+ 'rx/cn9k/rx_96_111.c',
+ 'rx/cn9k/rx_112_127.c',
+ 'rx/cn9k/rx_0_15_mseg.c',
+ 'rx/cn9k/rx_16_31_mseg.c',
+ 'rx/cn9k/rx_32_47_mseg.c',
+ 'rx/cn9k/rx_48_63_mseg.c',
+ 'rx/cn9k/rx_64_79_mseg.c',
+ 'rx/cn9k/rx_80_95_mseg.c',
+ 'rx/cn9k/rx_96_111_mseg.c',
+ 'rx/cn9k/rx_112_127_mseg.c',
+ 'rx/cn9k/rx_0_15_vec.c',
+ 'rx/cn9k/rx_16_31_vec.c',
+ 'rx/cn9k/rx_32_47_vec.c',
+ 'rx/cn9k/rx_48_63_vec.c',
+ 'rx/cn9k/rx_64_79_vec.c',
+ 'rx/cn9k/rx_80_95_vec.c',
+ 'rx/cn9k/rx_96_111_vec.c',
+ 'rx/cn9k/rx_112_127_vec.c',
+ 'rx/cn9k/rx_0_15_vec_mseg.c',
+ 'rx/cn9k/rx_16_31_vec_mseg.c',
+ 'rx/cn9k/rx_32_47_vec_mseg.c',
+ 'rx/cn9k/rx_48_63_vec_mseg.c',
+ 'rx/cn9k/rx_64_79_vec_mseg.c',
+ 'rx/cn9k/rx_80_95_vec_mseg.c',
+ 'rx/cn9k/rx_96_111_vec_mseg.c',
+ 'rx/cn9k/rx_112_127_vec_mseg.c',
+)
+
# CN10K
sources += files(
'cn10k_ethdev.c',
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/8] net/cnxk: add CN9K template Rx functions to build
2021-12-13 8:22 ` [PATCH 2/8] net/cnxk: add CN9K template Rx functions to build pbhagavatula
@ 2022-01-20 4:53 ` Jerin Jacob
0 siblings, 0 replies; 9+ messages in thread
From: Jerin Jacob @ 2022-01-20 4:53 UTC (permalink / raw)
To: Pavan Nikhilesh
Cc: Jerin Jacob, Thomas Monjalon, David Marchand, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao,
Anatoly Burakov, dpdk-dev
On Mon, Dec 13, 2021 at 1:52 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Add CN9K seggeregated Rx and event dequeue functions to build,
Fix typo
> add macros to make future modifications simpler.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Please rebase to latest next-net-mrvl. There is a build issue now.
ccache gcc -Idrivers/libtmp_rte_net_cnxk.a.p -Idrivers -I../drivers
-Idrivers/net/cnxk -I../drivers/net/cnxk -Ilib/ethdev -I../lib/ethdev
-I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include
-Ilib/eal/linux/include -I../lib/
eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include
-Ilib/eal/common -I../lib/eal/common -Ilib/eal -I../lib/eal
-Ilib/kvargs -I../lib/kvargs -Ilib/metrics -I../lib/metrics
-Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/n
et -Ilib/mbuf -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring
-I../lib/ring -Ilib/meter -I../lib/meter -Idrivers/bus/pci
-I../drivers/bus/pci -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci
-Idrivers/bus/vdev -I../drivers/bus/vdev
-Ilib/cryptodev -I../lib/cryptodev -Ilib/rcu -I../lib/rcu
-Ilib/eventdev -I../lib/eventdev -Ilib/hash -I../lib/hash -Ilib/timer
-I../lib/timer -Ilib/security -I../lib/security -Idrivers/common/cnxk
-I../drivers/common/cnxk -Idrivers/mempoo
l/cnxk -I../drivers/mempool/cnxk -fdiagnostics-color=always
-D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O2 -g -include
rte_config.h -Wextra -Wcast-qual -Wdeprecated -Wformat
-Wformat-nonliteral -Wformat-security -Wmissing-declaratio
ns -Wmissing-prototypes -Wnested-externs -Wold-style-definition
-Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef
-Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned
-Wno-missing-field-initializers -Wno-zero-lengt
h-bounds -D_GNU_SOURCE -fPIC -march=native -DALLOW_EXPERIMENTAL_API
-DALLOW_INTERNAL_API -Wno-format-truncation -flax-vector-conversions
-Wno-strict-aliasing -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.cnxk -MD -MQ
drivers/libtmp_rte_net_cnxk.a.p/net
_cnxk_cn9k_rx_select.c.o -MF
drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_rx_select.c.o.d -o
drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_rx_select.c.o -c
../drivers/net/cnxk/cn9k_rx_select.c
../drivers/net/cnxk/cn9k_rx_select.c: In function ‘cn9k_eth_set_rx_function’:
../drivers/net/cnxk/cn9k_rx_select.c:59:27: error:
"DEV_RX_OFFLOAD_SCATTER" is deprecated [-Werror]
59 | if (dev->rx_offloads & DEV_RX_OFFLOAD_SCATTER)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../drivers/net/cnxk/cn9k_rx_select.c:64:20: error:
"DEV_RX_OFFLOAD_SCATTER" is deprecated [-Werror]
64 | if (dev->rx_offloads & DEV_RX_OFFLOAD_SCATTER)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/8] net/cnxk: add CN9K segregated Tx functions
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
2021-12-13 8:22 ` [PATCH 2/8] net/cnxk: add CN9K template Rx functions to build pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
2021-12-13 8:22 ` [PATCH 4/8] net/cnxk: add CN9K template Tx functions to build pbhagavatula
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN9K segregated Rx and event Tx enqueue template functions,
these help in parallelizing the build.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/tx/cn9k/tx_0_15.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_0_15_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_0_15_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_0_15_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_112_127.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_112_127_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_112_127_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_112_127_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_16_31.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_16_31_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_16_31_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_16_31_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_32_47.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_32_47_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_32_47_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_32_47_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_48_63.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_48_63_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_48_63_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_48_63_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_64_79.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_64_79_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_64_79_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_64_79_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_80_95.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_80_95_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_80_95_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_80_95_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_96_111.c | 10 ++++++++++
drivers/event/cnxk/tx/cn9k/tx_96_111_dual.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_96_111_dual_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn9k/tx_96_111_seg.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_0_15.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_0_15_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_0_15_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_0_15_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_112_127.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_112_127_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_112_127_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_112_127_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_16_31.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_16_31_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_16_31_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_16_31_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_32_47.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_32_47_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_32_47_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_32_47_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_48_63.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_48_63_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_48_63_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_48_63_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_64_79.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_64_79_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_64_79_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_64_79_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_80_95.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_80_95_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_80_95_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_80_95_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_96_111.c | 11 +++++++++++
drivers/net/cnxk/tx/cn9k/tx_96_111_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_96_111_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn9k/tx_96_111_vec_mseg.c | 12 ++++++++++++
64 files changed, 720 insertions(+)
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_0_15.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_0_15_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_0_15_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_0_15_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_112_127.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_112_127_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_112_127_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_112_127_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_16_31.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_16_31_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_16_31_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_16_31_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_32_47.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_32_47_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_32_47_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_32_47_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_48_63.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_48_63_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_48_63_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_48_63_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_64_79.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_64_79_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_64_79_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_64_79_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_80_95.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_80_95_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_80_95_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_80_95_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_96_111.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_96_111_dual.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_96_111_dual_seg.c
create mode 100644 drivers/event/cnxk/tx/cn9k/tx_96_111_seg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_0_15.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_0_15_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_0_15_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_0_15_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_112_127.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_112_127_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_112_127_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_112_127_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_16_31.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_16_31_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_16_31_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_16_31_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_32_47.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_32_47_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_32_47_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_32_47_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_48_63.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_48_63_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_48_63_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_48_63_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_64_79.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_64_79_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_64_79_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_64_79_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_80_95.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_80_95_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_80_95_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_80_95_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_96_111.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_96_111_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_96_111_vec.c
create mode 100644 drivers/net/cnxk/tx/cn9k/tx_96_111_vec_mseg.c
diff --git a/drivers/event/cnxk/tx/cn9k/tx_0_15.c b/drivers/event/cnxk/tx/cn9k/tx_0_15.c
new file mode 100644
index 0000000000..3fd3b69cbf
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_0_15.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_0_15_dual.c b/drivers/event/cnxk/tx/cn9k/tx_0_15_dual.c
new file mode 100644
index 0000000000..5ef91b9aad
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_0_15_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_0_15_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_0_15_dual_seg.c
new file mode 100644
index 0000000000..5df202b230
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_0_15_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_0_15_seg.c b/drivers/event/cnxk/tx/cn9k/tx_0_15_seg.c
new file mode 100644
index 0000000000..8999ab231a
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_0_15_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_112_127.c b/drivers/event/cnxk/tx/cn9k/tx_112_127.c
new file mode 100644
index 0000000000..b56ab7eb84
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_112_127.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_112_127_dual.c b/drivers/event/cnxk/tx/cn9k/tx_112_127_dual.c
new file mode 100644
index 0000000000..2651eacbfa
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_112_127_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_112_127_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_112_127_dual_seg.c
new file mode 100644
index 0000000000..6c3ad45773
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_112_127_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_112_127_seg.c b/drivers/event/cnxk/tx/cn9k/tx_112_127_seg.c
new file mode 100644
index 0000000000..d060f7f8bb
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_112_127_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_16_31.c b/drivers/event/cnxk/tx/cn9k/tx_16_31.c
new file mode 100644
index 0000000000..f404275120
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_16_31.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_16_31_dual.c b/drivers/event/cnxk/tx/cn9k/tx_16_31_dual.c
new file mode 100644
index 0000000000..aac71bbfcc
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_16_31_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_16_31_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_16_31_dual_seg.c
new file mode 100644
index 0000000000..9ae00624a9
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_16_31_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_16_31_seg.c b/drivers/event/cnxk/tx/cn9k/tx_16_31_seg.c
new file mode 100644
index 0000000000..2ce606991f
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_16_31_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_32_47.c b/drivers/event/cnxk/tx/cn9k/tx_32_47.c
new file mode 100644
index 0000000000..98d95f3524
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_32_47.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_32_47_dual.c b/drivers/event/cnxk/tx/cn9k/tx_32_47_dual.c
new file mode 100644
index 0000000000..c66fa9b6c7
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_32_47_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_32_47_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_32_47_dual_seg.c
new file mode 100644
index 0000000000..9ae47b4d62
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_32_47_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_32_47_seg.c b/drivers/event/cnxk/tx/cn9k/tx_32_47_seg.c
new file mode 100644
index 0000000000..77983871c9
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_32_47_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_48_63.c b/drivers/event/cnxk/tx/cn9k/tx_48_63.c
new file mode 100644
index 0000000000..c585947397
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_48_63.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_48_63_dual.c b/drivers/event/cnxk/tx/cn9k/tx_48_63_dual.c
new file mode 100644
index 0000000000..6ff2d978d6
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_48_63_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_48_63_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_48_63_dual_seg.c
new file mode 100644
index 0000000000..c251ffd35c
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_48_63_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_48_63_seg.c b/drivers/event/cnxk/tx/cn9k/tx_48_63_seg.c
new file mode 100644
index 0000000000..34554d6c90
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_48_63_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_64_79.c b/drivers/event/cnxk/tx/cn9k/tx_64_79.c
new file mode 100644
index 0000000000..d0a00bba05
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_64_79.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_64_79_dual.c b/drivers/event/cnxk/tx/cn9k/tx_64_79_dual.c
new file mode 100644
index 0000000000..8aaea58dee
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_64_79_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_64_79_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_64_79_dual_seg.c
new file mode 100644
index 0000000000..9b9ef59b9e
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_64_79_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_64_79_seg.c b/drivers/event/cnxk/tx/cn9k/tx_64_79_seg.c
new file mode 100644
index 0000000000..42e1d44906
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_64_79_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_80_95.c b/drivers/event/cnxk/tx/cn9k/tx_80_95.c
new file mode 100644
index 0000000000..47b6808689
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_80_95.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_80_95_dual.c b/drivers/event/cnxk/tx/cn9k/tx_80_95_dual.c
new file mode 100644
index 0000000000..f37427a91b
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_80_95_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_80_95_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_80_95_dual_seg.c
new file mode 100644
index 0000000000..231dc03c19
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_80_95_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_80_95_seg.c b/drivers/event/cnxk/tx/cn9k/tx_80_95_seg.c
new file mode 100644
index 0000000000..4bf3fa9142
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_80_95_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_96_111.c b/drivers/event/cnxk/tx/cn9k/tx_96_111.c
new file mode 100644
index 0000000000..d2ad48908b
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_96_111.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn9k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_96_111_dual.c b/drivers/event/cnxk/tx/cn9k/tx_96_111_dual.c
new file mode 100644
index 0000000000..dc0289ce32
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_96_111_dual.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX(cn9k_sso_hws_dual_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_96_111_dual_seg.c b/drivers/event/cnxk/tx/cn9k/tx_96_111_dual_seg.c
new file mode 100644
index 0000000000..910a0c7d49
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_96_111_dual_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_DUAL_TX_SEG(cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/event/cnxk/tx/cn9k/tx_96_111_seg.c b/drivers/event/cnxk/tx/cn9k/tx_96_111_seg.c
new file mode 100644
index 0000000000..96f129a34e
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn9k/tx_96_111_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn9k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_0_15.c b/drivers/net/cnxk/tx/cn9k/tx_0_15.c
new file mode 100644
index 0000000000..13d97e70dc
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_0_15.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_0_15_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_0_15_mseg.c
new file mode 100644
index 0000000000..c278716561
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_0_15_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_0_15_vec.c b/drivers/net/cnxk/tx/cn9k/tx_0_15_vec.c
new file mode 100644
index 0000000000..33c60ab051
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_0_15_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_0_15_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_0_15_vec_mseg.c
new file mode 100644
index 0000000000..86b91d9203
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_0_15_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_112_127.c b/drivers/net/cnxk/tx/cn9k/tx_112_127.c
new file mode 100644
index 0000000000..f3b4dd23af
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_112_127.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_112_127_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_112_127_mseg.c
new file mode 100644
index 0000000000..d3e3b38639
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_112_127_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_112_127_vec.c b/drivers/net/cnxk/tx/cn9k/tx_112_127_vec.c
new file mode 100644
index 0000000000..96b7a7b29b
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_112_127_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_112_127_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_112_127_vec_mseg.c
new file mode 100644
index 0000000000..f940fc6f32
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_112_127_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_16_31.c b/drivers/net/cnxk/tx/cn9k/tx_16_31.c
new file mode 100644
index 0000000000..3c21035e64
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_16_31.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_16_31_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_16_31_mseg.c
new file mode 100644
index 0000000000..95c8409824
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_16_31_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_16_31_vec.c b/drivers/net/cnxk/tx/cn9k/tx_16_31_vec.c
new file mode 100644
index 0000000000..652b118d29
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_16_31_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_16_31_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_16_31_vec_mseg.c
new file mode 100644
index 0000000000..2d605e1b4c
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_16_31_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_32_47.c b/drivers/net/cnxk/tx/cn9k/tx_32_47.c
new file mode 100644
index 0000000000..9041cc8628
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_32_47.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_32_47_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_32_47_mseg.c
new file mode 100644
index 0000000000..c14cecc837
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_32_47_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_32_47_vec.c b/drivers/net/cnxk/tx/cn9k/tx_32_47_vec.c
new file mode 100644
index 0000000000..94c7a1ac8e
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_32_47_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_32_47_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_32_47_vec_mseg.c
new file mode 100644
index 0000000000..2e787391ef
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_32_47_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_48_63.c b/drivers/net/cnxk/tx/cn9k/tx_48_63.c
new file mode 100644
index 0000000000..df0f935319
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_48_63.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_48_63_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_48_63_mseg.c
new file mode 100644
index 0000000000..663e19f5bc
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_48_63_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_48_63_vec.c b/drivers/net/cnxk/tx/cn9k/tx_48_63_vec.c
new file mode 100644
index 0000000000..2ac8ab01fb
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_48_63_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_48_63_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_48_63_vec_mseg.c
new file mode 100644
index 0000000000..e1808fd0ff
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_48_63_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_64_79.c b/drivers/net/cnxk/tx/cn9k/tx_64_79.c
new file mode 100644
index 0000000000..2d202ef7a7
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_64_79.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_64_79_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_64_79_mseg.c
new file mode 100644
index 0000000000..ff9657819e
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_64_79_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_64_79_vec.c b/drivers/net/cnxk/tx/cn9k/tx_64_79_vec.c
new file mode 100644
index 0000000000..ad5fb44421
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_64_79_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_64_79_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_64_79_vec_mseg.c
new file mode 100644
index 0000000000..1da905c717
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_64_79_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_80_95.c b/drivers/net/cnxk/tx/cn9k/tx_80_95.c
new file mode 100644
index 0000000000..3090207ec4
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_80_95.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_80_95_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_80_95_mseg.c
new file mode 100644
index 0000000000..ea59d546b7
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_80_95_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_80_95_vec.c b/drivers/net/cnxk/tx/cn9k/tx_80_95_vec.c
new file mode 100644
index 0000000000..617ae6468b
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_80_95_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_80_95_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_80_95_vec_mseg.c
new file mode 100644
index 0000000000..6d7c219a72
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_80_95_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_96_111.c b/drivers/net/cnxk/tx/cn9k/tx_96_111.c
new file mode 100644
index 0000000000..7a5c55de73
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_96_111.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn9k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_96_111_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_96_111_mseg.c
new file mode 100644
index 0000000000..9268544a39
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_96_111_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn9k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_96_111_vec.c b/drivers/net/cnxk/tx/cn9k/tx_96_111_vec.c
new file mode 100644
index 0000000000..842bf336d5
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_96_111_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn9k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn9k/tx_96_111_vec_mseg.c b/drivers/net/cnxk/tx/cn9k/tx_96_111_vec_mseg.c
new file mode 100644
index 0000000000..5fad1baea7
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn9k/tx_96_111_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn9k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/8] net/cnxk: add CN9K template Tx functions to build
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
2021-12-13 8:22 ` [PATCH 2/8] net/cnxk: add CN9K template Rx functions to build pbhagavatula
2021-12-13 8:22 ` [PATCH 3/8] net/cnxk: add CN9K segregated Tx functions pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
2021-12-13 8:22 ` [PATCH 5/8] net/cnxk: add CN10K segregated Rx functions pbhagavatula
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN9K segregated Tx and event Tx functions to build,
add macros to make future modifications simpler.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/cn9k_eventdev.c | 29 +-
drivers/event/cnxk/cn9k_worker.h | 62 ++-
drivers/event/cnxk/cn9k_worker_dual_tx_enq.c | 23 -
.../event/cnxk/cn9k_worker_dual_tx_enq_seg.c | 23 -
drivers/event/cnxk/cn9k_worker_tx_enq.c | 23 -
drivers/event/cnxk/cn9k_worker_tx_enq_seg.c | 23 -
drivers/event/cnxk/meson.build | 42 +-
drivers/net/cnxk/cn9k_tx.h | 519 +++++++++---------
drivers/net/cnxk/cn9k_tx_mseg.c | 25 -
drivers/net/cnxk/cn9k_tx_select.c | 59 ++
drivers/net/cnxk/cn9k_tx_vec.c | 25 -
drivers/net/cnxk/cn9k_tx_vec_mseg.c | 24 -
drivers/net/cnxk/meson.build | 40 +-
13 files changed, 459 insertions(+), 458 deletions(-)
delete mode 100644 drivers/event/cnxk/cn9k_worker_dual_tx_enq.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_dual_tx_enq_seg.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_tx_enq.c
delete mode 100644 drivers/event/cnxk/cn9k_worker_tx_enq_seg.c
delete mode 100644 drivers/net/cnxk/cn9k_tx_mseg.c
create mode 100644 drivers/net/cnxk/cn9k_tx_select.c
delete mode 100644 drivers/net/cnxk/cn9k_tx_vec.c
delete mode 100644 drivers/net/cnxk/cn9k_tx_vec_mseg.c
diff --git a/drivers/event/cnxk/cn9k_eventdev.c b/drivers/event/cnxk/cn9k_eventdev.c
index 1d0e1288ce..7858e37146 100644
--- a/drivers/event/cnxk/cn9k_eventdev.c
+++ b/drivers/event/cnxk/cn9k_eventdev.c
@@ -13,13 +13,7 @@
deq_op = deq_ops[dev->rx_offloads & (NIX_RX_OFFLOAD_MAX - 1)]
#define CN9K_SET_EVDEV_ENQ_OP(dev, enq_op, enq_ops) \
- (enq_op = enq_ops[!!(dev->tx_offloads & NIX_TX_OFFLOAD_SECURITY_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_TSTAMP_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_TSO_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_MBUF_NOFF_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_VLAN_QINQ_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_L3_L4_CSUM_F)])
+ enq_op = enq_ops[dev->tx_offloads & (NIX_TX_OFFLOAD_MAX - 1)]
static int
cn9k_sso_hws_link(void *arg, void *port, uint16_t *map, uint16_t nb_link)
@@ -520,34 +514,29 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)
/* Tx modes */
const event_tx_adapter_enqueue_t
- sso_hws_tx_adptr_enq[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_tx_adptr_enq_##name,
+ sso_hws_tx_adptr_enq[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_sso_hws_tx_adptr_enq_##name,
NIX_TX_FASTPATH_MODES
#undef T
};
const event_tx_adapter_enqueue_t
- sso_hws_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_tx_adptr_enq_seg_##name,
+ sso_hws_tx_adptr_enq_seg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_sso_hws_tx_adptr_enq_seg_##name,
NIX_TX_FASTPATH_MODES
#undef T
};
const event_tx_adapter_enqueue_t
- sso_hws_dual_tx_adptr_enq[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_tx_adptr_enq_##name,
+ sso_hws_dual_tx_adptr_enq[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_sso_hws_dual_tx_adptr_enq_##name,
NIX_TX_FASTPATH_MODES
#undef T
};
const event_tx_adapter_enqueue_t
- sso_hws_dual_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = \
- cn9k_sso_hws_dual_tx_adptr_enq_seg_##name,
+ sso_hws_dual_tx_adptr_enq_seg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_sso_hws_dual_tx_adptr_enq_seg_##name,
NIX_TX_FASTPATH_MODES
#undef T
};
diff --git a/drivers/event/cnxk/cn9k_worker.h b/drivers/event/cnxk/cn9k_worker.h
index b421412adc..a46d4e786a 100644
--- a/drivers/event/cnxk/cn9k_worker.h
+++ b/drivers/event/cnxk/cn9k_worker.h
@@ -837,7 +837,7 @@ cn9k_sso_hws_event_tx(uint64_t base, struct rte_event *ev, uint64_t *cmd,
return 1;
}
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
+#define T(name, sz, flags) \
uint16_t __rte_hot cn9k_sso_hws_tx_adptr_enq_##name( \
void *port, struct rte_event ev[], uint16_t nb_events); \
uint16_t __rte_hot cn9k_sso_hws_tx_adptr_enq_seg_##name( \
@@ -850,4 +850,64 @@ cn9k_sso_hws_event_tx(uint64_t base, struct rte_event *ev, uint64_t *cmd,
NIX_TX_FASTPATH_MODES
#undef T
+#define SSO_TX(fn, sz, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event ev[], \
+ uint16_t nb_events) \
+ { \
+ struct cn9k_sso_hws *ws = port; \
+ uint64_t cmd[sz]; \
+ \
+ RTE_SET_USED(nb_events); \
+ return cn9k_sso_hws_event_tx( \
+ ws->base, &ev[0], cmd, \
+ (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
+ ws->tx_adptr_data, \
+ flags); \
+ }
+
+#define SSO_TX_SEG(fn, sz, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event ev[], \
+ uint16_t nb_events) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ struct cn9k_sso_hws *ws = port; \
+ \
+ RTE_SET_USED(nb_events); \
+ return cn9k_sso_hws_event_tx( \
+ ws->base, &ev[0], cmd, \
+ (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
+ ws->tx_adptr_data, \
+ (flags) | NIX_TX_MULTI_SEG_F); \
+ }
+
+#define SSO_DUAL_TX(fn, sz, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event ev[], \
+ uint16_t nb_events) \
+ { \
+ struct cn9k_sso_hws_dual *ws = port; \
+ uint64_t cmd[sz]; \
+ \
+ RTE_SET_USED(nb_events); \
+ return cn9k_sso_hws_event_tx( \
+ ws->base[!ws->vws], &ev[0], cmd, \
+ (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
+ ws->tx_adptr_data, \
+ flags); \
+ }
+
+#define SSO_DUAL_TX_SEG(fn, sz, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event ev[], \
+ uint16_t nb_events) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ struct cn9k_sso_hws_dual *ws = port; \
+ \
+ RTE_SET_USED(nb_events); \
+ return cn9k_sso_hws_event_tx( \
+ ws->base[!ws->vws], &ev[0], cmd, \
+ (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
+ ws->tx_adptr_data, \
+ (flags) | NIX_TX_MULTI_SEG_F); \
+ }
+
#endif
diff --git a/drivers/event/cnxk/cn9k_worker_dual_tx_enq.c b/drivers/event/cnxk/cn9k_worker_dual_tx_enq.c
deleted file mode 100644
index db045d0e01..0000000000
--- a/drivers/event/cnxk/cn9k_worker_dual_tx_enq.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_hot cn9k_sso_hws_dual_tx_adptr_enq_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events) \
- { \
- struct cn9k_sso_hws_dual *ws = port; \
- uint64_t cmd[sz]; \
- \
- RTE_SET_USED(nb_events); \
- return cn9k_sso_hws_event_tx( \
- ws->base[!ws->vws], &ev[0], cmd, \
- (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
- ws->tx_adptr_data, \
- flags); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/event/cnxk/cn9k_worker_dual_tx_enq_seg.c b/drivers/event/cnxk/cn9k_worker_dual_tx_enq_seg.c
deleted file mode 100644
index 95d711f9b3..0000000000
--- a/drivers/event/cnxk/cn9k_worker_dual_tx_enq_seg.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_hot cn9k_sso_hws_dual_tx_adptr_enq_seg_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events) \
- { \
- uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
- struct cn9k_sso_hws_dual *ws = port; \
- \
- RTE_SET_USED(nb_events); \
- return cn9k_sso_hws_event_tx( \
- ws->base[!ws->vws], &ev[0], cmd, \
- (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
- ws->tx_adptr_data, \
- (flags) | NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/event/cnxk/cn9k_worker_tx_enq.c b/drivers/event/cnxk/cn9k_worker_tx_enq.c
deleted file mode 100644
index 026cef8e2b..0000000000
--- a/drivers/event/cnxk/cn9k_worker_tx_enq.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_hot cn9k_sso_hws_tx_adptr_enq_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events) \
- { \
- struct cn9k_sso_hws *ws = port; \
- uint64_t cmd[sz]; \
- \
- RTE_SET_USED(nb_events); \
- return cn9k_sso_hws_event_tx( \
- ws->base, &ev[0], cmd, \
- (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
- ws->tx_adptr_data, \
- flags); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/event/cnxk/cn9k_worker_tx_enq_seg.c b/drivers/event/cnxk/cn9k_worker_tx_enq_seg.c
deleted file mode 100644
index 97cd7c7d8e..0000000000
--- a/drivers/event/cnxk/cn9k_worker_tx_enq_seg.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_worker.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_hot cn9k_sso_hws_tx_adptr_enq_seg_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events) \
- { \
- uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
- struct cn9k_sso_hws *ws = port; \
- \
- RTE_SET_USED(nb_events); \
- return cn9k_sso_hws_event_tx( \
- ws->base, &ev[0], cmd, \
- (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
- ws->tx_adptr_data, \
- (flags) | NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index 27697d2ece..c39515dadc 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -11,10 +11,6 @@ endif
sources = files(
'cn9k_eventdev.c',
'cn9k_worker.c',
- 'cn9k_worker_tx_enq.c',
- 'cn9k_worker_tx_enq_seg.c',
- 'cn9k_worker_dual_tx_enq.c',
- 'cn9k_worker_dual_tx_enq_seg.c',
'cn10k_eventdev.c',
'cn10k_worker.c',
'cn10k_worker_deq.c',
@@ -293,6 +289,44 @@ sources += files(
'deq/cn9k/deq_112_127_dual_ca_tmo_seg_burst.c',
)
+sources += files(
+ 'tx/cn9k/tx_0_15.c',
+ 'tx/cn9k/tx_16_31.c',
+ 'tx/cn9k/tx_32_47.c',
+ 'tx/cn9k/tx_48_63.c',
+ 'tx/cn9k/tx_64_79.c',
+ 'tx/cn9k/tx_80_95.c',
+ 'tx/cn9k/tx_96_111.c',
+ 'tx/cn9k/tx_112_127.c',
+ 'tx/cn9k/tx_0_15_seg.c',
+ 'tx/cn9k/tx_16_31_seg.c',
+ 'tx/cn9k/tx_32_47_seg.c',
+ 'tx/cn9k/tx_48_63_seg.c',
+ 'tx/cn9k/tx_64_79_seg.c',
+ 'tx/cn9k/tx_80_95_seg.c',
+ 'tx/cn9k/tx_96_111_seg.c',
+ 'tx/cn9k/tx_112_127_seg.c',
+)
+
+sources += files(
+ 'tx/cn9k/tx_0_15_dual.c',
+ 'tx/cn9k/tx_16_31_dual.c',
+ 'tx/cn9k/tx_32_47_dual.c',
+ 'tx/cn9k/tx_48_63_dual.c',
+ 'tx/cn9k/tx_64_79_dual.c',
+ 'tx/cn9k/tx_80_95_dual.c',
+ 'tx/cn9k/tx_96_111_dual.c',
+ 'tx/cn9k/tx_112_127_dual.c',
+ 'tx/cn9k/tx_0_15_dual_seg.c',
+ 'tx/cn9k/tx_16_31_dual_seg.c',
+ 'tx/cn9k/tx_32_47_dual_seg.c',
+ 'tx/cn9k/tx_48_63_dual_seg.c',
+ 'tx/cn9k/tx_64_79_dual_seg.c',
+ 'tx/cn9k/tx_80_95_dual_seg.c',
+ 'tx/cn9k/tx_96_111_dual_seg.c',
+ 'tx/cn9k/tx_112_127_dual_seg.c',
+)
+
extra_flags = ['-flax-vector-conversions', '-Wno-strict-aliasing']
foreach flag: extra_flags
if cc.has_argument(flag)
diff --git a/drivers/net/cnxk/cn9k_tx.h b/drivers/net/cnxk/cn9k_tx.h
index 435dde1317..5e1148a1d2 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -14,6 +14,7 @@
#define NIX_TX_OFFLOAD_TSO_F BIT(4)
#define NIX_TX_OFFLOAD_TSTAMP_F BIT(5)
#define NIX_TX_OFFLOAD_SECURITY_F BIT(6)
+#define NIX_TX_OFFLOAD_MAX (NIX_TX_OFFLOAD_SECURITY_F << 1)
/* Flags to control xmit_prepare function.
* Defining it from backwards to denote its been
@@ -1822,279 +1823,271 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
#define T_SEC_F NIX_TX_OFFLOAD_SECURITY_F
/* [T_SEC_F] [TSP] [TSO] [NOFF] [VLAN] [OL3OL4CSUM] [L3L4CSUM] */
-#define NIX_TX_FASTPATH_MODES \
-T(no_offload, 0, 0, 0, 0, 0, 0, 0, 4, \
- NIX_TX_OFFLOAD_NONE) \
-T(l3l4csum, 0, 0, 0, 0, 0, 0, 1, 4, \
- L3L4CSUM_F) \
-T(ol3ol4csum, 0, 0, 0, 0, 0, 1, 0, 4, \
- OL3OL4CSUM_F) \
-T(ol3ol4csum_l3l4csum, 0, 0, 0, 0, 0, 1, 1, 4, \
- OL3OL4CSUM_F | L3L4CSUM_F) \
-T(vlan, 0, 0, 0, 0, 1, 0, 0, 6, \
- VLAN_F) \
-T(vlan_l3l4csum, 0, 0, 0, 0, 1, 0, 1, 6, \
- VLAN_F | L3L4CSUM_F) \
-T(vlan_ol3ol4csum, 0, 0, 0, 0, 1, 1, 0, 6, \
- VLAN_F | OL3OL4CSUM_F) \
-T(vlan_ol3ol4csum_l3l4csum, 0, 0, 0, 0, 1, 1, 1, 6, \
- VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(noff, 0, 0, 0, 1, 0, 0, 0, 4, \
- NOFF_F) \
-T(noff_l3l4csum, 0, 0, 0, 1, 0, 0, 1, 4, \
- NOFF_F | L3L4CSUM_F) \
-T(noff_ol3ol4csum, 0, 0, 0, 1, 0, 1, 0, 4, \
- NOFF_F | OL3OL4CSUM_F) \
-T(noff_ol3ol4csum_l3l4csum, 0, 0, 0, 1, 0, 1, 1, 4, \
- NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(noff_vlan, 0, 0, 0, 1, 1, 0, 0, 6, \
- NOFF_F | VLAN_F) \
-T(noff_vlan_l3l4csum, 0, 0, 0, 1, 1, 0, 1, 6, \
- NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(noff_vlan_ol3ol4csum, 0, 0, 0, 1, 1, 1, 0, 6, \
- NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(noff_vlan_ol3ol4csum_l3l4csum, 0, 0, 0, 1, 1, 1, 1, 6, \
- NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso, 0, 0, 1, 0, 0, 0, 0, 6, \
- TSO_F) \
-T(tso_l3l4csum, 0, 0, 1, 0, 0, 0, 1, 6, \
- TSO_F | L3L4CSUM_F) \
-T(tso_ol3ol4csum, 0, 0, 1, 0, 0, 1, 0, 6, \
- TSO_F | OL3OL4CSUM_F) \
-T(tso_ol3ol4csum_l3l4csum, 0, 0, 1, 0, 0, 1, 1, 6, \
- TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso_vlan, 0, 0, 1, 0, 1, 0, 0, 6, \
- TSO_F | VLAN_F) \
-T(tso_vlan_l3l4csum, 0, 0, 1, 0, 1, 0, 1, 6, \
- TSO_F | VLAN_F | L3L4CSUM_F) \
-T(tso_vlan_ol3ol4csum, 0, 0, 1, 0, 1, 1, 0, 6, \
- TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(tso_vlan_ol3ol4csum_l3l4csum, 0, 0, 1, 0, 1, 1, 1, 6, \
- TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso_noff, 0, 0, 1, 1, 0, 0, 0, 6, \
- TSO_F | NOFF_F) \
-T(tso_noff_l3l4csum, 0, 0, 1, 1, 0, 0, 1, 6, \
- TSO_F | NOFF_F | L3L4CSUM_F) \
-T(tso_noff_ol3ol4csum, 0, 0, 1, 1, 0, 1, 0, 6, \
- TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(tso_noff_ol3ol4csum_l3l4csum, 0, 0, 1, 1, 0, 1, 1, 6, \
- TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso_noff_vlan, 0, 0, 1, 1, 1, 0, 0, 6, \
- TSO_F | NOFF_F | VLAN_F) \
-T(tso_noff_vlan_l3l4csum, 0, 0, 1, 1, 1, 0, 1, 6, \
- TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(tso_noff_vlan_ol3ol4csum, 0, 0, 1, 1, 1, 1, 0, 6, \
- TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(tso_noff_vlan_ol3ol4csum_l3l4csum, 0, 0, 1, 1, 1, 1, 1, 6, \
- TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts, 0, 1, 0, 0, 0, 0, 0, 8, \
- TSP_F) \
-T(ts_l3l4csum, 0, 1, 0, 0, 0, 0, 1, 8, \
- TSP_F | L3L4CSUM_F) \
-T(ts_ol3ol4csum, 0, 1, 0, 0, 0, 1, 0, 8, \
- TSP_F | OL3OL4CSUM_F) \
-T(ts_ol3ol4csum_l3l4csum, 0, 1, 0, 0, 0, 1, 1, 8, \
- TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_vlan, 0, 1, 0, 0, 1, 0, 0, 8, \
- TSP_F | VLAN_F) \
-T(ts_vlan_l3l4csum, 0, 1, 0, 0, 1, 0, 1, 8, \
- TSP_F | VLAN_F | L3L4CSUM_F) \
-T(ts_vlan_ol3ol4csum, 0, 1, 0, 0, 1, 1, 0, 8, \
- TSP_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_vlan_ol3ol4csum_l3l4csum, 0, 1, 0, 0, 1, 1, 1, 8, \
- TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_noff, 0, 1, 0, 1, 0, 0, 0, 8, \
- TSP_F | NOFF_F) \
-T(ts_noff_l3l4csum, 0, 1, 0, 1, 0, 0, 1, 8, \
- TSP_F | NOFF_F | L3L4CSUM_F) \
-T(ts_noff_ol3ol4csum, 0, 1, 0, 1, 0, 1, 0, 8, \
- TSP_F | NOFF_F | OL3OL4CSUM_F) \
-T(ts_noff_ol3ol4csum_l3l4csum, 0, 1, 0, 1, 0, 1, 1, 8, \
- TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_noff_vlan, 0, 1, 0, 1, 1, 0, 0, 8, \
- TSP_F | NOFF_F | VLAN_F) \
-T(ts_noff_vlan_l3l4csum, 0, 1, 0, 1, 1, 0, 1, 8, \
- TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(ts_noff_vlan_ol3ol4csum, 0, 1, 0, 1, 1, 1, 0, 8, \
- TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_noff_vlan_ol3ol4csum_l3l4csum, 0, 1, 0, 1, 1, 1, 1, 8, \
- TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso, 0, 1, 1, 0, 0, 0, 0, 8, \
- TSP_F | TSO_F) \
-T(ts_tso_l3l4csum, 0, 1, 1, 0, 0, 0, 1, 8, \
- TSP_F | TSO_F | L3L4CSUM_F) \
-T(ts_tso_ol3ol4csum, 0, 1, 1, 0, 0, 1, 0, 8, \
- TSP_F | TSO_F | OL3OL4CSUM_F) \
-T(ts_tso_ol3ol4csum_l3l4csum, 0, 1, 1, 0, 0, 1, 1, 8, \
- TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso_vlan, 0, 1, 1, 0, 1, 0, 0, 8, \
- TSP_F | TSO_F | VLAN_F) \
-T(ts_tso_vlan_l3l4csum, 0, 1, 1, 0, 1, 0, 1, 8, \
- TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
-T(ts_tso_vlan_ol3ol4csum, 0, 1, 1, 0, 1, 1, 0, 8, \
- TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_tso_vlan_ol3ol4csum_l3l4csum, 0, 1, 1, 0, 1, 1, 1, 8, \
- TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso_noff, 0, 1, 1, 1, 0, 0, 0, 8, \
- TSP_F | TSO_F | NOFF_F) \
-T(ts_tso_noff_l3l4csum, 0, 1, 1, 1, 0, 0, 1, 8, \
- TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
-T(ts_tso_noff_ol3ol4csum, 0, 1, 1, 1, 0, 1, 0, 8, \
- TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(ts_tso_noff_ol3ol4csum_l3l4csum, 0, 1, 1, 1, 0, 1, 1, 8, \
- TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso_noff_vlan, 0, 1, 1, 1, 1, 0, 0, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F) \
-T(ts_tso_noff_vlan_l3l4csum, 0, 1, 1, 1, 1, 0, 1, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(ts_tso_noff_vlan_ol3ol4csum, 0, 1, 1, 1, 1, 1, 0, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 0, 1, 1, 1, 1, 1, 1, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec, 1, 0, 0, 0, 0, 0, 0, 4, \
- T_SEC_F) \
-T(sec_l3l4csum, 1, 0, 0, 0, 0, 0, 1, 4, \
- T_SEC_F | L3L4CSUM_F) \
-T(sec_ol3ol4csum, 1, 0, 0, 0, 0, 1, 0, 4, \
- T_SEC_F | OL3OL4CSUM_F) \
-T(sec_ol3ol4csum_l3l4csum, 1, 0, 0, 0, 0, 1, 1, 4, \
- T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_vlan, 1, 0, 0, 0, 1, 0, 0, 6, \
- T_SEC_F | VLAN_F) \
-T(sec_vlan_l3l4csum, 1, 0, 0, 0, 1, 0, 1, 6, \
- T_SEC_F | VLAN_F | L3L4CSUM_F) \
-T(sec_vlan_ol3ol4csum, 1, 0, 0, 0, 1, 1, 0, 6, \
- T_SEC_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_vlan_ol3ol4csum_l3l4csum, 1, 0, 0, 0, 1, 1, 1, 6, \
- T_SEC_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_noff, 1, 0, 0, 1, 0, 0, 0, 4, \
- T_SEC_F | NOFF_F) \
-T(sec_noff_l3l4csum, 1, 0, 0, 1, 0, 0, 1, 4, \
- T_SEC_F | NOFF_F | L3L4CSUM_F) \
-T(sec_noff_ol3ol4csum, 1, 0, 0, 1, 0, 1, 0, 4, \
- T_SEC_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_noff_ol3ol4csum_l3l4csum, 1, 0, 0, 1, 0, 1, 1, 4, \
- T_SEC_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_noff_vlan, 1, 0, 0, 1, 1, 0, 0, 6, \
- T_SEC_F | NOFF_F | VLAN_F) \
-T(sec_noff_vlan_l3l4csum, 1, 0, 0, 1, 1, 0, 1, 6, \
- T_SEC_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_noff_vlan_ol3ol4csum, 1, 0, 0, 1, 1, 1, 0, 6, \
- T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_noff_vlan_ol3ol4csum_l3l4csum, 1, 0, 0, 1, 1, 1, 1, 6, \
- T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso, 1, 0, 1, 0, 0, 0, 0, 6, \
- T_SEC_F | TSO_F) \
-T(sec_tso_l3l4csum, 1, 0, 1, 0, 0, 0, 1, 6, \
- T_SEC_F | TSO_F | L3L4CSUM_F) \
-T(sec_tso_ol3ol4csum, 1, 0, 1, 0, 0, 1, 0, 6, \
- T_SEC_F | TSO_F | OL3OL4CSUM_F) \
-T(sec_tso_ol3ol4csum_l3l4csum, 1, 0, 1, 0, 0, 1, 1, 6, \
- T_SEC_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso_vlan, 1, 0, 1, 0, 1, 0, 0, 6, \
- T_SEC_F | TSO_F | VLAN_F) \
-T(sec_tso_vlan_l3l4csum, 1, 0, 1, 0, 1, 0, 1, 6, \
- T_SEC_F | TSO_F | VLAN_F | L3L4CSUM_F) \
-T(sec_tso_vlan_ol3ol4csum, 1, 0, 1, 0, 1, 1, 0, 6, \
- T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_tso_vlan_ol3ol4csum_l3l4csum, 1, 0, 1, 0, 1, 1, 1, 6, \
- T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso_noff, 1, 0, 1, 1, 0, 0, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F) \
-T(sec_tso_noff_l3l4csum, 1, 0, 1, 1, 0, 0, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | L3L4CSUM_F) \
-T(sec_tso_noff_ol3ol4csum, 1, 0, 1, 1, 0, 1, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_tso_noff_ol3ol4csum_l3l4csum, 1, 0, 1, 1, 0, 1, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso_noff_vlan, 1, 0, 1, 1, 1, 0, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F) \
-T(sec_tso_noff_vlan_l3l4csum, 1, 0, 1, 1, 1, 0, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_tso_noff_vlan_ol3ol4csum, 1, 0, 1, 1, 1, 1, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_tso_noff_vlan_ol3ol4csum_l3l4csum, 1, 0, 1, 1, 1, 1, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec_ts, 1, 1, 0, 0, 0, 0, 0, 8, \
- T_SEC_F | TSP_F) \
-T(sec_ts_l3l4csum, 1, 1, 0, 0, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | L3L4CSUM_F) \
-T(sec_ts_ol3ol4csum, 1, 1, 0, 0, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | OL3OL4CSUM_F) \
-T(sec_ts_ol3ol4csum_l3l4csum, 1, 1, 0, 0, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_vlan, 1, 1, 0, 0, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | VLAN_F) \
-T(sec_ts_vlan_l3l4csum, 1, 1, 0, 0, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_vlan_ol3ol4csum, 1, 1, 0, 0, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_ts_vlan_ol3ol4csum_l3l4csum, 1, 1, 0, 0, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_noff, 1, 1, 0, 1, 0, 0, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F) \
-T(sec_ts_noff_l3l4csum, 1, 1, 0, 1, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | L3L4CSUM_F) \
-T(sec_ts_noff_ol3ol4csum, 1, 1, 0, 1, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_ts_noff_ol3ol4csum_l3l4csum, 1, 1, 0, 1, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_noff_vlan, 1, 1, 0, 1, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F) \
-T(sec_ts_noff_vlan_l3l4csum, 1, 1, 0, 1, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_noff_vlan_ol3ol4csum, 1, 1, 0, 1, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_ts_noff_vlan_ol3ol4csum_l3l4csum, 1, 1, 0, 1, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec_ts_tso, 1, 1, 1, 0, 0, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F) \
-T(sec_ts_tso_l3l4csum, 1, 1, 1, 0, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | L3L4CSUM_F) \
-T(sec_ts_tso_ol3ol4csum, 1, 1, 1, 0, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F) \
-T(sec_ts_tso_ol3ol4csum_l3l4csum, 1, 1, 1, 0, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_tso_vlan, 1, 1, 1, 0, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F) \
-T(sec_ts_tso_vlan_l3l4csum, 1, 1, 1, 0, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_tso_vlan_ol3ol4csum, 1, 1, 1, 0, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_ts_tso_vlan_ol3ol4csum_l3l4csum, 1, 1, 1, 0, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff, 1, 1, 1, 1, 0, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F) \
-T(sec_ts_tso_noff_l3l4csum, 1, 1, 1, 1, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff_ol3ol4csum, 1, 1, 1, 1, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_ts_tso_noff_ol3ol4csum_l3l4csum, 1, 1, 1, 1, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff_vlan, 1, 1, 1, 1, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F) \
-T(sec_ts_tso_noff_vlan_l3l4csum, 1, 1, 1, 1, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff_vlan_ol3ol4csum, 1, 1, 1, 1, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F)\
-T(sec_ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 1, 1, 1, 1, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | \
- L3L4CSUM_F)
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
+#define NIX_TX_FASTPATH_MODES_0_15 \
+ T(no_offload, 4, NIX_TX_OFFLOAD_NONE) \
+ T(l3l4csum, 4, L3L4CSUM_F) \
+ T(ol3ol4csum, 4, OL3OL4CSUM_F) \
+ T(ol3ol4csum_l3l4csum, 4, OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(vlan, 6, VLAN_F) \
+ T(vlan_l3l4csum, 6, VLAN_F | L3L4CSUM_F) \
+ T(vlan_ol3ol4csum, 6, VLAN_F | OL3OL4CSUM_F) \
+ T(vlan_ol3ol4csum_l3l4csum, 6, VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(noff, 4, NOFF_F) \
+ T(noff_l3l4csum, 4, NOFF_F | L3L4CSUM_F) \
+ T(noff_ol3ol4csum, 4, NOFF_F | OL3OL4CSUM_F) \
+ T(noff_ol3ol4csum_l3l4csum, 4, NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(noff_vlan, 6, NOFF_F | VLAN_F) \
+ T(noff_vlan_l3l4csum, 6, NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(noff_vlan_ol3ol4csum, 6, NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_16_31 \
+ T(tso, 6, TSO_F) \
+ T(tso_l3l4csum, 6, TSO_F | L3L4CSUM_F) \
+ T(tso_ol3ol4csum, 6, TSO_F | OL3OL4CSUM_F) \
+ T(tso_ol3ol4csum_l3l4csum, 6, TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(tso_vlan, 6, TSO_F | VLAN_F) \
+ T(tso_vlan_l3l4csum, 6, TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(tso_vlan_ol3ol4csum, 6, TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(tso_vlan_ol3ol4csum_l3l4csum, 6, \
+ TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(tso_noff, 6, TSO_F | NOFF_F) \
+ T(tso_noff_l3l4csum, 6, TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(tso_noff_ol3ol4csum, 6, TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(tso_noff_ol3ol4csum_l3l4csum, 6, \
+ TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(tso_noff_vlan, 6, TSO_F | NOFF_F | VLAN_F) \
+ T(tso_noff_vlan_l3l4csum, 6, TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(tso_noff_vlan_ol3ol4csum, 6, TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(tso_noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_32_47 \
+ T(ts, 8, TSP_F) \
+ T(ts_l3l4csum, 8, TSP_F | L3L4CSUM_F) \
+ T(ts_ol3ol4csum, 8, TSP_F | OL3OL4CSUM_F) \
+ T(ts_ol3ol4csum_l3l4csum, 8, TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_vlan, 8, TSP_F | VLAN_F) \
+ T(ts_vlan_l3l4csum, 8, TSP_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_vlan_ol3ol4csum, 8, TSP_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_noff, 8, TSP_F | NOFF_F) \
+ T(ts_noff_l3l4csum, 8, TSP_F | NOFF_F | L3L4CSUM_F) \
+ T(ts_noff_ol3ol4csum, 8, TSP_F | NOFF_F | OL3OL4CSUM_F) \
+ T(ts_noff_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_noff_vlan, 8, TSP_F | NOFF_F | VLAN_F) \
+ T(ts_noff_vlan_l3l4csum, 8, TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_noff_vlan_ol3ol4csum, 8, TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_48_63 \
+ T(ts_tso, 8, TSP_F | TSO_F) \
+ T(ts_tso_l3l4csum, 8, TSP_F | TSO_F | L3L4CSUM_F) \
+ T(ts_tso_ol3ol4csum, 8, TSP_F | TSO_F | OL3OL4CSUM_F) \
+ T(ts_tso_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_tso_vlan, 8, TSP_F | TSO_F | VLAN_F) \
+ T(ts_tso_vlan_l3l4csum, 8, TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_tso_vlan_ol3ol4csum, 8, TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_tso_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_tso_noff, 8, TSP_F | TSO_F | NOFF_F) \
+ T(ts_tso_noff_l3l4csum, 8, TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(ts_tso_noff_ol3ol4csum, 8, TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(ts_tso_noff_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_tso_noff_vlan, 8, TSP_F | TSO_F | NOFF_F | VLAN_F) \
+ T(ts_tso_noff_vlan_l3l4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_tso_noff_vlan_ol3ol4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_64_79 \
+ T(sec, 4, T_SEC_F) \
+ T(sec_l3l4csum, 4, T_SEC_F | L3L4CSUM_F) \
+ T(sec_ol3ol4csum, 4, T_SEC_F | OL3OL4CSUM_F) \
+ T(sec_ol3ol4csum_l3l4csum, 4, T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_vlan, 6, T_SEC_F | VLAN_F) \
+ T(sec_vlan_l3l4csum, 6, T_SEC_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_vlan_ol3ol4csum, 6, T_SEC_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_noff, 4, T_SEC_F | NOFF_F) \
+ T(sec_noff_l3l4csum, 4, T_SEC_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_noff_ol3ol4csum, 4, T_SEC_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_noff_ol3ol4csum_l3l4csum, 4, \
+ T_SEC_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_noff_vlan, 6, T_SEC_F | NOFF_F | VLAN_F) \
+ T(sec_noff_vlan_l3l4csum, 6, T_SEC_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_noff_vlan_ol3ol4csum, 6, \
+ T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_80_95 \
+ T(sec_tso, 6, T_SEC_F | TSO_F) \
+ T(sec_tso_l3l4csum, 6, T_SEC_F | TSO_F | L3L4CSUM_F) \
+ T(sec_tso_ol3ol4csum, 6, T_SEC_F | TSO_F | OL3OL4CSUM_F) \
+ T(sec_tso_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_tso_vlan, 6, T_SEC_F | TSO_F | VLAN_F) \
+ T(sec_tso_vlan_l3l4csum, 6, T_SEC_F | TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_tso_vlan_ol3ol4csum, 6, T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_tso_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_tso_noff, 6, T_SEC_F | TSO_F | NOFF_F) \
+ T(sec_tso_noff_l3l4csum, 6, T_SEC_F | TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_tso_noff_ol3ol4csum, 6, T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_tso_noff_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_tso_noff_vlan, 6, T_SEC_F | TSO_F | NOFF_F | VLAN_F) \
+ T(sec_tso_noff_vlan_l3l4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_tso_noff_vlan_ol3ol4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_tso_noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_96_111 \
+ T(sec_ts, 8, T_SEC_F | TSP_F) \
+ T(sec_ts_l3l4csum, 8, T_SEC_F | TSP_F | L3L4CSUM_F) \
+ T(sec_ts_ol3ol4csum, 8, T_SEC_F | TSP_F | OL3OL4CSUM_F) \
+ T(sec_ts_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_vlan, 8, T_SEC_F | TSP_F | VLAN_F) \
+ T(sec_ts_vlan_l3l4csum, 8, T_SEC_F | TSP_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_vlan_ol3ol4csum, 8, T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_noff, 8, T_SEC_F | TSP_F | NOFF_F) \
+ T(sec_ts_noff_l3l4csum, 8, T_SEC_F | TSP_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_ts_noff_ol3ol4csum, 8, T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_ts_noff_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_noff_vlan, 8, T_SEC_F | TSP_F | NOFF_F | VLAN_F) \
+ T(sec_ts_noff_vlan_l3l4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_noff_vlan_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_112_127 \
+ T(sec_ts_tso, 8, T_SEC_F | TSP_F | TSO_F) \
+ T(sec_ts_tso_l3l4csum, 8, T_SEC_F | TSP_F | TSO_F | L3L4CSUM_F) \
+ T(sec_ts_tso_ol3ol4csum, 8, T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_tso_vlan, 8, T_SEC_F | TSP_F | TSO_F | VLAN_F) \
+ T(sec_ts_tso_vlan_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_tso_vlan_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff, 8, T_SEC_F | TSP_F | TSO_F | NOFF_F) \
+ T(sec_ts_tso_noff_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_noff_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff_vlan, 8, T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F) \
+ T(sec_ts_tso_noff_vlan_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff_vlan_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | \
+ L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES \
+ NIX_TX_FASTPATH_MODES_0_15 \
+ NIX_TX_FASTPATH_MODES_16_31 \
+ NIX_TX_FASTPATH_MODES_32_47 \
+ NIX_TX_FASTPATH_MODES_48_63 \
+ NIX_TX_FASTPATH_MODES_64_79 \
+ NIX_TX_FASTPATH_MODES_80_95 \
+ NIX_TX_FASTPATH_MODES_96_111 \
+ NIX_TX_FASTPATH_MODES_112_127
+
+#define T(name, sz, flags) \
uint16_t __rte_noinline __rte_hot cn9k_nix_xmit_pkts_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn9k_nix_xmit_pkts_mseg_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn9k_nix_xmit_pkts_vec_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn9k_nix_xmit_pkts_vec_mseg_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts);
NIX_TX_FASTPATH_MODES
#undef T
+#define NIX_TX_XMIT(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[sz]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn9k_nix_xmit_pkts(tx_queue, tx_pkts, pkts, cmd, \
+ flags); \
+ }
+
+#define NIX_TX_XMIT_MSEG(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn9k_nix_xmit_pkts_mseg(tx_queue, tx_pkts, pkts, cmd, \
+ (flags) | NIX_TX_MULTI_SEG_F); \
+ }
+
+#define NIX_TX_XMIT_VEC(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[sz]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn9k_nix_xmit_pkts_vector(tx_queue, tx_pkts, pkts, cmd, \
+ (flags)); \
+ }
+
+#define NIX_TX_XMIT_VEC_MSEG(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn9k_nix_xmit_pkts_vector(tx_queue, tx_pkts, pkts, cmd, \
+ (flags) | \
+ NIX_TX_MULTI_SEG_F); \
+ }
+
#endif /* __CN9K_TX_H__ */
diff --git a/drivers/net/cnxk/cn9k_tx_mseg.c b/drivers/net/cnxk/cn9k_tx_mseg.c
deleted file mode 100644
index 37cba78e71..0000000000
--- a/drivers/net/cnxk/cn9k_tx_mseg.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_ethdev.h"
-#include "cn9k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot \
- cn9k_nix_xmit_pkts_mseg_##name(void *tx_queue, \
- struct rte_mbuf **tx_pkts, \
- uint16_t pkts) \
- { \
- uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn9k_nix_xmit_pkts_mseg(tx_queue, tx_pkts, pkts, cmd, \
- (flags) | NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/net/cnxk/cn9k_tx_select.c b/drivers/net/cnxk/cn9k_tx_select.c
new file mode 100644
index 0000000000..47015bf4ed
--- /dev/null
+++ b/drivers/net/cnxk/cn9k_tx_select.c
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn9k_ethdev.h"
+#include "cn9k_tx.h"
+
+static inline void
+pick_tx_func(struct rte_eth_dev *eth_dev,
+ const eth_tx_burst_t tx_burst[NIX_TX_OFFLOAD_MAX])
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ /* [TS] [TSO] [NOFF] [VLAN] [OL3_OL4_CSUM] [IL3_IL4_CSUM] */
+ eth_dev->tx_pkt_burst =
+ tx_burst[dev->tx_offload_flags & (NIX_TX_OFFLOAD_MAX - 1)];
+}
+
+void
+cn9k_eth_set_tx_function(struct rte_eth_dev *eth_dev)
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ const eth_tx_burst_t nix_eth_tx_burst[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_nix_xmit_pkts_##name,
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ const eth_tx_burst_t nix_eth_tx_burst_mseg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_nix_xmit_pkts_mseg_##name,
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ const eth_tx_burst_t nix_eth_tx_vec_burst[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_nix_xmit_pkts_vec_##name,
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ const eth_tx_burst_t nix_eth_tx_vec_burst_mseg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn9k_nix_xmit_pkts_vec_mseg_##name,
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ if (dev->scalar_ena) {
+ pick_tx_func(eth_dev, nix_eth_tx_burst);
+ if (dev->tx_offloads & DEV_TX_OFFLOAD_MULTI_SEGS)
+ pick_tx_func(eth_dev, nix_eth_tx_burst_mseg);
+ } else {
+ pick_tx_func(eth_dev, nix_eth_tx_vec_burst);
+ if (dev->tx_offloads & DEV_TX_OFFLOAD_MULTI_SEGS)
+ pick_tx_func(eth_dev, nix_eth_tx_vec_burst_mseg);
+ }
+
+ rte_mb();
+}
diff --git a/drivers/net/cnxk/cn9k_tx_vec.c b/drivers/net/cnxk/cn9k_tx_vec.c
deleted file mode 100644
index b424f95895..0000000000
--- a/drivers/net/cnxk/cn9k_tx_vec.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_ethdev.h"
-#include "cn9k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot \
- cn9k_nix_xmit_pkts_vec_##name(void *tx_queue, \
- struct rte_mbuf **tx_pkts, \
- uint16_t pkts) \
- { \
- uint64_t cmd[sz]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn9k_nix_xmit_pkts_vector(tx_queue, tx_pkts, pkts, cmd, \
- (flags)); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/net/cnxk/cn9k_tx_vec_mseg.c b/drivers/net/cnxk/cn9k_tx_vec_mseg.c
deleted file mode 100644
index 5fdf0a9062..0000000000
--- a/drivers/net/cnxk/cn9k_tx_vec_mseg.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn9k_ethdev.h"
-#include "cn9k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot cn9k_nix_xmit_pkts_vec_mseg_##name( \
- void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
- { \
- uint64_t cmd[sz]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn9k_nix_xmit_pkts_vector(tx_queue, tx_pkts, pkts, cmd, \
- (flags) | \
- NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index fcf8140686..01bd5442b5 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -29,10 +29,7 @@ sources += files(
'cn9k_ethdev_sec.c',
'cn9k_rte_flow.c',
'cn9k_rx_select.c',
- 'cn9k_tx.c',
- 'cn9k_tx_mseg.c',
- 'cn9k_tx_vec.c',
- 'cn9k_tx_vec_mseg.c',
+ 'cn9k_tx_select.c',
)
sources += files(
@@ -70,6 +67,41 @@ sources += files(
'rx/cn9k/rx_112_127_vec_mseg.c',
)
+sources += files(
+ 'tx/cn9k/tx_0_15.c',
+ 'tx/cn9k/tx_16_31.c',
+ 'tx/cn9k/tx_32_47.c',
+ 'tx/cn9k/tx_48_63.c',
+ 'tx/cn9k/tx_64_79.c',
+ 'tx/cn9k/tx_80_95.c',
+ 'tx/cn9k/tx_96_111.c',
+ 'tx/cn9k/tx_112_127.c',
+ 'tx/cn9k/tx_0_15_mseg.c',
+ 'tx/cn9k/tx_16_31_mseg.c',
+ 'tx/cn9k/tx_32_47_mseg.c',
+ 'tx/cn9k/tx_48_63_mseg.c',
+ 'tx/cn9k/tx_64_79_mseg.c',
+ 'tx/cn9k/tx_80_95_mseg.c',
+ 'tx/cn9k/tx_96_111_mseg.c',
+ 'tx/cn9k/tx_112_127_mseg.c',
+ 'tx/cn9k/tx_0_15_vec.c',
+ 'tx/cn9k/tx_16_31_vec.c',
+ 'tx/cn9k/tx_32_47_vec.c',
+ 'tx/cn9k/tx_48_63_vec.c',
+ 'tx/cn9k/tx_64_79_vec.c',
+ 'tx/cn9k/tx_80_95_vec.c',
+ 'tx/cn9k/tx_96_111_vec.c',
+ 'tx/cn9k/tx_112_127_vec.c',
+ 'tx/cn9k/tx_0_15_vec_mseg.c',
+ 'tx/cn9k/tx_16_31_vec_mseg.c',
+ 'tx/cn9k/tx_32_47_vec_mseg.c',
+ 'tx/cn9k/tx_48_63_vec_mseg.c',
+ 'tx/cn9k/tx_64_79_vec_mseg.c',
+ 'tx/cn9k/tx_80_95_vec_mseg.c',
+ 'tx/cn9k/tx_96_111_vec_mseg.c',
+ 'tx/cn9k/tx_112_127_vec_mseg.c',
+)
+
# CN10K
sources += files(
'cn10k_ethdev.c',
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 5/8] net/cnxk: add CN10K segregated Rx functions
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
` (2 preceding siblings ...)
2021-12-13 8:22 ` [PATCH 4/8] net/cnxk: add CN9K template Tx functions to build pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
2021-12-13 8:22 ` [PATCH 6/8] net/cnxk: add CN10K template Rx functions to build pbhagavatula
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN10K segregated Rx and event dequeue template functions,
these help in parallelizing the build.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/deq/cn10k/deq_0_15.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_112_127_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c | 12 ++++++++++++
.../cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c | 12 ++++++++++++
.../cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_112_127_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c | 12 ++++++++++++
.../cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c | 14 ++++++++++++++
.../event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c | 13 +++++++++++++
.../cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c | 12 ++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_96_111_seg_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c | 12 ++++++++++++
.../event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c | 14 ++++++++++++++
drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c | 12 ++++++++++++
.../cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c | 14 ++++++++++++++
drivers/net/cnxk/rx/cn10k/rx_0_15.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_112_127.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_16_31.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_32_47.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_48_63.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_64_79.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_80_95.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/rx/cn10k/rx_96_111.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c | 11 +++++++++++
drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c | 12 ++++++++++++
168 files changed, 2128 insertions(+)
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
create mode 100644 drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_0_15.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_112_127.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_16_31.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_32_47.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_48_63.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_64_79.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_80_95.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_96_111.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
create mode 100644 drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15.c b/drivers/event/cnxk/deq/cn10k/deq_0_15.c
new file mode 100644
index 0000000000..7a0de2607d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
new file mode 100644
index 0000000000..3881d756a7
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
new file mode 100644
index 0000000000..dd0cd3ec0c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
new file mode 100644
index 0000000000..ac7055086c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
new file mode 100644
index 0000000000..2b10c7f8b7
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
new file mode 100644
index 0000000000..8f0084cae1
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
new file mode 100644
index 0000000000..9269c2f295
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
new file mode 100644
index 0000000000..8ad22ec3f6
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
new file mode 100644
index 0000000000..7a14e6667b
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..3a7d7d48cd
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
new file mode 100644
index 0000000000..743d39fcfb
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
new file mode 100644
index 0000000000..33929ec564
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
new file mode 100644
index 0000000000..d5cfd808e7
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
new file mode 100644
index 0000000000..feeeb32ddc
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
new file mode 100644
index 0000000000..70db3db251
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
new file mode 100644
index 0000000000..775c6aa59c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
new file mode 100644
index 0000000000..be92d8590f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_0_15_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127.c b/drivers/event/cnxk/deq/cn10k/deq_112_127.c
new file mode 100644
index 0000000000..5f805ceee3
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
new file mode 100644
index 0000000000..752046b04d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
new file mode 100644
index 0000000000..d45afe47ab
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
new file mode 100644
index 0000000000..44bda95229
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
new file mode 100644
index 0000000000..4f271f1aeb
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
new file mode 100644
index 0000000000..eced6ba67a
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
new file mode 100644
index 0000000000..998513580f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
new file mode 100644
index 0000000000..d36494c440
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
new file mode 100644
index 0000000000..a95d36e525
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..d5c6ee130b
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
new file mode 100644
index 0000000000..dc4bb70081
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
new file mode 100644
index 0000000000..686507569f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
new file mode 100644
index 0000000000..300ac31505
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
new file mode 100644
index 0000000000..80e6a8af81
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
new file mode 100644
index 0000000000..bab1e363e4
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
new file mode 100644
index 0000000000..a0ea84ea59
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
new file mode 100644
index 0000000000..c681b53a89
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_112_127_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31.c b/drivers/event/cnxk/deq/cn10k/deq_16_31.c
new file mode 100644
index 0000000000..f158b2d466
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
new file mode 100644
index 0000000000..f66d75750d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
new file mode 100644
index 0000000000..0b2537d6b1
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
new file mode 100644
index 0000000000..f2c423767e
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
new file mode 100644
index 0000000000..04879ac1c7
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
new file mode 100644
index 0000000000..e90186dd37
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
new file mode 100644
index 0000000000..17975bfc8f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
new file mode 100644
index 0000000000..88e92db853
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
new file mode 100644
index 0000000000..6ee5b696ea
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..a663ecf04c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
new file mode 100644
index 0000000000..769e2d873c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
new file mode 100644
index 0000000000..879d95ed2f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
new file mode 100644
index 0000000000..c888ac4298
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
new file mode 100644
index 0000000000..f583153dc0
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
new file mode 100644
index 0000000000..cd37befd54
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
new file mode 100644
index 0000000000..8a6fe5c18b
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
new file mode 100644
index 0000000000..ea2cac37e7
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_16_31_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47.c b/drivers/event/cnxk/deq/cn10k/deq_32_47.c
new file mode 100644
index 0000000000..545401cb8d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
new file mode 100644
index 0000000000..1410615811
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
new file mode 100644
index 0000000000..0b2351f55e
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
new file mode 100644
index 0000000000..3c58f2904f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
new file mode 100644
index 0000000000..57901350fb
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
new file mode 100644
index 0000000000..59f8823635
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
new file mode 100644
index 0000000000..f81b78dd70
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
new file mode 100644
index 0000000000..47d63faf83
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
new file mode 100644
index 0000000000..3e591fb17c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..12ad6ff981
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
new file mode 100644
index 0000000000..7882921949
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
new file mode 100644
index 0000000000..bba2c68d31
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
new file mode 100644
index 0000000000..023e9b0ceb
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
new file mode 100644
index 0000000000..8ab77f15c2
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
new file mode 100644
index 0000000000..e77056537d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
new file mode 100644
index 0000000000..36c6a608d1
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
new file mode 100644
index 0000000000..18eecfcd91
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_32_47_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63.c b/drivers/event/cnxk/deq/cn10k/deq_48_63.c
new file mode 100644
index 0000000000..9fbef9e75f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
new file mode 100644
index 0000000000..7ff6dc757c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
new file mode 100644
index 0000000000..0264cc6ca8
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
new file mode 100644
index 0000000000..05eefd224e
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
new file mode 100644
index 0000000000..cda078ccfd
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
new file mode 100644
index 0000000000..ed9bcb1c83
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
new file mode 100644
index 0000000000..c23b929213
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
new file mode 100644
index 0000000000..aceb756600
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
new file mode 100644
index 0000000000..d17974b4d0
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..4fa6f8f343
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
new file mode 100644
index 0000000000..8dffc60a82
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
new file mode 100644
index 0000000000..53d8080f60
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
new file mode 100644
index 0000000000..40e5ae0b0f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
new file mode 100644
index 0000000000..c6fcdd3fc1
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
new file mode 100644
index 0000000000..81ab65db02
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
new file mode 100644
index 0000000000..0c84ee5f49
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
new file mode 100644
index 0000000000..33f672fa91
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_48_63_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79.c b/drivers/event/cnxk/deq/cn10k/deq_64_79.c
new file mode 100644
index 0000000000..c45f2e51b7
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
new file mode 100644
index 0000000000..4986555dd1
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
new file mode 100644
index 0000000000..7a5a310718
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
new file mode 100644
index 0000000000..0e9c1fe024
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
new file mode 100644
index 0000000000..80d99f64af
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
new file mode 100644
index 0000000000..6a9e3ed703
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
new file mode 100644
index 0000000000..20ba3cc893
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
new file mode 100644
index 0000000000..4f9a87487f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
new file mode 100644
index 0000000000..273fb8afdc
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..62e167a605
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
new file mode 100644
index 0000000000..89a1de2c02
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
new file mode 100644
index 0000000000..37ce2869c1
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
new file mode 100644
index 0000000000..cadc67bb22
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
new file mode 100644
index 0000000000..4170072271
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
new file mode 100644
index 0000000000..f7c91ffe7d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
new file mode 100644
index 0000000000..36d23d46d9
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
new file mode 100644
index 0000000000..bd6aaee903
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_64_79_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95.c b/drivers/event/cnxk/deq/cn10k/deq_80_95.c
new file mode 100644
index 0000000000..48d0993718
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
new file mode 100644
index 0000000000..5b61304de0
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
new file mode 100644
index 0000000000..9dfb424d39
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
new file mode 100644
index 0000000000..ef95ebe15f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
new file mode 100644
index 0000000000..1cf7e487bb
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
new file mode 100644
index 0000000000..7f141f3fdc
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
new file mode 100644
index 0000000000..24c4d1bbe0
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
new file mode 100644
index 0000000000..c288b36c53
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
new file mode 100644
index 0000000000..4f78c7d482
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..d5c6d2654d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
new file mode 100644
index 0000000000..a1df8c1201
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
new file mode 100644
index 0000000000..23f220943d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
new file mode 100644
index 0000000000..d944d21c7f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
new file mode 100644
index 0000000000..972cc29a36
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
new file mode 100644
index 0000000000..0ceacb238b
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
new file mode 100644
index 0000000000..b62fd6fcbf
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
new file mode 100644
index 0000000000..99751c3ce5
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_80_95_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111.c b/drivers/event/cnxk/deq/cn10k/deq_96_111.c
new file mode 100644
index 0000000000..a7bfc18d3a
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ(cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
new file mode 100644
index 0000000000..7898dda73c
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_burst_##name, \
+ cn10k_sso_hws_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
new file mode 100644
index 0000000000..780417f637
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA(cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
new file mode 100644
index 0000000000..ec64592b2a
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_burst_##name, \
+ cn10k_sso_hws_deq_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
new file mode 100644
index 0000000000..36ab019f04
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_CA_SEG(cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
new file mode 100644
index 0000000000..99f35ecdea
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_ca_seg_burst_##name, \
+ cn10k_sso_hws_deq_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
new file mode 100644
index 0000000000..1060adc160
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_CA(cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
new file mode 100644
index 0000000000..e86afd1e76
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_ca_burst_##name, \
+ cn10k_sso_hws_deq_tmo_ca_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
new file mode 100644
index 0000000000..1b5932c10f
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg.c
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_DEQ_TMO_CA_SEG(cn10k_sso_hws_deq_tmo_ca_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
new file mode 100644
index 0000000000..01106e7cdd
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_ca_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#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)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
new file mode 100644
index 0000000000..c3aebeeb33
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_dual.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DUAL_DEQ(cn10k_sso_hws_dual_deq_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
new file mode 100644
index 0000000000..01d014e83b
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_SEG(cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
new file mode 100644
index 0000000000..ec4de71391
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_SEG_BURST(cn10k_sso_hws_deq_seg_burst_##name, \
+ cn10k_sso_hws_deq_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
new file mode 100644
index 0000000000..82c7b3723b
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO(cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
new file mode 100644
index 0000000000..732d26031d
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_burst_##name, \
+ cn10k_sso_hws_deq_tmo_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
new file mode 100644
index 0000000000..89fc8c8a62
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) SSO_DEQ_TMO_SEG(cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
new file mode 100644
index 0000000000..459d84f6fa
--- /dev/null
+++ b/drivers/event/cnxk/deq/cn10k/deq_96_111_tmo_seg_burst.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+#include "cnxk_eventdev.h"
+#include "cnxk_worker.h"
+
+#define R(name, flags) \
+ SSO_CMN_DEQ_BURST(cn10k_sso_hws_deq_tmo_seg_burst_##name, \
+ cn10k_sso_hws_deq_tmo_seg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15.c b/drivers/net/cnxk/rx/cn10k/rx_0_15.c
new file mode 100644
index 0000000000..0e78ad6396
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
new file mode 100644
index 0000000000..9807846d95
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
new file mode 100644
index 0000000000..b47776e852
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
new file mode 100644
index 0000000000..d841bc549e
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_0_15_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_0_15
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127.c b/drivers/net/cnxk/rx/cn10k/rx_112_127.c
new file mode 100644
index 0000000000..99d67fd072
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
new file mode 100644
index 0000000000..fa67beb71f
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
new file mode 100644
index 0000000000..ece5cbb20b
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
new file mode 100644
index 0000000000..1dbed97ddc
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_112_127_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_112_127
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31.c b/drivers/net/cnxk/rx/cn10k/rx_16_31.c
new file mode 100644
index 0000000000..91223ec1e1
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
new file mode 100644
index 0000000000..9c63f4054e
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
new file mode 100644
index 0000000000..5b36f7f5a2
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
new file mode 100644
index 0000000000..9799afedae
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_16_31_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_16_31
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47.c b/drivers/net/cnxk/rx/cn10k/rx_32_47.c
new file mode 100644
index 0000000000..c2fdd88f5e
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
new file mode 100644
index 0000000000..7061bd5098
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
new file mode 100644
index 0000000000..e095a7ec2e
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
new file mode 100644
index 0000000000..b462819e63
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_32_47_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_32_47
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63.c b/drivers/net/cnxk/rx/cn10k/rx_48_63.c
new file mode 100644
index 0000000000..9d9b6e00b3
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
new file mode 100644
index 0000000000..2e9c6d52c1
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
new file mode 100644
index 0000000000..334994561d
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
new file mode 100644
index 0000000000..7e3ce1d948
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_48_63_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_48_63
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79.c b/drivers/net/cnxk/rx/cn10k/rx_64_79.c
new file mode 100644
index 0000000000..851aa8f8fd
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
new file mode 100644
index 0000000000..872115aa13
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
new file mode 100644
index 0000000000..555d1f2a34
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
new file mode 100644
index 0000000000..ef33b2debb
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_64_79_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_64_79
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95.c b/drivers/net/cnxk/rx/cn10k/rx_80_95.c
new file mode 100644
index 0000000000..c051b9c927
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
new file mode 100644
index 0000000000..8a8f355fea
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
new file mode 100644
index 0000000000..83e7af53dd
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
new file mode 100644
index 0000000000..d6aad681bf
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_80_95_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_80_95
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111.c b/drivers/net/cnxk/rx/cn10k/rx_96_111.c
new file mode 100644
index 0000000000..c7aa062e0b
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV(cn10k_nix_recv_pkts_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
new file mode 100644
index 0000000000..05153b5916
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111_mseg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_MSEG(cn10k_nix_recv_pkts_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
new file mode 100644
index 0000000000..2127bb8f40
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) NIX_RX_RECV_VEC(cn10k_nix_recv_pkts_vec_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
diff --git a/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c
new file mode 100644
index 0000000000..6d2b98d566
--- /dev/null
+++ b/drivers/net/cnxk/rx/cn10k/rx_96_111_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+#define R(name, flags) \
+ NIX_RX_RECV_VEC_MSEG(cn10k_nix_recv_pkts_vec_mseg_##name, flags)
+
+NIX_RX_FASTPATH_MODES_96_111
+#undef R
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 6/8] net/cnxk: add CN10K template Rx functions to build
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
` (3 preceding siblings ...)
2021-12-13 8:22 ` [PATCH 5/8] net/cnxk: add CN10K segregated Rx functions pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
2021-12-13 8:22 ` [PATCH 7/8] net/cnxk: add CN10K segregated Tx functions pbhagavatula
2021-12-13 8:22 ` [PATCH 8/8] net/cnxk: add CN10K template Tx functions to build pbhagavatula
6 siblings, 0 replies; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao,
Anatoly Burakov
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN10K segregated Rx and event dequeue functions to build,
add macros to make future modifications simpler.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/cn10k_eventdev.c | 114 +++--
drivers/event/cnxk/cn10k_worker.h | 71 ++-
drivers/event/cnxk/cn10k_worker_deq.c | 44 --
drivers/event/cnxk/cn10k_worker_deq_burst.c | 29 --
drivers/event/cnxk/cn10k_worker_deq_ca.c | 65 ---
drivers/event/cnxk/cn10k_worker_deq_tmo.c | 72 ---
drivers/event/cnxk/meson.build | 135 +++++-
drivers/net/cnxk/cn10k_rx.h | 461 +++++++++-----------
drivers/net/cnxk/cn10k_rx_mseg.c | 17 -
drivers/net/cnxk/cn10k_rx_select.c | 67 +++
drivers/net/cnxk/cn10k_rx_vec.c | 19 -
drivers/net/cnxk/cn10k_rx_vec_mseg.c | 18 -
drivers/net/cnxk/meson.build | 40 +-
13 files changed, 570 insertions(+), 582 deletions(-)
delete mode 100644 drivers/event/cnxk/cn10k_worker_deq.c
delete mode 100644 drivers/event/cnxk/cn10k_worker_deq_burst.c
delete mode 100644 drivers/event/cnxk/cn10k_worker_deq_ca.c
delete mode 100644 drivers/event/cnxk/cn10k_worker_deq_tmo.c
delete mode 100644 drivers/net/cnxk/cn10k_rx_mseg.c
create mode 100644 drivers/net/cnxk/cn10k_rx_select.c
delete mode 100644 drivers/net/cnxk/cn10k_rx_vec.c
delete mode 100644 drivers/net/cnxk/cn10k_rx_vec_mseg.c
diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index c5a8c1ae8f..02f3d8235d 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -7,13 +7,7 @@
#include "cnxk_worker.h"
#define CN10K_SET_EVDEV_DEQ_OP(dev, deq_op, deq_ops) \
- (deq_op = deq_ops[!!(dev->rx_offloads & NIX_RX_OFFLOAD_SECURITY_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_VLAN_STRIP_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_TSTAMP_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_MARK_UPDATE_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_CHECKSUM_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_PTYPE_F)] \
- [!!(dev->rx_offloads & NIX_RX_OFFLOAD_RSS_F)])
+ deq_op = deq_ops[dev->rx_offloads & (NIX_RX_OFFLOAD_MAX - 1)]
#define CN10K_SET_EVDEV_ENQ_OP(dev, enq_op, enq_ops) \
(enq_op = \
@@ -291,95 +285,109 @@ static void
cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev)
{
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
- const event_dequeue_t sso_hws_deq[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_##name,
+ const event_dequeue_t sso_hws_deq[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_burst_t sso_hws_deq_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_burst_##name,
+ const event_dequeue_burst_t sso_hws_deq_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_tmo[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_tmo_##name,
+ const event_dequeue_t sso_hws_deq_tmo[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_burst_t
- sso_hws_deq_tmo_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_tmo_burst_##name,
- NIX_RX_FASTPATH_MODES
+ const event_dequeue_burst_t sso_hws_deq_tmo_burst[NIX_RX_OFFLOAD_MAX] =
+ {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_burst_##name,
+ NIX_RX_FASTPATH_MODES
#undef R
- };
+ };
- const event_dequeue_t sso_hws_deq_ca[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_ca_##name,
+ const event_dequeue_t sso_hws_deq_ca[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_ca_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_burst_t
- sso_hws_deq_ca_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_ca_burst_##name,
+ const event_dequeue_burst_t sso_hws_deq_ca_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_ca_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_seg_##name,
+ const event_dequeue_t sso_hws_deq_tmo_ca[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_ca_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_deq_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_seg_burst_##name,
+ sso_hws_deq_tmo_ca_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_ca_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_deq_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_seg_##name,
+
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_tmo_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_tmo_seg_##name,
+ const event_dequeue_burst_t sso_hws_deq_seg_burst[NIX_RX_OFFLOAD_MAX] =
+ {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_seg_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_deq_tmo_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_deq_tmo_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_tmo_seg_burst_##name,
+ sso_hws_deq_tmo_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_seg_burst_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
- const event_dequeue_t sso_hws_deq_ca_seg[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_ca_seg_##name,
+ const event_dequeue_t sso_hws_deq_ca_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_ca_seg_##name,
NIX_RX_FASTPATH_MODES
#undef R
};
const event_dequeue_burst_t
- sso_hws_deq_ca_seg_burst[2][2][2][2][2][2][2] = {
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_deq_ca_seg_burst_##name,
+ sso_hws_deq_ca_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_ca_seg_burst_##name,
NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const event_dequeue_t sso_hws_deq_tmo_ca_seg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_ca_seg_##name,
+ NIX_RX_FASTPATH_MODES
#undef R
};
+ const event_dequeue_burst_t
+ sso_hws_deq_tmo_ca_seg_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_sso_hws_deq_tmo_ca_seg_burst_##name,
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
/* Tx modes */
const event_tx_adapter_enqueue_t
sso_hws_tx_adptr_enq[2][2][2][2][2][2][2] = {
@@ -418,6 +426,12 @@ cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev)
CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
sso_hws_deq_ca_seg_burst);
}
+ if (dev->is_timeout_deq && dev->is_ca_internal_port) {
+ CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue,
+ sso_hws_deq_tmo_ca_seg);
+ CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
+ sso_hws_deq_tmo_ca_seg_burst);
+ }
} else {
CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue, sso_hws_deq);
CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
@@ -434,6 +448,12 @@ cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev)
CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
sso_hws_deq_ca_burst);
}
+ if (dev->is_timeout_deq && dev->is_ca_internal_port) {
+ CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue,
+ sso_hws_deq_tmo_ca);
+ CN10K_SET_EVDEV_DEQ_OP(dev, event_dev->dequeue_burst,
+ sso_hws_deq_tmo_ca_burst);
+ }
}
event_dev->ca_enqueue = cn10k_sso_hws_ca_enq;
diff --git a/drivers/event/cnxk/cn10k_worker.h b/drivers/event/cnxk/cn10k_worker.h
index f8331e88d7..160b90aa27 100644
--- a/drivers/event/cnxk/cn10k_worker.h
+++ b/drivers/event/cnxk/cn10k_worker.h
@@ -352,7 +352,7 @@ uint16_t __rte_hot cn10k_sso_hws_enq_fwd_burst(void *port,
uint16_t __rte_hot cn10k_sso_hws_ca_enq(void *port, struct rte_event ev[],
uint16_t nb_events);
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
+#define R(name, flags) \
uint16_t __rte_hot cn10k_sso_hws_deq_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn10k_sso_hws_deq_burst_##name( \
@@ -368,6 +368,11 @@ uint16_t __rte_hot cn10k_sso_hws_ca_enq(void *port, struct rte_event ev[],
uint16_t __rte_hot cn10k_sso_hws_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_deq_tmo_ca_##name( \
+ void *port, struct rte_event *ev, uint64_t timeout_ticks); \
+ uint16_t __rte_hot cn10k_sso_hws_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_deq_seg_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn10k_sso_hws_deq_seg_burst_##name( \
@@ -381,12 +386,76 @@ uint16_t __rte_hot cn10k_sso_hws_ca_enq(void *port, struct rte_event ev[],
uint16_t __rte_hot cn10k_sso_hws_deq_ca_seg_##name( \
void *port, struct rte_event *ev, uint64_t timeout_ticks); \
uint16_t __rte_hot cn10k_sso_hws_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_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);
NIX_RX_FASTPATH_MODES
#undef R
+#define SSO_DEQ(fn, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event *ev, \
+ uint64_t timeout_ticks) \
+ { \
+ struct cn10k_sso_hws *ws = port; \
+ \
+ RTE_SET_USED(timeout_ticks); \
+ if (ws->swtag_req) { \
+ ws->swtag_req = 0; \
+ cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
+ return 1; \
+ } \
+ return cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
+ }
+
+#define SSO_DEQ_SEG(fn, flags) SSO_DEQ(fn, flags | NIX_RX_MULTI_SEG_F)
+#define SSO_DEQ_CA(fn, flags) SSO_DEQ(fn, flags | CPT_RX_WQE_F)
+#define SSO_DEQ_CA_SEG(fn, flags) SSO_DEQ_SEG(fn, flags | CPT_RX_WQE_F)
+
+#define SSO_DEQ_TMO(fn, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event *ev, \
+ uint64_t timeout_ticks) \
+ { \
+ struct cn10k_sso_hws *ws = port; \
+ uint16_t ret = 1; \
+ uint64_t iter; \
+ \
+ if (ws->swtag_req) { \
+ ws->swtag_req = 0; \
+ cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
+ return ret; \
+ } \
+ ret = cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
+ for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
+ ret = cn10k_sso_hws_get_work(ws, ev, flags, \
+ ws->lookup_mem); \
+ return ret; \
+ }
+
+#define SSO_DEQ_TMO_SEG(fn, flags) SSO_DEQ_TMO(fn, flags | NIX_RX_MULTI_SEG_F)
+#define SSO_DEQ_TMO_CA(fn, flags) SSO_DEQ_TMO(fn, flags | CPT_RX_WQE_F)
+#define SSO_DEQ_TMO_CA_SEG(fn, flags) SSO_DEQ_TMO_SEG(fn, flags | CPT_RX_WQE_F)
+
+#define SSO_CMN_DEQ_BURST(fnb, fn, flags) \
+ uint16_t __rte_hot fnb(void *port, struct rte_event ev[], \
+ uint16_t nb_events, uint64_t timeout_ticks) \
+ { \
+ RTE_SET_USED(nb_events); \
+ return fn(port, ev, timeout_ticks); \
+ }
+
+#define SSO_CMN_DEQ_SEG_BURST(fnb, fn, flags) \
+ uint16_t __rte_hot fnb(void *port, struct rte_event ev[], \
+ uint16_t nb_events, uint64_t timeout_ticks) \
+ { \
+ RTE_SET_USED(nb_events); \
+ return fn(port, ev, timeout_ticks); \
+ }
+
static __rte_always_inline struct cn10k_eth_txq *
cn10k_sso_hws_xtract_meta(struct rte_mbuf *m,
const uint64_t txq_data[][RTE_MAX_QUEUES_PER_PORT])
diff --git a/drivers/event/cnxk/cn10k_worker_deq.c b/drivers/event/cnxk/cn10k_worker_deq.c
deleted file mode 100644
index 6083f69ffb..0000000000
--- a/drivers/event/cnxk/cn10k_worker_deq.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn10k_sso_hws_deq_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn10k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
- return 1; \
- } \
- \
- return cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn10k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
- return 1; \
- } \
- \
- return cn10k_sso_hws_get_work( \
- ws, ev, flags | NIX_RX_MULTI_SEG_F, ws->lookup_mem); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn10k_worker_deq_burst.c b/drivers/event/cnxk/cn10k_worker_deq_burst.c
deleted file mode 100644
index 8539d5d2ed..0000000000
--- a/drivers/event/cnxk/cn10k_worker_deq_burst.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn10k_sso_hws_deq_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn10k_sso_hws_deq_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn10k_sso_hws_deq_seg_##name(port, ev, timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn10k_worker_deq_ca.c b/drivers/event/cnxk/cn10k_worker_deq_ca.c
deleted file mode 100644
index 15c698edf8..0000000000
--- a/drivers/event/cnxk/cn10k_worker_deq_ca.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn10k_sso_hws_deq_ca_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn10k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
- return 1; \
- } \
- \
- return cn10k_sso_hws_get_work(ws, ev, flags | CPT_RX_WQE_F, \
- ws->lookup_mem); \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_ca_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn10k_sso_hws_deq_ca_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_ca_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn10k_sso_hws *ws = port; \
- \
- RTE_SET_USED(timeout_ticks); \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
- return 1; \
- } \
- \
- return cn10k_sso_hws_get_work( \
- ws, ev, flags | NIX_RX_MULTI_SEG_F | CPT_RX_WQE_F, \
- ws->lookup_mem); \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_ca_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn10k_sso_hws_deq_ca_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/cn10k_worker_deq_tmo.c b/drivers/event/cnxk/cn10k_worker_deq_tmo.c
deleted file mode 100644
index 537ae37170..0000000000
--- a/drivers/event/cnxk/cn10k_worker_deq_tmo.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_worker.h"
-#include "cnxk_eventdev.h"
-#include "cnxk_worker.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_hot cn10k_sso_hws_deq_tmo_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn10k_sso_hws *ws = port; \
- uint16_t ret = 1; \
- uint64_t iter; \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
- return ret; \
- } \
- \
- ret = cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
- for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
- ret = cn10k_sso_hws_get_work(ws, ev, flags, \
- ws->lookup_mem); \
- \
- return ret; \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_tmo_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn10k_sso_hws_deq_tmo_##name(port, ev, timeout_ticks); \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_tmo_seg_##name( \
- void *port, struct rte_event *ev, uint64_t timeout_ticks) \
- { \
- struct cn10k_sso_hws *ws = port; \
- uint16_t ret = 1; \
- uint64_t iter; \
- \
- if (ws->swtag_req) { \
- ws->swtag_req = 0; \
- cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
- return ret; \
- } \
- \
- ret = cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
- for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
- ret = cn10k_sso_hws_get_work(ws, ev, flags, \
- ws->lookup_mem); \
- \
- return ret; \
- } \
- \
- uint16_t __rte_hot cn10k_sso_hws_deq_tmo_seg_burst_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events, \
- uint64_t timeout_ticks) \
- { \
- RTE_SET_USED(nb_events); \
- \
- return cn10k_sso_hws_deq_tmo_seg_##name(port, ev, \
- timeout_ticks); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index c39515dadc..ac452fe451 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -13,10 +13,6 @@ sources = files(
'cn9k_worker.c',
'cn10k_eventdev.c',
'cn10k_worker.c',
- 'cn10k_worker_deq.c',
- 'cn10k_worker_deq_burst.c',
- 'cn10k_worker_deq_ca.c',
- 'cn10k_worker_deq_tmo.c',
'cn10k_worker_tx_enq.c',
'cn10k_worker_tx_enq_seg.c',
'cnxk_eventdev.c',
@@ -327,6 +323,137 @@ sources += files(
'tx/cn9k/tx_112_127_dual_seg.c',
)
+sources += files(
+ 'deq/cn10k/deq_0_15_burst.c',
+ 'deq/cn10k/deq_16_31_burst.c',
+ 'deq/cn10k/deq_32_47_burst.c',
+ 'deq/cn10k/deq_48_63_burst.c',
+ 'deq/cn10k/deq_64_79_burst.c',
+ 'deq/cn10k/deq_80_95_burst.c',
+ 'deq/cn10k/deq_96_111_burst.c',
+ 'deq/cn10k/deq_112_127_burst.c',
+ 'deq/cn10k/deq_0_15_seg_burst.c',
+ 'deq/cn10k/deq_16_31_seg_burst.c',
+ 'deq/cn10k/deq_32_47_seg_burst.c',
+ 'deq/cn10k/deq_48_63_seg_burst.c',
+ 'deq/cn10k/deq_64_79_seg_burst.c',
+ 'deq/cn10k/deq_80_95_seg_burst.c',
+ 'deq/cn10k/deq_96_111_seg_burst.c',
+ 'deq/cn10k/deq_112_127_seg_burst.c',
+ 'deq/cn10k/deq_0_15.c',
+ 'deq/cn10k/deq_16_31.c',
+ 'deq/cn10k/deq_32_47.c',
+ 'deq/cn10k/deq_48_63.c',
+ 'deq/cn10k/deq_64_79.c',
+ 'deq/cn10k/deq_80_95.c',
+ 'deq/cn10k/deq_96_111.c',
+ 'deq/cn10k/deq_112_127.c',
+ 'deq/cn10k/deq_0_15_seg.c',
+ 'deq/cn10k/deq_16_31_seg.c',
+ 'deq/cn10k/deq_32_47_seg.c',
+ 'deq/cn10k/deq_48_63_seg.c',
+ 'deq/cn10k/deq_64_79_seg.c',
+ 'deq/cn10k/deq_80_95_seg.c',
+ 'deq/cn10k/deq_96_111_seg.c',
+ 'deq/cn10k/deq_112_127_seg.c',
+ 'deq/cn10k/deq_0_15_tmo.c',
+ 'deq/cn10k/deq_16_31_tmo.c',
+ 'deq/cn10k/deq_32_47_tmo.c',
+ 'deq/cn10k/deq_48_63_tmo.c',
+ 'deq/cn10k/deq_64_79_tmo.c',
+ 'deq/cn10k/deq_80_95_tmo.c',
+ 'deq/cn10k/deq_96_111_tmo.c',
+ 'deq/cn10k/deq_112_127_tmo.c',
+ 'deq/cn10k/deq_0_15_tmo_burst.c',
+ 'deq/cn10k/deq_16_31_tmo_burst.c',
+ 'deq/cn10k/deq_32_47_tmo_burst.c',
+ 'deq/cn10k/deq_48_63_tmo_burst.c',
+ 'deq/cn10k/deq_64_79_tmo_burst.c',
+ 'deq/cn10k/deq_80_95_tmo_burst.c',
+ 'deq/cn10k/deq_96_111_tmo_burst.c',
+ 'deq/cn10k/deq_112_127_tmo_burst.c',
+ 'deq/cn10k/deq_0_15_tmo_seg.c',
+ 'deq/cn10k/deq_16_31_tmo_seg.c',
+ 'deq/cn10k/deq_32_47_tmo_seg.c',
+ 'deq/cn10k/deq_48_63_tmo_seg.c',
+ 'deq/cn10k/deq_64_79_tmo_seg.c',
+ 'deq/cn10k/deq_80_95_tmo_seg.c',
+ 'deq/cn10k/deq_96_111_tmo_seg.c',
+ 'deq/cn10k/deq_112_127_tmo_seg.c',
+ 'deq/cn10k/deq_0_15_tmo_seg_burst.c',
+ 'deq/cn10k/deq_16_31_tmo_seg_burst.c',
+ 'deq/cn10k/deq_32_47_tmo_seg_burst.c',
+ 'deq/cn10k/deq_48_63_tmo_seg_burst.c',
+ 'deq/cn10k/deq_64_79_tmo_seg_burst.c',
+ 'deq/cn10k/deq_80_95_tmo_seg_burst.c',
+ 'deq/cn10k/deq_96_111_tmo_seg_burst.c',
+ 'deq/cn10k/deq_112_127_tmo_seg_burst.c',
+ 'deq/cn10k/deq_0_15_ca.c',
+ 'deq/cn10k/deq_16_31_ca.c',
+ 'deq/cn10k/deq_32_47_ca.c',
+ 'deq/cn10k/deq_48_63_ca.c',
+ 'deq/cn10k/deq_64_79_ca.c',
+ 'deq/cn10k/deq_80_95_ca.c',
+ 'deq/cn10k/deq_96_111_ca.c',
+ 'deq/cn10k/deq_112_127_ca.c',
+ 'deq/cn10k/deq_0_15_ca_burst.c',
+ 'deq/cn10k/deq_16_31_ca_burst.c',
+ 'deq/cn10k/deq_32_47_ca_burst.c',
+ 'deq/cn10k/deq_48_63_ca_burst.c',
+ 'deq/cn10k/deq_64_79_ca_burst.c',
+ 'deq/cn10k/deq_80_95_ca_burst.c',
+ 'deq/cn10k/deq_96_111_ca_burst.c',
+ 'deq/cn10k/deq_112_127_ca_burst.c',
+ 'deq/cn10k/deq_0_15_ca_seg.c',
+ 'deq/cn10k/deq_16_31_ca_seg.c',
+ 'deq/cn10k/deq_32_47_ca_seg.c',
+ 'deq/cn10k/deq_48_63_ca_seg.c',
+ 'deq/cn10k/deq_64_79_ca_seg.c',
+ 'deq/cn10k/deq_80_95_ca_seg.c',
+ 'deq/cn10k/deq_96_111_ca_seg.c',
+ 'deq/cn10k/deq_112_127_ca_seg.c',
+ 'deq/cn10k/deq_0_15_ca_seg_burst.c',
+ 'deq/cn10k/deq_16_31_ca_seg_burst.c',
+ 'deq/cn10k/deq_32_47_ca_seg_burst.c',
+ 'deq/cn10k/deq_48_63_ca_seg_burst.c',
+ 'deq/cn10k/deq_64_79_ca_seg_burst.c',
+ 'deq/cn10k/deq_80_95_ca_seg_burst.c',
+ 'deq/cn10k/deq_96_111_ca_seg_burst.c',
+ 'deq/cn10k/deq_112_127_ca_seg_burst.c',
+ 'deq/cn10k/deq_0_15_ca_tmo.c',
+ 'deq/cn10k/deq_16_31_ca_tmo.c',
+ 'deq/cn10k/deq_32_47_ca_tmo.c',
+ 'deq/cn10k/deq_48_63_ca_tmo.c',
+ 'deq/cn10k/deq_64_79_ca_tmo.c',
+ 'deq/cn10k/deq_80_95_ca_tmo.c',
+ 'deq/cn10k/deq_96_111_ca_tmo.c',
+ 'deq/cn10k/deq_112_127_ca_tmo.c',
+ 'deq/cn10k/deq_0_15_ca_tmo_burst.c',
+ 'deq/cn10k/deq_16_31_ca_tmo_burst.c',
+ 'deq/cn10k/deq_32_47_ca_tmo_burst.c',
+ 'deq/cn10k/deq_48_63_ca_tmo_burst.c',
+ 'deq/cn10k/deq_64_79_ca_tmo_burst.c',
+ 'deq/cn10k/deq_80_95_ca_tmo_burst.c',
+ 'deq/cn10k/deq_96_111_ca_tmo_burst.c',
+ 'deq/cn10k/deq_112_127_ca_tmo_burst.c',
+ 'deq/cn10k/deq_0_15_ca_tmo_seg.c',
+ 'deq/cn10k/deq_16_31_ca_tmo_seg.c',
+ 'deq/cn10k/deq_32_47_ca_tmo_seg.c',
+ 'deq/cn10k/deq_48_63_ca_tmo_seg.c',
+ 'deq/cn10k/deq_64_79_ca_tmo_seg.c',
+ 'deq/cn10k/deq_80_95_ca_tmo_seg.c',
+ 'deq/cn10k/deq_96_111_ca_tmo_seg.c',
+ 'deq/cn10k/deq_112_127_ca_tmo_seg.c',
+ 'deq/cn10k/deq_0_15_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_16_31_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_32_47_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_48_63_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_64_79_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_80_95_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_96_111_ca_tmo_seg_burst.c',
+ 'deq/cn10k/deq_112_127_ca_tmo_seg_burst.c',
+)
+
extra_flags = ['-flax-vector-conversions', '-Wno-strict-aliasing']
foreach flag: extra_flags
if cc.has_argument(flag)
diff --git a/drivers/net/cnxk/cn10k_rx.h b/drivers/net/cnxk/cn10k_rx.h
index fe408907a6..a2442d3726 100644
--- a/drivers/net/cnxk/cn10k_rx.h
+++ b/drivers/net/cnxk/cn10k_rx.h
@@ -17,6 +17,7 @@
#define NIX_RX_OFFLOAD_TSTAMP_F BIT(4)
#define NIX_RX_OFFLOAD_VLAN_STRIP_F BIT(5)
#define NIX_RX_OFFLOAD_SECURITY_F BIT(6)
+#define NIX_RX_OFFLOAD_MAX (NIX_RX_OFFLOAD_SECURITY_F << 1)
/* Flags to control cqe_to_mbuf conversion function.
* Defining it from backwards to denote its been
@@ -987,278 +988,214 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
#define R_SEC_F NIX_RX_OFFLOAD_SECURITY_F
/* [R_SEC_F] [RX_VLAN_F] [TS] [MARK] [CKSUM] [PTYPE] [RSS] */
-#define NIX_RX_FASTPATH_MODES \
-R(no_offload, 0, 0, 0, 0, 0, 0, 0, \
- NIX_RX_OFFLOAD_NONE) \
-R(rss, 0, 0, 0, 0, 0, 0, 1, \
- RSS_F) \
-R(ptype, 0, 0, 0, 0, 0, 1, 0, \
- PTYPE_F) \
-R(ptype_rss, 0, 0, 0, 0, 0, 1, 1, \
- PTYPE_F | RSS_F) \
-R(cksum, 0, 0, 0, 0, 1, 0, 0, \
- CKSUM_F) \
-R(cksum_rss, 0, 0, 0, 0, 1, 0, 1, \
- CKSUM_F | RSS_F) \
-R(cksum_ptype, 0, 0, 0, 0, 1, 1, 0, \
- CKSUM_F | PTYPE_F) \
-R(cksum_ptype_rss, 0, 0, 0, 0, 1, 1, 1, \
- CKSUM_F | PTYPE_F | RSS_F) \
-R(mark, 0, 0, 0, 1, 0, 0, 0, \
- MARK_F) \
-R(mark_rss, 0, 0, 0, 1, 0, 0, 1, \
- MARK_F | RSS_F) \
-R(mark_ptype, 0, 0, 0, 1, 0, 1, 0, \
- MARK_F | PTYPE_F) \
-R(mark_ptype_rss, 0, 0, 0, 1, 0, 1, 1, \
- MARK_F | PTYPE_F | RSS_F) \
-R(mark_cksum, 0, 0, 0, 1, 1, 0, 0, \
- MARK_F | CKSUM_F) \
-R(mark_cksum_rss, 0, 0, 0, 1, 1, 0, 1, \
- MARK_F | CKSUM_F | RSS_F) \
-R(mark_cksum_ptype, 0, 0, 0, 1, 1, 1, 0, \
- MARK_F | CKSUM_F | PTYPE_F) \
-R(mark_cksum_ptype_rss, 0, 0, 0, 1, 1, 1, 1, \
- MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(ts, 0, 0, 1, 0, 0, 0, 0, \
- TS_F) \
-R(ts_rss, 0, 0, 1, 0, 0, 0, 1, \
- TS_F | RSS_F) \
-R(ts_ptype, 0, 0, 1, 0, 0, 1, 0, \
- TS_F | PTYPE_F) \
-R(ts_ptype_rss, 0, 0, 1, 0, 0, 1, 1, \
- TS_F | PTYPE_F | RSS_F) \
-R(ts_cksum, 0, 0, 1, 0, 1, 0, 0, \
- TS_F | CKSUM_F) \
-R(ts_cksum_rss, 0, 0, 1, 0, 1, 0, 1, \
- TS_F | CKSUM_F | RSS_F) \
-R(ts_cksum_ptype, 0, 0, 1, 0, 1, 1, 0, \
- TS_F | CKSUM_F | PTYPE_F) \
-R(ts_cksum_ptype_rss, 0, 0, 1, 0, 1, 1, 1, \
- TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(ts_mark, 0, 0, 1, 1, 0, 0, 0, \
- TS_F | MARK_F) \
-R(ts_mark_rss, 0, 0, 1, 1, 0, 0, 1, \
- TS_F | MARK_F | RSS_F) \
-R(ts_mark_ptype, 0, 0, 1, 1, 0, 1, 0, \
- TS_F | MARK_F | PTYPE_F) \
-R(ts_mark_ptype_rss, 0, 0, 1, 1, 0, 1, 1, \
- TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(ts_mark_cksum, 0, 0, 1, 1, 1, 0, 0, \
- TS_F | MARK_F | CKSUM_F) \
-R(ts_mark_cksum_rss, 0, 0, 1, 1, 1, 0, 1, \
- TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(ts_mark_cksum_ptype, 0, 0, 1, 1, 1, 1, 0, \
- TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(ts_mark_cksum_ptype_rss, 0, 0, 1, 1, 1, 1, 1, \
- TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan, 0, 1, 0, 0, 0, 0, 0, \
- RX_VLAN_F) \
-R(vlan_rss, 0, 1, 0, 0, 0, 0, 1, \
- RX_VLAN_F | RSS_F) \
-R(vlan_ptype, 0, 1, 0, 0, 0, 1, 0, \
- RX_VLAN_F | PTYPE_F) \
-R(vlan_ptype_rss, 0, 1, 0, 0, 0, 1, 1, \
- RX_VLAN_F | PTYPE_F | RSS_F) \
-R(vlan_cksum, 0, 1, 0, 0, 1, 0, 0, \
- RX_VLAN_F | CKSUM_F) \
-R(vlan_cksum_rss, 0, 1, 0, 0, 1, 0, 1, \
- RX_VLAN_F | CKSUM_F | RSS_F) \
-R(vlan_cksum_ptype, 0, 1, 0, 0, 1, 1, 0, \
- RX_VLAN_F | CKSUM_F | PTYPE_F) \
-R(vlan_cksum_ptype_rss, 0, 1, 0, 0, 1, 1, 1, \
- RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan_mark, 0, 1, 0, 1, 0, 0, 0, \
- RX_VLAN_F | MARK_F) \
-R(vlan_mark_rss, 0, 1, 0, 1, 0, 0, 1, \
- RX_VLAN_F | MARK_F | RSS_F) \
-R(vlan_mark_ptype, 0, 1, 0, 1, 0, 1, 0, \
- RX_VLAN_F | MARK_F | PTYPE_F) \
-R(vlan_mark_ptype_rss, 0, 1, 0, 1, 0, 1, 1, \
- RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
-R(vlan_mark_cksum, 0, 1, 0, 1, 1, 0, 0, \
- RX_VLAN_F | MARK_F | CKSUM_F) \
-R(vlan_mark_cksum_rss, 0, 1, 0, 1, 1, 0, 1, \
- RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
-R(vlan_mark_cksum_ptype, 0, 1, 0, 1, 1, 1, 0, \
- RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(vlan_mark_cksum_ptype_rss, 0, 1, 0, 1, 1, 1, 1, \
- RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan_ts, 0, 1, 1, 0, 0, 0, 0, \
- RX_VLAN_F | TS_F) \
-R(vlan_ts_rss, 0, 1, 1, 0, 0, 0, 1, \
- RX_VLAN_F | TS_F | RSS_F) \
-R(vlan_ts_ptype, 0, 1, 1, 0, 0, 1, 0, \
- RX_VLAN_F | TS_F | PTYPE_F) \
-R(vlan_ts_ptype_rss, 0, 1, 1, 0, 0, 1, 1, \
- RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
-R(vlan_ts_cksum, 0, 1, 1, 0, 1, 0, 0, \
- RX_VLAN_F | TS_F | CKSUM_F) \
-R(vlan_ts_cksum_rss, 0, 1, 1, 0, 1, 0, 1, \
- RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
-R(vlan_ts_cksum_ptype, 0, 1, 1, 0, 1, 1, 0, \
- RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
-R(vlan_ts_cksum_ptype_rss, 0, 1, 1, 0, 1, 1, 1, \
- RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(vlan_ts_mark, 0, 1, 1, 1, 0, 0, 0, \
- RX_VLAN_F | TS_F | MARK_F) \
-R(vlan_ts_mark_rss, 0, 1, 1, 1, 0, 0, 1, \
- RX_VLAN_F | TS_F | MARK_F | RSS_F) \
-R(vlan_ts_mark_ptype, 0, 1, 1, 1, 0, 1, 0, \
- RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
-R(vlan_ts_mark_ptype_rss, 0, 1, 1, 1, 0, 1, 1, \
- RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(vlan_ts_mark_cksum, 0, 1, 1, 1, 1, 0, 0, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
-R(vlan_ts_mark_cksum_rss, 0, 1, 1, 1, 1, 0, 1, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(vlan_ts_mark_cksum_ptype, 0, 1, 1, 1, 1, 1, 0, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(vlan_ts_mark_cksum_ptype_rss, 0, 1, 1, 1, 1, 1, 1, \
- RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec, 1, 0, 0, 0, 0, 0, 0, \
- R_SEC_F) \
-R(sec_rss, 1, 0, 0, 0, 0, 0, 1, \
- RSS_F) \
-R(sec_ptype, 1, 0, 0, 0, 0, 1, 0, \
- R_SEC_F | PTYPE_F) \
-R(sec_ptype_rss, 1, 0, 0, 0, 0, 1, 1, \
- R_SEC_F | PTYPE_F | RSS_F) \
-R(sec_cksum, 1, 0, 0, 0, 1, 0, 0, \
- R_SEC_F | CKSUM_F) \
-R(sec_cksum_rss, 1, 0, 0, 0, 1, 0, 1, \
- R_SEC_F | CKSUM_F | RSS_F) \
-R(sec_cksum_ptype, 1, 0, 0, 0, 1, 1, 0, \
- R_SEC_F | CKSUM_F | PTYPE_F) \
-R(sec_cksum_ptype_rss, 1, 0, 0, 0, 1, 1, 1, \
- R_SEC_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_mark, 1, 0, 0, 1, 0, 0, 0, \
- R_SEC_F | MARK_F) \
-R(sec_mark_rss, 1, 0, 0, 1, 0, 0, 1, \
- R_SEC_F | MARK_F | RSS_F) \
-R(sec_mark_ptype, 1, 0, 0, 1, 0, 1, 0, \
- R_SEC_F | MARK_F | PTYPE_F) \
-R(sec_mark_ptype_rss, 1, 0, 0, 1, 0, 1, 1, \
- R_SEC_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_mark_cksum, 1, 0, 0, 1, 1, 0, 0, \
- R_SEC_F | MARK_F | CKSUM_F) \
-R(sec_mark_cksum_rss, 1, 0, 0, 1, 1, 0, 1, \
- R_SEC_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_mark_cksum_ptype, 1, 0, 0, 1, 1, 1, 0, \
- R_SEC_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_mark_cksum_ptype_rss, 1, 0, 0, 1, 1, 1, 1, \
- R_SEC_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_ts, 1, 0, 1, 0, 0, 0, 0, \
- R_SEC_F | TS_F) \
-R(sec_ts_rss, 1, 0, 1, 0, 0, 0, 1, \
- R_SEC_F | TS_F | RSS_F) \
-R(sec_ts_ptype, 1, 0, 1, 0, 0, 1, 0, \
- R_SEC_F | TS_F | PTYPE_F) \
-R(sec_ts_ptype_rss, 1, 0, 1, 0, 0, 1, 1, \
- R_SEC_F | TS_F | PTYPE_F | RSS_F) \
-R(sec_ts_cksum, 1, 0, 1, 0, 1, 0, 0, \
- R_SEC_F | TS_F | CKSUM_F) \
-R(sec_ts_cksum_rss, 1, 0, 1, 0, 1, 0, 1, \
- R_SEC_F | TS_F | CKSUM_F | RSS_F) \
-R(sec_ts_cksum_ptype, 1, 0, 1, 0, 1, 1, 0, \
- R_SEC_F | TS_F | CKSUM_F | PTYPE_F) \
-R(sec_ts_cksum_ptype_rss, 1, 0, 1, 0, 1, 1, 1, \
- R_SEC_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_ts_mark, 1, 0, 1, 1, 0, 0, 0, \
- R_SEC_F | TS_F | MARK_F) \
-R(sec_ts_mark_rss, 1, 0, 1, 1, 0, 0, 1, \
- R_SEC_F | TS_F | MARK_F | RSS_F) \
-R(sec_ts_mark_ptype, 1, 0, 1, 1, 0, 1, 0, \
- R_SEC_F | TS_F | MARK_F | PTYPE_F) \
-R(sec_ts_mark_ptype_rss, 1, 0, 1, 1, 0, 1, 1, \
- R_SEC_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_ts_mark_cksum, 1, 0, 1, 1, 1, 0, 0, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F) \
-R(sec_ts_mark_cksum_rss, 1, 0, 1, 1, 1, 0, 1, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_ts_mark_cksum_ptype, 1, 0, 1, 1, 1, 1, 0, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_ts_mark_cksum_ptype_rss, 1, 0, 1, 1, 1, 1, 1, \
- R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan, 1, 1, 0, 0, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F) \
-R(sec_vlan_rss, 1, 1, 0, 0, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | RSS_F) \
-R(sec_vlan_ptype, 1, 1, 0, 0, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | PTYPE_F) \
-R(sec_vlan_ptype_rss, 1, 1, 0, 0, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | PTYPE_F | RSS_F) \
-R(sec_vlan_cksum, 1, 1, 0, 0, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | CKSUM_F) \
-R(sec_vlan_cksum_rss, 1, 1, 0, 0, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | CKSUM_F | RSS_F) \
-R(sec_vlan_cksum_ptype, 1, 1, 0, 0, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_cksum_ptype_rss, 1, 1, 0, 0, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan_mark, 1, 1, 0, 1, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F) \
-R(sec_vlan_mark_rss, 1, 1, 0, 1, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | RSS_F) \
-R(sec_vlan_mark_ptype, 1, 1, 0, 1, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F) \
-R(sec_vlan_mark_ptype_rss, 1, 1, 0, 1, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_vlan_mark_cksum, 1, 1, 0, 1, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F) \
-R(sec_vlan_mark_cksum_rss, 1, 1, 0, 1, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_vlan_mark_cksum_ptype, 1, 1, 0, 1, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_mark_cksum_ptype_rss, 1, 1, 0, 1, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts, 1, 1, 1, 0, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F) \
-R(sec_vlan_ts_rss, 1, 1, 1, 0, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | RSS_F) \
-R(sec_vlan_ts_ptype, 1, 1, 1, 0, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F) \
-R(sec_vlan_ts_ptype_rss, 1, 1, 1, 0, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts_cksum, 1, 1, 1, 0, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F) \
-R(sec_vlan_ts_cksum_rss, 1, 1, 1, 0, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
-R(sec_vlan_ts_cksum_ptype, 1, 1, 1, 0, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_ts_cksum_ptype_rss, 1, 1, 1, 0, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts_mark, 1, 1, 1, 1, 0, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F) \
-R(sec_vlan_ts_mark_rss, 1, 1, 1, 1, 0, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | RSS_F) \
-R(sec_vlan_ts_mark_ptype, 1, 1, 1, 1, 0, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
-R(sec_vlan_ts_mark_ptype_rss, 1, 1, 1, 1, 0, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
-R(sec_vlan_ts_mark_cksum, 1, 1, 1, 1, 1, 0, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
-R(sec_vlan_ts_mark_cksum_rss, 1, 1, 1, 1, 1, 0, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
-R(sec_vlan_ts_mark_cksum_ptype, 1, 1, 1, 1, 1, 1, 0, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
-R(sec_vlan_ts_mark_cksum_ptype_rss, 1, 1, 1, 1, 1, 1, 1, \
- R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
+#define NIX_RX_FASTPATH_MODES_0_15 \
+ R(no_offload, NIX_RX_OFFLOAD_NONE) \
+ R(rss, RSS_F) \
+ R(ptype, PTYPE_F) \
+ R(ptype_rss, PTYPE_F | RSS_F) \
+ R(cksum, CKSUM_F) \
+ R(cksum_rss, CKSUM_F | RSS_F) \
+ R(cksum_ptype, CKSUM_F | PTYPE_F) \
+ R(cksum_ptype_rss, CKSUM_F | PTYPE_F | RSS_F) \
+ R(mark, MARK_F) \
+ R(mark_rss, MARK_F | RSS_F) \
+ R(mark_ptype, MARK_F | PTYPE_F) \
+ R(mark_ptype_rss, MARK_F | PTYPE_F | RSS_F) \
+ R(mark_cksum, MARK_F | CKSUM_F) \
+ R(mark_cksum_rss, MARK_F | CKSUM_F | RSS_F) \
+ R(mark_cksum_ptype, MARK_F | CKSUM_F | PTYPE_F) \
+ R(mark_cksum_ptype_rss, MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_16_31 \
+ R(ts, TS_F) \
+ R(ts_rss, TS_F | RSS_F) \
+ R(ts_ptype, TS_F | PTYPE_F) \
+ R(ts_ptype_rss, TS_F | PTYPE_F | RSS_F) \
+ R(ts_cksum, TS_F | CKSUM_F) \
+ R(ts_cksum_rss, TS_F | CKSUM_F | RSS_F) \
+ R(ts_cksum_ptype, TS_F | CKSUM_F | PTYPE_F) \
+ R(ts_cksum_ptype_rss, TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(ts_mark, TS_F | MARK_F) \
+ R(ts_mark_rss, TS_F | MARK_F | RSS_F) \
+ R(ts_mark_ptype, TS_F | MARK_F | PTYPE_F) \
+ R(ts_mark_ptype_rss, TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(ts_mark_cksum, TS_F | MARK_F | CKSUM_F) \
+ R(ts_mark_cksum_rss, TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(ts_mark_cksum_ptype, TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(ts_mark_cksum_ptype_rss, TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_32_47 \
+ R(vlan, RX_VLAN_F) \
+ R(vlan_rss, RX_VLAN_F | RSS_F) \
+ R(vlan_ptype, RX_VLAN_F | PTYPE_F) \
+ R(vlan_ptype_rss, RX_VLAN_F | PTYPE_F | RSS_F) \
+ R(vlan_cksum, RX_VLAN_F | CKSUM_F) \
+ R(vlan_cksum_rss, RX_VLAN_F | CKSUM_F | RSS_F) \
+ R(vlan_cksum_ptype, RX_VLAN_F | CKSUM_F | PTYPE_F) \
+ R(vlan_cksum_ptype_rss, RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(vlan_mark, RX_VLAN_F | MARK_F) \
+ R(vlan_mark_rss, RX_VLAN_F | MARK_F | RSS_F) \
+ R(vlan_mark_ptype, RX_VLAN_F | MARK_F | PTYPE_F) \
+ R(vlan_mark_ptype_rss, RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
+ R(vlan_mark_cksum, RX_VLAN_F | MARK_F | CKSUM_F) \
+ R(vlan_mark_cksum_rss, RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
+ R(vlan_mark_cksum_ptype, RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(vlan_mark_cksum_ptype_rss, \
+ RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_48_63 \
+ R(vlan_ts, RX_VLAN_F | TS_F) \
+ R(vlan_ts_rss, RX_VLAN_F | TS_F | RSS_F) \
+ R(vlan_ts_ptype, RX_VLAN_F | TS_F | PTYPE_F) \
+ R(vlan_ts_ptype_rss, RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
+ R(vlan_ts_cksum, RX_VLAN_F | TS_F | CKSUM_F) \
+ R(vlan_ts_cksum_rss, RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
+ R(vlan_ts_cksum_ptype, RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
+ R(vlan_ts_cksum_ptype_rss, \
+ RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(vlan_ts_mark, RX_VLAN_F | TS_F | MARK_F) \
+ R(vlan_ts_mark_rss, RX_VLAN_F | TS_F | MARK_F | RSS_F) \
+ R(vlan_ts_mark_ptype, RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
+ R(vlan_ts_mark_ptype_rss, RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(vlan_ts_mark_cksum, RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
+ R(vlan_ts_mark_cksum_rss, RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(vlan_ts_mark_cksum_ptype, \
+ RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(vlan_ts_mark_cksum_ptype_rss, \
+ RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_64_79 \
+ R(sec, R_SEC_F) \
+ R(sec_rss, R_SEC_F | RSS_F) \
+ R(sec_ptype, R_SEC_F | PTYPE_F) \
+ R(sec_ptype_rss, R_SEC_F | PTYPE_F | RSS_F) \
+ R(sec_cksum, R_SEC_F | CKSUM_F) \
+ R(sec_cksum_rss, R_SEC_F | CKSUM_F | RSS_F) \
+ R(sec_cksum_ptype, R_SEC_F | CKSUM_F | PTYPE_F) \
+ R(sec_cksum_ptype_rss, R_SEC_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_mark, R_SEC_F | MARK_F) \
+ R(sec_mark_rss, R_SEC_F | MARK_F | RSS_F) \
+ R(sec_mark_ptype, R_SEC_F | MARK_F | PTYPE_F) \
+ R(sec_mark_ptype_rss, R_SEC_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_mark_cksum, R_SEC_F | MARK_F | CKSUM_F) \
+ R(sec_mark_cksum_rss, R_SEC_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_mark_cksum_ptype, R_SEC_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(sec_mark_cksum_ptype_rss, \
+ R_SEC_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_80_95 \
+ R(sec_ts, R_SEC_F | TS_F) \
+ R(sec_ts_rss, R_SEC_F | TS_F | RSS_F) \
+ R(sec_ts_ptype, R_SEC_F | TS_F | PTYPE_F) \
+ R(sec_ts_ptype_rss, R_SEC_F | TS_F | PTYPE_F | RSS_F) \
+ R(sec_ts_cksum, R_SEC_F | TS_F | CKSUM_F) \
+ R(sec_ts_cksum_rss, R_SEC_F | TS_F | CKSUM_F | RSS_F) \
+ R(sec_ts_cksum_ptype, R_SEC_F | TS_F | CKSUM_F | PTYPE_F) \
+ R(sec_ts_cksum_ptype_rss, R_SEC_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_ts_mark, R_SEC_F | TS_F | MARK_F) \
+ R(sec_ts_mark_rss, R_SEC_F | TS_F | MARK_F | RSS_F) \
+ R(sec_ts_mark_ptype, R_SEC_F | TS_F | MARK_F | PTYPE_F) \
+ R(sec_ts_mark_ptype_rss, R_SEC_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_ts_mark_cksum, R_SEC_F | TS_F | MARK_F | CKSUM_F) \
+ R(sec_ts_mark_cksum_rss, R_SEC_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_ts_mark_cksum_ptype, \
+ R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(sec_ts_mark_cksum_ptype_rss, \
+ R_SEC_F | TS_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_96_111 \
+ R(sec_vlan, R_SEC_F | RX_VLAN_F) \
+ R(sec_vlan_rss, R_SEC_F | RX_VLAN_F | RSS_F) \
+ R(sec_vlan_ptype, R_SEC_F | RX_VLAN_F | PTYPE_F) \
+ R(sec_vlan_ptype_rss, R_SEC_F | RX_VLAN_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_cksum, R_SEC_F | RX_VLAN_F | CKSUM_F) \
+ R(sec_vlan_cksum_rss, R_SEC_F | RX_VLAN_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_cksum_ptype, R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F) \
+ R(sec_vlan_cksum_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_mark, R_SEC_F | RX_VLAN_F | MARK_F) \
+ R(sec_vlan_mark_rss, R_SEC_F | RX_VLAN_F | MARK_F | RSS_F) \
+ R(sec_vlan_mark_ptype, R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F) \
+ R(sec_vlan_mark_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_mark_cksum, R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F) \
+ R(sec_vlan_mark_cksum_rss, \
+ R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_mark_cksum_ptype, \
+ R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F) \
+ R(sec_vlan_mark_cksum_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | MARK_F | CKSUM_F | PTYPE_F | RSS_F)
+
+#define NIX_RX_FASTPATH_MODES_112_127 \
+ R(sec_vlan_ts, R_SEC_F | RX_VLAN_F | TS_F) \
+ R(sec_vlan_ts_rss, R_SEC_F | RX_VLAN_F | TS_F | RSS_F) \
+ R(sec_vlan_ts_ptype, R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F) \
+ R(sec_vlan_ts_ptype_rss, R_SEC_F | RX_VLAN_F | TS_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_ts_cksum, R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F) \
+ R(sec_vlan_ts_cksum_rss, R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_ts_cksum_ptype, \
+ R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F) \
+ R(sec_vlan_ts_cksum_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | TS_F | CKSUM_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_ts_mark, R_SEC_F | RX_VLAN_F | TS_F | MARK_F) \
+ R(sec_vlan_ts_mark_rss, R_SEC_F | RX_VLAN_F | TS_F | MARK_F | RSS_F) \
+ R(sec_vlan_ts_mark_ptype, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F) \
+ R(sec_vlan_ts_mark_ptype_rss, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | PTYPE_F | RSS_F) \
+ R(sec_vlan_ts_mark_cksum, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F) \
+ R(sec_vlan_ts_mark_cksum_rss, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | RSS_F) \
+ R(sec_vlan_ts_mark_cksum_ptype, \
+ R_SEC_F | RX_VLAN_F | TS_F | MARK_F | CKSUM_F | PTYPE_F) \
+ 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 \
+ NIX_RX_FASTPATH_MODES_32_47 \
+ NIX_RX_FASTPATH_MODES_48_63 \
+ NIX_RX_FASTPATH_MODES_64_79 \
+ NIX_RX_FASTPATH_MODES_80_95 \
+ NIX_RX_FASTPATH_MODES_96_111 \
+ NIX_RX_FASTPATH_MODES_112_127
+
+#define R(name, flags) \
uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_##name( \
void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_mseg_##name( \
void *rx_queue, struct rte_mbuf **rx_pkts, 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);
NIX_RX_FASTPATH_MODES
#undef R
+#define NIX_RX_RECV(fn, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
+ { \
+ return cn10k_nix_recv_pkts(rx_queue, rx_pkts, pkts, (flags)); \
+ }
+
+#define NIX_RX_RECV_MSEG(fn, flags) NIX_RX_RECV(fn, flags | NIX_RX_MULTI_SEG_F)
+
+#define NIX_RX_RECV_VEC(fn, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
+ { \
+ return cn10k_nix_recv_pkts_vector(rx_queue, rx_pkts, pkts, \
+ (flags), NULL, NULL, 0); \
+ }
+
+#define NIX_RX_RECV_VEC_MSEG(fn, flags) \
+ NIX_RX_RECV_VEC(fn, flags | NIX_RX_MULTI_SEG_F)
+
#endif /* __CN10K_RX_H__ */
diff --git a/drivers/net/cnxk/cn10k_rx_mseg.c b/drivers/net/cnxk/cn10k_rx_mseg.c
deleted file mode 100644
index e7c2321f6e..0000000000
--- a/drivers/net/cnxk/cn10k_rx_mseg.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_rx.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_mseg_##name( \
- void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
- { \
- return cn10k_nix_recv_pkts(rx_queue, rx_pkts, pkts, \
- (flags) | NIX_RX_MULTI_SEG_F); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/net/cnxk/cn10k_rx_select.c b/drivers/net/cnxk/cn10k_rx_select.c
new file mode 100644
index 0000000000..da9aa81fbb
--- /dev/null
+++ b/drivers/net/cnxk/cn10k_rx_select.c
@@ -0,0 +1,67 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_rx.h"
+
+static inline void
+pick_rx_func(struct rte_eth_dev *eth_dev,
+ const eth_rx_burst_t rx_burst[NIX_RX_OFFLOAD_MAX])
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ /* [VLAN] [TSP] [MARK] [CKSUM] [PTYPE] [RSS] */
+ eth_dev->rx_pkt_burst =
+ rx_burst[dev->rx_offload_flags & (NIX_RX_OFFLOAD_MAX - 1)];
+
+ rte_atomic_thread_fence(__ATOMIC_RELEASE);
+}
+
+void
+cn10k_eth_set_rx_function(struct rte_eth_dev *eth_dev)
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ const eth_rx_burst_t nix_eth_rx_burst[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_nix_recv_pkts_##name,
+
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const eth_rx_burst_t nix_eth_rx_burst_mseg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_nix_recv_pkts_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,
+
+ NIX_RX_FASTPATH_MODES
+#undef R
+ };
+
+ const eth_rx_burst_t nix_eth_rx_vec_burst_mseg[NIX_RX_OFFLOAD_MAX] = {
+#define R(name, flags) [flags] = cn10k_nix_recv_pkts_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 & DEV_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 & DEV_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);
+}
diff --git a/drivers/net/cnxk/cn10k_rx_vec.c b/drivers/net/cnxk/cn10k_rx_vec.c
deleted file mode 100644
index 0ccc4df8ac..0000000000
--- a/drivers/net/cnxk/cn10k_rx_vec.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_rx.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_noinline __rte_hot \
- cn10k_nix_recv_pkts_vec_##name(void *rx_queue, \
- struct rte_mbuf **rx_pkts, \
- uint16_t pkts) \
- { \
- return cn10k_nix_recv_pkts_vector(rx_queue, rx_pkts, pkts, \
- (flags), NULL, NULL, 0); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/net/cnxk/cn10k_rx_vec_mseg.c b/drivers/net/cnxk/cn10k_rx_vec_mseg.c
deleted file mode 100644
index 38e0ec36a3..0000000000
--- a/drivers/net/cnxk/cn10k_rx_vec_mseg.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_rx.h"
-
-#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
- uint16_t __rte_noinline __rte_hot cn10k_nix_recv_pkts_vec_mseg_##name( \
- void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts) \
- { \
- return cn10k_nix_recv_pkts_vector( \
- rx_queue, rx_pkts, pkts, (flags) | NIX_RX_MULTI_SEG_F, \
- NULL, NULL, 0); \
- }
-
-NIX_RX_FASTPATH_MODES
-#undef R
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 01bd5442b5..1fd388a1f0 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -107,14 +107,46 @@ sources += files(
'cn10k_ethdev.c',
'cn10k_ethdev_sec.c',
'cn10k_rte_flow.c',
- 'cn10k_rx.c',
- 'cn10k_rx_mseg.c',
- 'cn10k_rx_vec.c',
- 'cn10k_rx_vec_mseg.c',
'cn10k_tx.c',
'cn10k_tx_mseg.c',
'cn10k_tx_vec.c',
'cn10k_tx_vec_mseg.c',
+ 'cn10k_rx_select.c',
+)
+
+sources += files(
+ 'rx/cn10k/rx_0_15.c',
+ 'rx/cn10k/rx_16_31.c',
+ 'rx/cn10k/rx_32_47.c',
+ 'rx/cn10k/rx_48_63.c',
+ 'rx/cn10k/rx_64_79.c',
+ 'rx/cn10k/rx_80_95.c',
+ 'rx/cn10k/rx_96_111.c',
+ 'rx/cn10k/rx_112_127.c',
+ 'rx/cn10k/rx_0_15_mseg.c',
+ 'rx/cn10k/rx_16_31_mseg.c',
+ 'rx/cn10k/rx_32_47_mseg.c',
+ 'rx/cn10k/rx_48_63_mseg.c',
+ 'rx/cn10k/rx_64_79_mseg.c',
+ 'rx/cn10k/rx_80_95_mseg.c',
+ 'rx/cn10k/rx_96_111_mseg.c',
+ 'rx/cn10k/rx_112_127_mseg.c',
+ 'rx/cn10k/rx_0_15_vec.c',
+ 'rx/cn10k/rx_16_31_vec.c',
+ 'rx/cn10k/rx_32_47_vec.c',
+ 'rx/cn10k/rx_48_63_vec.c',
+ 'rx/cn10k/rx_64_79_vec.c',
+ 'rx/cn10k/rx_80_95_vec.c',
+ 'rx/cn10k/rx_96_111_vec.c',
+ 'rx/cn10k/rx_112_127_vec.c',
+ 'rx/cn10k/rx_0_15_vec_mseg.c',
+ 'rx/cn10k/rx_16_31_vec_mseg.c',
+ 'rx/cn10k/rx_32_47_vec_mseg.c',
+ 'rx/cn10k/rx_48_63_vec_mseg.c',
+ 'rx/cn10k/rx_64_79_vec_mseg.c',
+ 'rx/cn10k/rx_80_95_vec_mseg.c',
+ 'rx/cn10k/rx_96_111_vec_mseg.c',
+ 'rx/cn10k/rx_112_127_vec_mseg.c',
)
deps += ['bus_pci', 'cryptodev', 'eventdev', 'security']
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 7/8] net/cnxk: add CN10K segregated Tx functions
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
` (4 preceding siblings ...)
2021-12-13 8:22 ` [PATCH 6/8] net/cnxk: add CN10K template Rx functions to build pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
2021-12-13 8:22 ` [PATCH 8/8] net/cnxk: add CN10K template Tx functions to build pbhagavatula
6 siblings, 0 replies; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN10K segregated Rx and event Tx enqueue template functions,
these help in parallelizing the build.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/tx/cn10k/tx_0_15.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_0_15_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_112_127.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_112_127_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_16_31.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_16_31_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_32_47.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_32_47_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_48_63.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_48_63_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_64_79.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_64_79_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_80_95.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_80_95_seg.c | 11 +++++++++++
drivers/event/cnxk/tx/cn10k/tx_96_111.c | 10 ++++++++++
drivers/event/cnxk/tx/cn10k/tx_96_111_seg.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_0_15.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_0_15_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_0_15_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_0_15_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_112_127.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_112_127_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_112_127_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_112_127_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_16_31.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_16_31_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_16_31_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_16_31_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_32_47.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_32_47_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_32_47_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_32_47_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_48_63.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_48_63_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_48_63_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_48_63_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_64_79.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_64_79_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_64_79_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_64_79_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_80_95.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_80_95_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_80_95_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_80_95_vec_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_96_111.c | 11 +++++++++++
drivers/net/cnxk/tx/cn10k/tx_96_111_mseg.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_96_111_vec.c | 12 ++++++++++++
drivers/net/cnxk/tx/cn10k/tx_96_111_vec_mseg.c | 12 ++++++++++++
48 files changed, 544 insertions(+)
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_0_15.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_0_15_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_112_127.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_112_127_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_16_31.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_16_31_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_32_47.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_32_47_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_48_63.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_48_63_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_64_79.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_64_79_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_80_95.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_80_95_seg.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_96_111.c
create mode 100644 drivers/event/cnxk/tx/cn10k/tx_96_111_seg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_0_15.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_0_15_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_0_15_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_0_15_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_112_127.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_112_127_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_112_127_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_112_127_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_16_31.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_16_31_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_16_31_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_16_31_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_32_47.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_32_47_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_32_47_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_32_47_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_48_63.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_48_63_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_48_63_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_48_63_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_64_79.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_64_79_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_64_79_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_64_79_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_80_95.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_80_95_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_80_95_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_80_95_vec_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_96_111.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_96_111_mseg.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_96_111_vec.c
create mode 100644 drivers/net/cnxk/tx/cn10k/tx_96_111_vec_mseg.c
diff --git a/drivers/event/cnxk/tx/cn10k/tx_0_15.c b/drivers/event/cnxk/tx/cn10k/tx_0_15.c
new file mode 100644
index 0000000000..9ae761ba39
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_0_15.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_0_15_seg.c b/drivers/event/cnxk/tx/cn10k/tx_0_15_seg.c
new file mode 100644
index 0000000000..58c77dac0e
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_0_15_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_112_127.c b/drivers/event/cnxk/tx/cn10k/tx_112_127.c
new file mode 100644
index 0000000000..60dcfbb355
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_112_127.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_112_127_seg.c b/drivers/event/cnxk/tx/cn10k/tx_112_127_seg.c
new file mode 100644
index 0000000000..bd52c5f903
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_112_127_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_16_31.c b/drivers/event/cnxk/tx/cn10k/tx_16_31.c
new file mode 100644
index 0000000000..7fa9c02314
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_16_31.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_16_31_seg.c b/drivers/event/cnxk/tx/cn10k/tx_16_31_seg.c
new file mode 100644
index 0000000000..c39a806688
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_16_31_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_32_47.c b/drivers/event/cnxk/tx/cn10k/tx_32_47.c
new file mode 100644
index 0000000000..4bd1547955
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_32_47.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_32_47_seg.c b/drivers/event/cnxk/tx/cn10k/tx_32_47_seg.c
new file mode 100644
index 0000000000..0e3d52d48c
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_32_47_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_48_63.c b/drivers/event/cnxk/tx/cn10k/tx_48_63.c
new file mode 100644
index 0000000000..6c6a35ee9b
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_48_63.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_48_63_seg.c b/drivers/event/cnxk/tx/cn10k/tx_48_63_seg.c
new file mode 100644
index 0000000000..2528fbf544
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_48_63_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_64_79.c b/drivers/event/cnxk/tx/cn10k/tx_64_79.c
new file mode 100644
index 0000000000..e2c046bcde
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_64_79.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_64_79_seg.c b/drivers/event/cnxk/tx/cn10k/tx_64_79_seg.c
new file mode 100644
index 0000000000..b7757d08e7
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_64_79_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_80_95.c b/drivers/event/cnxk/tx/cn10k/tx_80_95.c
new file mode 100644
index 0000000000..49ba008abe
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_80_95.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_80_95_seg.c b/drivers/event/cnxk/tx/cn10k/tx_80_95_seg.c
new file mode 100644
index 0000000000..48255e4727
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_80_95_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_96_111.c b/drivers/event/cnxk/tx/cn10k/tx_96_111.c
new file mode 100644
index 0000000000..dd62d70c68
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_96_111.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) SSO_TX(cn10k_sso_hws_tx_adptr_enq_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/event/cnxk/tx/cn10k/tx_96_111_seg.c b/drivers/event/cnxk/tx/cn10k/tx_96_111_seg.c
new file mode 100644
index 0000000000..511ac2f70b
--- /dev/null
+++ b/drivers/event/cnxk/tx/cn10k/tx_96_111_seg.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_worker.h"
+
+#define T(name, sz, flags) \
+ SSO_TX_SEG(cn10k_sso_hws_tx_adptr_enq_seg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_0_15.c b/drivers/net/cnxk/tx/cn10k/tx_0_15.c
new file mode 100644
index 0000000000..a7920b7f91
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_0_15.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_0_15_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_0_15_mseg.c
new file mode 100644
index 0000000000..13a35474a1
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_0_15_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_0_15_vec.c b/drivers/net/cnxk/tx/cn10k/tx_0_15_vec.c
new file mode 100644
index 0000000000..cb4091b067
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_0_15_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_0_15_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_0_15_vec_mseg.c
new file mode 100644
index 0000000000..be1abafd79
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_0_15_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_0_15
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_112_127.c b/drivers/net/cnxk/tx/cn10k/tx_112_127.c
new file mode 100644
index 0000000000..15a3f1c567
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_112_127.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_112_127_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_112_127_mseg.c
new file mode 100644
index 0000000000..13664ae6ed
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_112_127_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_112_127_vec.c b/drivers/net/cnxk/tx/cn10k/tx_112_127_vec.c
new file mode 100644
index 0000000000..079773c866
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_112_127_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_112_127_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_112_127_vec_mseg.c
new file mode 100644
index 0000000000..9f4f2fe468
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_112_127_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_112_127
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_16_31.c b/drivers/net/cnxk/tx/cn10k/tx_16_31.c
new file mode 100644
index 0000000000..a90620434e
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_16_31.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_16_31_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_16_31_mseg.c
new file mode 100644
index 0000000000..975ccb6d3b
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_16_31_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_16_31_vec.c b/drivers/net/cnxk/tx/cn10k/tx_16_31_vec.c
new file mode 100644
index 0000000000..84955841ae
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_16_31_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_16_31_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_16_31_vec_mseg.c
new file mode 100644
index 0000000000..6380dda5d7
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_16_31_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_16_31
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_32_47.c b/drivers/net/cnxk/tx/cn10k/tx_32_47.c
new file mode 100644
index 0000000000..657de869f7
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_32_47.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_32_47_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_32_47_mseg.c
new file mode 100644
index 0000000000..5d82f7c5dc
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_32_47_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_32_47_vec.c b/drivers/net/cnxk/tx/cn10k/tx_32_47_vec.c
new file mode 100644
index 0000000000..298e1604f3
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_32_47_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_32_47_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_32_47_vec_mseg.c
new file mode 100644
index 0000000000..6e3580acf1
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_32_47_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_32_47
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_48_63.c b/drivers/net/cnxk/tx/cn10k/tx_48_63.c
new file mode 100644
index 0000000000..38fef5fcfd
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_48_63.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_48_63_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_48_63_mseg.c
new file mode 100644
index 0000000000..b916358ca3
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_48_63_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_48_63_vec.c b/drivers/net/cnxk/tx/cn10k/tx_48_63_vec.c
new file mode 100644
index 0000000000..0b9bb38a21
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_48_63_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_48_63_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_48_63_vec_mseg.c
new file mode 100644
index 0000000000..c5f63dccf6
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_48_63_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_48_63
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_64_79.c b/drivers/net/cnxk/tx/cn10k/tx_64_79.c
new file mode 100644
index 0000000000..c5b5ef24f5
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_64_79.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_64_79_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_64_79_mseg.c
new file mode 100644
index 0000000000..265e1def37
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_64_79_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_64_79_vec.c b/drivers/net/cnxk/tx/cn10k/tx_64_79_vec.c
new file mode 100644
index 0000000000..6a577f7074
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_64_79_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_64_79_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_64_79_vec_mseg.c
new file mode 100644
index 0000000000..b6e1c1ff8c
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_64_79_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_64_79
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_80_95.c b/drivers/net/cnxk/tx/cn10k/tx_80_95.c
new file mode 100644
index 0000000000..b0208999bf
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_80_95.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_80_95_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_80_95_mseg.c
new file mode 100644
index 0000000000..911f2fb50c
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_80_95_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_80_95_vec.c b/drivers/net/cnxk/tx/cn10k/tx_80_95_vec.c
new file mode 100644
index 0000000000..4300340e08
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_80_95_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_80_95_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_80_95_vec_mseg.c
new file mode 100644
index 0000000000..3409fc4f21
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_80_95_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_80_95
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_96_111.c b/drivers/net/cnxk/tx/cn10k/tx_96_111.c
new file mode 100644
index 0000000000..82903de012
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_96_111.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) NIX_TX_XMIT(cn10k_nix_xmit_pkts_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_96_111_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_96_111_mseg.c
new file mode 100644
index 0000000000..ff84b7c64b
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_96_111_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_MSEG(cn10k_nix_xmit_pkts_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_96_111_vec.c b/drivers/net/cnxk/tx/cn10k/tx_96_111_vec.c
new file mode 100644
index 0000000000..c13c33ebc0
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_96_111_vec.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC(cn10k_nix_xmit_pkts_vec_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
diff --git a/drivers/net/cnxk/tx/cn10k/tx_96_111_vec_mseg.c b/drivers/net/cnxk/tx/cn10k/tx_96_111_vec_mseg.c
new file mode 100644
index 0000000000..59ef5c2fa9
--- /dev/null
+++ b/drivers/net/cnxk/tx/cn10k/tx_96_111_vec_mseg.c
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+#define T(name, sz, flags) \
+ NIX_TX_XMIT_VEC_MSEG(cn10k_nix_xmit_pkts_vec_mseg_##name, sz, flags)
+
+NIX_TX_FASTPATH_MODES_96_111
+#undef T
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 8/8] net/cnxk: add CN10K template Tx functions to build
2021-12-13 8:22 [PATCH 1/8] net/cnxk: add CN9K segregated Rx functions pbhagavatula
` (5 preceding siblings ...)
2021-12-13 8:22 ` [PATCH 7/8] net/cnxk: add CN10K segregated Tx functions pbhagavatula
@ 2021-12-13 8:22 ` pbhagavatula
6 siblings, 0 replies; 9+ messages in thread
From: pbhagavatula @ 2021-12-13 8:22 UTC (permalink / raw)
To: jerinj, thomas, david.marchand, Pavan Nikhilesh, Shijith Thotton,
Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
Cc: dev
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Add CN10K segregated Tx and event Tx template functions to build,
add macros to make future modifications simpler.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
drivers/event/cnxk/cn10k_eventdev.c | 19 +-
drivers/event/cnxk/cn10k_worker.h | 36 +-
drivers/event/cnxk/cn10k_worker_tx_enq.c | 23 -
drivers/event/cnxk/cn10k_worker_tx_enq_seg.c | 23 -
drivers/event/cnxk/meson.build | 21 +-
drivers/net/cnxk/cn10k_tx.c | 90 ----
drivers/net/cnxk/cn10k_tx.h | 522 +++++++++----------
drivers/net/cnxk/cn10k_tx_mseg.c | 26 -
drivers/net/cnxk/cn10k_tx_select.c | 63 +++
drivers/net/cnxk/cn10k_tx_vec.c | 25 -
drivers/net/cnxk/cn10k_tx_vec_mseg.c | 24 -
drivers/net/cnxk/meson.build | 41 +-
12 files changed, 413 insertions(+), 500 deletions(-)
delete mode 100644 drivers/event/cnxk/cn10k_worker_tx_enq.c
delete mode 100644 drivers/event/cnxk/cn10k_worker_tx_enq_seg.c
delete mode 100644 drivers/net/cnxk/cn10k_tx.c
delete mode 100644 drivers/net/cnxk/cn10k_tx_mseg.c
create mode 100644 drivers/net/cnxk/cn10k_tx_select.c
delete mode 100644 drivers/net/cnxk/cn10k_tx_vec.c
delete mode 100644 drivers/net/cnxk/cn10k_tx_vec_mseg.c
diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index 02f3d8235d..b56426960a 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -10,14 +10,7 @@
deq_op = deq_ops[dev->rx_offloads & (NIX_RX_OFFLOAD_MAX - 1)]
#define CN10K_SET_EVDEV_ENQ_OP(dev, enq_op, enq_ops) \
- (enq_op = \
- enq_ops[!!(dev->tx_offloads & NIX_TX_OFFLOAD_SECURITY_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_TSTAMP_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_TSO_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_MBUF_NOFF_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_VLAN_QINQ_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F)] \
- [!!(dev->tx_offloads & NIX_TX_OFFLOAD_L3_L4_CSUM_F)])
+ enq_op = enq_ops[dev->tx_offloads & (NIX_TX_OFFLOAD_MAX - 1)]
static uint32_t
cn10k_sso_gw_mode_wdata(struct cnxk_sso_evdev *dev)
@@ -390,17 +383,15 @@ cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev)
/* Tx modes */
const event_tx_adapter_enqueue_t
- sso_hws_tx_adptr_enq[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_tx_adptr_enq_##name,
+ sso_hws_tx_adptr_enq[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn10k_sso_hws_tx_adptr_enq_##name,
NIX_TX_FASTPATH_MODES
#undef T
};
const event_tx_adapter_enqueue_t
- sso_hws_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_tx_adptr_enq_seg_##name,
+ sso_hws_tx_adptr_enq_seg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn10k_sso_hws_tx_adptr_enq_seg_##name,
NIX_TX_FASTPATH_MODES
#undef T
};
diff --git a/drivers/event/cnxk/cn10k_worker.h b/drivers/event/cnxk/cn10k_worker.h
index 160b90aa27..78d029baaa 100644
--- a/drivers/event/cnxk/cn10k_worker.h
+++ b/drivers/event/cnxk/cn10k_worker.h
@@ -613,17 +613,43 @@ cn10k_sso_hws_event_tx(struct cn10k_sso_hws *ws, struct rte_event *ev,
return 1;
}
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
+#define T(name, sz, flags) \
uint16_t __rte_hot cn10k_sso_hws_tx_adptr_enq_##name( \
void *port, struct rte_event ev[], uint16_t nb_events); \
uint16_t __rte_hot cn10k_sso_hws_tx_adptr_enq_seg_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events); \
- uint16_t __rte_hot cn10k_sso_hws_dual_tx_adptr_enq_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events); \
- uint16_t __rte_hot cn10k_sso_hws_dual_tx_adptr_enq_seg_##name( \
void *port, struct rte_event ev[], uint16_t nb_events);
NIX_TX_FASTPATH_MODES
#undef T
+#define SSO_TX(fn, sz, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event ev[], \
+ uint16_t nb_events) \
+ { \
+ struct cn10k_sso_hws *ws = port; \
+ uint64_t cmd[sz]; \
+ \
+ RTE_SET_USED(nb_events); \
+ return cn10k_sso_hws_event_tx( \
+ ws, &ev[0], cmd, \
+ (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
+ ws->tx_adptr_data, \
+ flags); \
+ }
+
+#define SSO_TX_SEG(fn, sz, flags) \
+ uint16_t __rte_hot fn(void *port, struct rte_event ev[], \
+ uint16_t nb_events) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ struct cn10k_sso_hws *ws = port; \
+ \
+ RTE_SET_USED(nb_events); \
+ return cn10k_sso_hws_event_tx( \
+ ws, &ev[0], cmd, \
+ (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
+ ws->tx_adptr_data, \
+ (flags) | NIX_TX_MULTI_SEG_F); \
+ }
+
#endif
diff --git a/drivers/event/cnxk/cn10k_worker_tx_enq.c b/drivers/event/cnxk/cn10k_worker_tx_enq.c
deleted file mode 100644
index f14c7fc223..0000000000
--- a/drivers/event/cnxk/cn10k_worker_tx_enq.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_worker.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_hot cn10k_sso_hws_tx_adptr_enq_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events) \
- { \
- struct cn10k_sso_hws *ws = port; \
- uint64_t cmd[sz]; \
- \
- RTE_SET_USED(nb_events); \
- return cn10k_sso_hws_event_tx( \
- ws, &ev[0], cmd, \
- (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
- ws->tx_adptr_data, \
- flags); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/event/cnxk/cn10k_worker_tx_enq_seg.c b/drivers/event/cnxk/cn10k_worker_tx_enq_seg.c
deleted file mode 100644
index 2ea61e5d88..0000000000
--- a/drivers/event/cnxk/cn10k_worker_tx_enq_seg.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_worker.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_hot cn10k_sso_hws_tx_adptr_enq_seg_##name( \
- void *port, struct rte_event ev[], uint16_t nb_events) \
- { \
- uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
- struct cn10k_sso_hws *ws = port; \
- \
- RTE_SET_USED(nb_events); \
- return cn10k_sso_hws_event_tx( \
- ws, &ev[0], cmd, \
- (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) & \
- ws->tx_adptr_data, \
- (flags) | NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index ac452fe451..b27bae7b12 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -13,8 +13,6 @@ sources = files(
'cn9k_worker.c',
'cn10k_eventdev.c',
'cn10k_worker.c',
- 'cn10k_worker_tx_enq.c',
- 'cn10k_worker_tx_enq_seg.c',
'cnxk_eventdev.c',
'cnxk_eventdev_adptr.c',
'cnxk_eventdev_selftest.c',
@@ -454,6 +452,25 @@ sources += files(
'deq/cn10k/deq_112_127_ca_tmo_seg_burst.c',
)
+sources += files(
+ 'tx/cn10k/tx_0_15.c',
+ 'tx/cn10k/tx_16_31.c',
+ 'tx/cn10k/tx_32_47.c',
+ 'tx/cn10k/tx_48_63.c',
+ 'tx/cn10k/tx_64_79.c',
+ 'tx/cn10k/tx_80_95.c',
+ 'tx/cn10k/tx_96_111.c',
+ 'tx/cn10k/tx_112_127.c',
+ 'tx/cn10k/tx_0_15_seg.c',
+ 'tx/cn10k/tx_16_31_seg.c',
+ 'tx/cn10k/tx_32_47_seg.c',
+ 'tx/cn10k/tx_48_63_seg.c',
+ 'tx/cn10k/tx_64_79_seg.c',
+ 'tx/cn10k/tx_80_95_seg.c',
+ 'tx/cn10k/tx_96_111_seg.c',
+ 'tx/cn10k/tx_112_127_seg.c',
+)
+
extra_flags = ['-flax-vector-conversions', '-Wno-strict-aliasing']
foreach flag: extra_flags
if cc.has_argument(flag)
diff --git a/drivers/net/cnxk/cn10k_tx.c b/drivers/net/cnxk/cn10k_tx.c
deleted file mode 100644
index 5e6c5ee111..0000000000
--- a/drivers/net/cnxk/cn10k_tx.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot cn10k_nix_xmit_pkts_##name( \
- void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
- { \
- uint64_t cmd[sz]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn10k_nix_xmit_pkts(tx_queue, tx_pkts, pkts, cmd, \
- 0, flags); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
-
-static inline void
-pick_tx_func(struct rte_eth_dev *eth_dev,
- const eth_tx_burst_t tx_burst[2][2][2][2][2][2][2])
-{
- struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
-
- /* [SEC] [TSP] [TSO] [NOFF] [VLAN] [OL3_OL4_CSUM] [IL3_IL4_CSUM] */
- eth_dev->tx_pkt_burst = tx_burst
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_SECURITY_F)]
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_TSTAMP_F)]
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_TSO_F)]
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_MBUF_NOFF_F)]
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_VLAN_QINQ_F)]
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F)]
- [!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_L3_L4_CSUM_F)];
-}
-
-void
-cn10k_eth_set_tx_function(struct rte_eth_dev *eth_dev)
-{
- struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
-
- const eth_tx_burst_t nix_eth_tx_burst[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_nix_xmit_pkts_##name,
-
- NIX_TX_FASTPATH_MODES
-#undef T
- };
-
- const eth_tx_burst_t nix_eth_tx_burst_mseg[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_nix_xmit_pkts_mseg_##name,
-
- NIX_TX_FASTPATH_MODES
-#undef T
- };
-
- const eth_tx_burst_t nix_eth_tx_vec_burst[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_nix_xmit_pkts_vec_##name,
-
- NIX_TX_FASTPATH_MODES
-#undef T
- };
-
- const eth_tx_burst_t nix_eth_tx_vec_burst_mseg[2][2][2][2][2][2][2] = {
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- [f6][f5][f4][f3][f2][f1][f0] = cn10k_nix_xmit_pkts_vec_mseg_##name,
-
- NIX_TX_FASTPATH_MODES
-#undef T
- };
-
- if (dev->scalar_ena) {
- pick_tx_func(eth_dev, nix_eth_tx_burst);
- if (dev->tx_offloads & RTE_ETH_TX_OFFLOAD_MULTI_SEGS)
- pick_tx_func(eth_dev, nix_eth_tx_burst_mseg);
- } else {
- pick_tx_func(eth_dev, nix_eth_tx_vec_burst);
- if (dev->tx_offloads & RTE_ETH_TX_OFFLOAD_MULTI_SEGS)
- pick_tx_func(eth_dev, nix_eth_tx_vec_burst_mseg);
- }
-
- rte_mb();
-}
diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index 873e1871f9..6de8b18b47 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -16,6 +16,7 @@
#define NIX_TX_OFFLOAD_TSO_F BIT(4)
#define NIX_TX_OFFLOAD_TSTAMP_F BIT(5)
#define NIX_TX_OFFLOAD_SECURITY_F BIT(6)
+#define NIX_TX_OFFLOAD_MAX (NIX_TX_OFFLOAD_SECURITY_F << 1)
/* Flags to control xmit_prepare function.
* Defining it from backwards to denote its been
@@ -2675,279 +2676,272 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
#define T_SEC_F NIX_TX_OFFLOAD_SECURITY_F
/* [T_SEC_F] [TSP] [TSO] [NOFF] [VLAN] [OL3OL4CSUM] [L3L4CSUM] */
-#define NIX_TX_FASTPATH_MODES \
-T(no_offload, 0, 0, 0, 0, 0, 0, 0, 4, \
- NIX_TX_OFFLOAD_NONE) \
-T(l3l4csum, 0, 0, 0, 0, 0, 0, 1, 4, \
- L3L4CSUM_F) \
-T(ol3ol4csum, 0, 0, 0, 0, 0, 1, 0, 4, \
- OL3OL4CSUM_F) \
-T(ol3ol4csum_l3l4csum, 0, 0, 0, 0, 0, 1, 1, 4, \
- OL3OL4CSUM_F | L3L4CSUM_F) \
-T(vlan, 0, 0, 0, 0, 1, 0, 0, 6, \
- VLAN_F) \
-T(vlan_l3l4csum, 0, 0, 0, 0, 1, 0, 1, 6, \
- VLAN_F | L3L4CSUM_F) \
-T(vlan_ol3ol4csum, 0, 0, 0, 0, 1, 1, 0, 6, \
- VLAN_F | OL3OL4CSUM_F) \
-T(vlan_ol3ol4csum_l3l4csum, 0, 0, 0, 0, 1, 1, 1, 6, \
- VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(noff, 0, 0, 0, 1, 0, 0, 0, 4, \
- NOFF_F) \
-T(noff_l3l4csum, 0, 0, 0, 1, 0, 0, 1, 4, \
- NOFF_F | L3L4CSUM_F) \
-T(noff_ol3ol4csum, 0, 0, 0, 1, 0, 1, 0, 4, \
- NOFF_F | OL3OL4CSUM_F) \
-T(noff_ol3ol4csum_l3l4csum, 0, 0, 0, 1, 0, 1, 1, 4, \
- NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(noff_vlan, 0, 0, 0, 1, 1, 0, 0, 6, \
- NOFF_F | VLAN_F) \
-T(noff_vlan_l3l4csum, 0, 0, 0, 1, 1, 0, 1, 6, \
- NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(noff_vlan_ol3ol4csum, 0, 0, 0, 1, 1, 1, 0, 6, \
- NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(noff_vlan_ol3ol4csum_l3l4csum, 0, 0, 0, 1, 1, 1, 1, 6, \
- NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso, 0, 0, 1, 0, 0, 0, 0, 6, \
- TSO_F) \
-T(tso_l3l4csum, 0, 0, 1, 0, 0, 0, 1, 6, \
- TSO_F | L3L4CSUM_F) \
-T(tso_ol3ol4csum, 0, 0, 1, 0, 0, 1, 0, 6, \
- TSO_F | OL3OL4CSUM_F) \
-T(tso_ol3ol4csum_l3l4csum, 0, 0, 1, 0, 0, 1, 1, 6, \
- TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso_vlan, 0, 0, 1, 0, 1, 0, 0, 6, \
- TSO_F | VLAN_F) \
-T(tso_vlan_l3l4csum, 0, 0, 1, 0, 1, 0, 1, 6, \
- TSO_F | VLAN_F | L3L4CSUM_F) \
-T(tso_vlan_ol3ol4csum, 0, 0, 1, 0, 1, 1, 0, 6, \
- TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(tso_vlan_ol3ol4csum_l3l4csum, 0, 0, 1, 0, 1, 1, 1, 6, \
- TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso_noff, 0, 0, 1, 1, 0, 0, 0, 6, \
- TSO_F | NOFF_F) \
-T(tso_noff_l3l4csum, 0, 0, 1, 1, 0, 0, 1, 6, \
- TSO_F | NOFF_F | L3L4CSUM_F) \
-T(tso_noff_ol3ol4csum, 0, 0, 1, 1, 0, 1, 0, 6, \
- TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(tso_noff_ol3ol4csum_l3l4csum, 0, 0, 1, 1, 0, 1, 1, 6, \
- TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(tso_noff_vlan, 0, 0, 1, 1, 1, 0, 0, 6, \
- TSO_F | NOFF_F | VLAN_F) \
-T(tso_noff_vlan_l3l4csum, 0, 0, 1, 1, 1, 0, 1, 6, \
- TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(tso_noff_vlan_ol3ol4csum, 0, 0, 1, 1, 1, 1, 0, 6, \
- TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(tso_noff_vlan_ol3ol4csum_l3l4csum, 0, 0, 1, 1, 1, 1, 1, 6, \
- TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts, 0, 1, 0, 0, 0, 0, 0, 8, \
- TSP_F) \
-T(ts_l3l4csum, 0, 1, 0, 0, 0, 0, 1, 8, \
- TSP_F | L3L4CSUM_F) \
-T(ts_ol3ol4csum, 0, 1, 0, 0, 0, 1, 0, 8, \
- TSP_F | OL3OL4CSUM_F) \
-T(ts_ol3ol4csum_l3l4csum, 0, 1, 0, 0, 0, 1, 1, 8, \
- TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_vlan, 0, 1, 0, 0, 1, 0, 0, 8, \
- TSP_F | VLAN_F) \
-T(ts_vlan_l3l4csum, 0, 1, 0, 0, 1, 0, 1, 8, \
- TSP_F | VLAN_F | L3L4CSUM_F) \
-T(ts_vlan_ol3ol4csum, 0, 1, 0, 0, 1, 1, 0, 8, \
- TSP_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_vlan_ol3ol4csum_l3l4csum, 0, 1, 0, 0, 1, 1, 1, 8, \
- TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_noff, 0, 1, 0, 1, 0, 0, 0, 8, \
- TSP_F | NOFF_F) \
-T(ts_noff_l3l4csum, 0, 1, 0, 1, 0, 0, 1, 8, \
- TSP_F | NOFF_F | L3L4CSUM_F) \
-T(ts_noff_ol3ol4csum, 0, 1, 0, 1, 0, 1, 0, 8, \
- TSP_F | NOFF_F | OL3OL4CSUM_F) \
-T(ts_noff_ol3ol4csum_l3l4csum, 0, 1, 0, 1, 0, 1, 1, 8, \
- TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_noff_vlan, 0, 1, 0, 1, 1, 0, 0, 8, \
- TSP_F | NOFF_F | VLAN_F) \
-T(ts_noff_vlan_l3l4csum, 0, 1, 0, 1, 1, 0, 1, 8, \
- TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(ts_noff_vlan_ol3ol4csum, 0, 1, 0, 1, 1, 1, 0, 8, \
- TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_noff_vlan_ol3ol4csum_l3l4csum, 0, 1, 0, 1, 1, 1, 1, 8, \
- TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso, 0, 1, 1, 0, 0, 0, 0, 8, \
- TSP_F | TSO_F) \
-T(ts_tso_l3l4csum, 0, 1, 1, 0, 0, 0, 1, 8, \
- TSP_F | TSO_F | L3L4CSUM_F) \
-T(ts_tso_ol3ol4csum, 0, 1, 1, 0, 0, 1, 0, 8, \
- TSP_F | TSO_F | OL3OL4CSUM_F) \
-T(ts_tso_ol3ol4csum_l3l4csum, 0, 1, 1, 0, 0, 1, 1, 8, \
- TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso_vlan, 0, 1, 1, 0, 1, 0, 0, 8, \
- TSP_F | TSO_F | VLAN_F) \
-T(ts_tso_vlan_l3l4csum, 0, 1, 1, 0, 1, 0, 1, 8, \
- TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
-T(ts_tso_vlan_ol3ol4csum, 0, 1, 1, 0, 1, 1, 0, 8, \
- TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_tso_vlan_ol3ol4csum_l3l4csum, 0, 1, 1, 0, 1, 1, 1, 8, \
- TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso_noff, 0, 1, 1, 1, 0, 0, 0, 8, \
- TSP_F | TSO_F | NOFF_F) \
-T(ts_tso_noff_l3l4csum, 0, 1, 1, 1, 0, 0, 1, 8, \
- TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
-T(ts_tso_noff_ol3ol4csum, 0, 1, 1, 1, 0, 1, 0, 8, \
- TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(ts_tso_noff_ol3ol4csum_l3l4csum, 0, 1, 1, 1, 0, 1, 1, 8, \
- TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(ts_tso_noff_vlan, 0, 1, 1, 1, 1, 0, 0, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F) \
-T(ts_tso_noff_vlan_l3l4csum, 0, 1, 1, 1, 1, 0, 1, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(ts_tso_noff_vlan_ol3ol4csum, 0, 1, 1, 1, 1, 1, 0, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 0, 1, 1, 1, 1, 1, 1, 8, \
- TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec, 1, 0, 0, 0, 0, 0, 0, 4, \
- T_SEC_F) \
-T(sec_l3l4csum, 1, 0, 0, 0, 0, 0, 1, 4, \
- T_SEC_F | L3L4CSUM_F) \
-T(sec_ol3ol4csum, 1, 0, 0, 0, 0, 1, 0, 4, \
- T_SEC_F | OL3OL4CSUM_F) \
-T(sec_ol3ol4csum_l3l4csum, 1, 0, 0, 0, 0, 1, 1, 4, \
- T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_vlan, 1, 0, 0, 0, 1, 0, 0, 6, \
- T_SEC_F | VLAN_F) \
-T(sec_vlan_l3l4csum, 1, 0, 0, 0, 1, 0, 1, 6, \
- T_SEC_F | VLAN_F | L3L4CSUM_F) \
-T(sec_vlan_ol3ol4csum, 1, 0, 0, 0, 1, 1, 0, 6, \
- T_SEC_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_vlan_ol3ol4csum_l3l4csum, 1, 0, 0, 0, 1, 1, 1, 6, \
- T_SEC_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_noff, 1, 0, 0, 1, 0, 0, 0, 4, \
- T_SEC_F | NOFF_F) \
-T(sec_noff_l3l4csum, 1, 0, 0, 1, 0, 0, 1, 4, \
- T_SEC_F | NOFF_F | L3L4CSUM_F) \
-T(sec_noff_ol3ol4csum, 1, 0, 0, 1, 0, 1, 0, 4, \
- T_SEC_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_noff_ol3ol4csum_l3l4csum, 1, 0, 0, 1, 0, 1, 1, 4, \
- T_SEC_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_noff_vlan, 1, 0, 0, 1, 1, 0, 0, 6, \
- T_SEC_F | NOFF_F | VLAN_F) \
-T(sec_noff_vlan_l3l4csum, 1, 0, 0, 1, 1, 0, 1, 6, \
- T_SEC_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_noff_vlan_ol3ol4csum, 1, 0, 0, 1, 1, 1, 0, 6, \
- T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_noff_vlan_ol3ol4csum_l3l4csum, 1, 0, 0, 1, 1, 1, 1, 6, \
- T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso, 1, 0, 1, 0, 0, 0, 0, 6, \
- T_SEC_F | TSO_F) \
-T(sec_tso_l3l4csum, 1, 0, 1, 0, 0, 0, 1, 6, \
- T_SEC_F | TSO_F | L3L4CSUM_F) \
-T(sec_tso_ol3ol4csum, 1, 0, 1, 0, 0, 1, 0, 6, \
- T_SEC_F | TSO_F | OL3OL4CSUM_F) \
-T(sec_tso_ol3ol4csum_l3l4csum, 1, 0, 1, 0, 0, 1, 1, 6, \
- T_SEC_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso_vlan, 1, 0, 1, 0, 1, 0, 0, 6, \
- T_SEC_F | TSO_F | VLAN_F) \
-T(sec_tso_vlan_l3l4csum, 1, 0, 1, 0, 1, 0, 1, 6, \
- T_SEC_F | TSO_F | VLAN_F | L3L4CSUM_F) \
-T(sec_tso_vlan_ol3ol4csum, 1, 0, 1, 0, 1, 1, 0, 6, \
- T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_tso_vlan_ol3ol4csum_l3l4csum, 1, 0, 1, 0, 1, 1, 1, 6, \
- T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso_noff, 1, 0, 1, 1, 0, 0, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F) \
-T(sec_tso_noff_l3l4csum, 1, 0, 1, 1, 0, 0, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | L3L4CSUM_F) \
-T(sec_tso_noff_ol3ol4csum, 1, 0, 1, 1, 0, 1, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_tso_noff_ol3ol4csum_l3l4csum, 1, 0, 1, 1, 0, 1, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_tso_noff_vlan, 1, 0, 1, 1, 1, 0, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F) \
-T(sec_tso_noff_vlan_l3l4csum, 1, 0, 1, 1, 1, 0, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_tso_noff_vlan_ol3ol4csum, 1, 0, 1, 1, 1, 1, 0, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_tso_noff_vlan_ol3ol4csum_l3l4csum, 1, 0, 1, 1, 1, 1, 1, 6, \
- T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec_ts, 1, 1, 0, 0, 0, 0, 0, 8, \
- T_SEC_F | TSP_F) \
-T(sec_ts_l3l4csum, 1, 1, 0, 0, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | L3L4CSUM_F) \
-T(sec_ts_ol3ol4csum, 1, 1, 0, 0, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | OL3OL4CSUM_F) \
-T(sec_ts_ol3ol4csum_l3l4csum, 1, 1, 0, 0, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_vlan, 1, 1, 0, 0, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | VLAN_F) \
-T(sec_ts_vlan_l3l4csum, 1, 1, 0, 0, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_vlan_ol3ol4csum, 1, 1, 0, 0, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_ts_vlan_ol3ol4csum_l3l4csum, 1, 1, 0, 0, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_noff, 1, 1, 0, 1, 0, 0, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F) \
-T(sec_ts_noff_l3l4csum, 1, 1, 0, 1, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | L3L4CSUM_F) \
-T(sec_ts_noff_ol3ol4csum, 1, 1, 0, 1, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_ts_noff_ol3ol4csum_l3l4csum, 1, 1, 0, 1, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_noff_vlan, 1, 1, 0, 1, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F) \
-T(sec_ts_noff_vlan_l3l4csum, 1, 1, 0, 1, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_noff_vlan_ol3ol4csum, 1, 1, 0, 1, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_ts_noff_vlan_ol3ol4csum_l3l4csum, 1, 1, 0, 1, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec_ts_tso, 1, 1, 1, 0, 0, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F) \
-T(sec_ts_tso_l3l4csum, 1, 1, 1, 0, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | L3L4CSUM_F) \
-T(sec_ts_tso_ol3ol4csum, 1, 1, 1, 0, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F) \
-T(sec_ts_tso_ol3ol4csum_l3l4csum, 1, 1, 1, 0, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_tso_vlan, 1, 1, 1, 0, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F) \
-T(sec_ts_tso_vlan_l3l4csum, 1, 1, 1, 0, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_tso_vlan_ol3ol4csum, 1, 1, 1, 0, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
-T(sec_ts_tso_vlan_ol3ol4csum_l3l4csum, 1, 1, 1, 0, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff, 1, 1, 1, 1, 0, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F) \
-T(sec_ts_tso_noff_l3l4csum, 1, 1, 1, 1, 0, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff_ol3ol4csum, 1, 1, 1, 1, 0, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
-T(sec_ts_tso_noff_ol3ol4csum_l3l4csum, 1, 1, 1, 1, 0, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)\
-T(sec_ts_tso_noff_vlan, 1, 1, 1, 1, 1, 0, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F) \
-T(sec_ts_tso_noff_vlan_l3l4csum, 1, 1, 1, 1, 1, 0, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
-T(sec_ts_tso_noff_vlan_ol3ol4csum, 1, 1, 1, 1, 1, 1, 0, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F)\
-T(sec_ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 1, 1, 1, 1, 1, 1, 1, 8, \
- T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | \
- L3L4CSUM_F)
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
+#define NIX_TX_FASTPATH_MODES_0_15 \
+ T(no_offload, 4, NIX_TX_OFFLOAD_NONE) \
+ T(l3l4csum, 4, L3L4CSUM_F) \
+ T(ol3ol4csum, 4, OL3OL4CSUM_F) \
+ T(ol3ol4csum_l3l4csum, 4, OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(vlan, 6, VLAN_F) \
+ T(vlan_l3l4csum, 6, VLAN_F | L3L4CSUM_F) \
+ T(vlan_ol3ol4csum, 6, VLAN_F | OL3OL4CSUM_F) \
+ T(vlan_ol3ol4csum_l3l4csum, 6, VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(noff, 4, NOFF_F) \
+ T(noff_l3l4csum, 4, NOFF_F | L3L4CSUM_F) \
+ T(noff_ol3ol4csum, 4, NOFF_F | OL3OL4CSUM_F) \
+ T(noff_ol3ol4csum_l3l4csum, 4, NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(noff_vlan, 6, NOFF_F | VLAN_F) \
+ T(noff_vlan_l3l4csum, 6, NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(noff_vlan_ol3ol4csum, 6, NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_16_31 \
+ T(tso, 6, TSO_F) \
+ T(tso_l3l4csum, 6, TSO_F | L3L4CSUM_F) \
+ T(tso_ol3ol4csum, 6, TSO_F | OL3OL4CSUM_F) \
+ T(tso_ol3ol4csum_l3l4csum, 6, TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(tso_vlan, 6, TSO_F | VLAN_F) \
+ T(tso_vlan_l3l4csum, 6, TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(tso_vlan_ol3ol4csum, 6, TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(tso_vlan_ol3ol4csum_l3l4csum, 6, \
+ TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(tso_noff, 6, TSO_F | NOFF_F) \
+ T(tso_noff_l3l4csum, 6, TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(tso_noff_ol3ol4csum, 6, TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(tso_noff_ol3ol4csum_l3l4csum, 6, \
+ TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(tso_noff_vlan, 6, TSO_F | NOFF_F | VLAN_F) \
+ T(tso_noff_vlan_l3l4csum, 6, TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(tso_noff_vlan_ol3ol4csum, 6, TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(tso_noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_32_47 \
+ T(ts, 8, TSP_F) \
+ T(ts_l3l4csum, 8, TSP_F | L3L4CSUM_F) \
+ T(ts_ol3ol4csum, 8, TSP_F | OL3OL4CSUM_F) \
+ T(ts_ol3ol4csum_l3l4csum, 8, TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_vlan, 8, TSP_F | VLAN_F) \
+ T(ts_vlan_l3l4csum, 8, TSP_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_vlan_ol3ol4csum, 8, TSP_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_noff, 8, TSP_F | NOFF_F) \
+ T(ts_noff_l3l4csum, 8, TSP_F | NOFF_F | L3L4CSUM_F) \
+ T(ts_noff_ol3ol4csum, 8, TSP_F | NOFF_F | OL3OL4CSUM_F) \
+ T(ts_noff_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_noff_vlan, 8, TSP_F | NOFF_F | VLAN_F) \
+ T(ts_noff_vlan_l3l4csum, 8, TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_noff_vlan_ol3ol4csum, 8, TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_48_63 \
+ T(ts_tso, 8, TSP_F | TSO_F) \
+ T(ts_tso_l3l4csum, 8, TSP_F | TSO_F | L3L4CSUM_F) \
+ T(ts_tso_ol3ol4csum, 8, TSP_F | TSO_F | OL3OL4CSUM_F) \
+ T(ts_tso_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_tso_vlan, 8, TSP_F | TSO_F | VLAN_F) \
+ T(ts_tso_vlan_l3l4csum, 8, TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_tso_vlan_ol3ol4csum, 8, TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_tso_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_tso_noff, 8, TSP_F | TSO_F | NOFF_F) \
+ T(ts_tso_noff_l3l4csum, 8, TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(ts_tso_noff_ol3ol4csum, 8, TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(ts_tso_noff_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(ts_tso_noff_vlan, 8, TSP_F | TSO_F | NOFF_F | VLAN_F) \
+ T(ts_tso_noff_vlan_l3l4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(ts_tso_noff_vlan_ol3ol4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_64_79 \
+ T(sec, 4, T_SEC_F) \
+ T(sec_l3l4csum, 4, T_SEC_F | L3L4CSUM_F) \
+ T(sec_ol3ol4csum, 4, T_SEC_F | OL3OL4CSUM_F) \
+ T(sec_ol3ol4csum_l3l4csum, 4, T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_vlan, 6, T_SEC_F | VLAN_F) \
+ T(sec_vlan_l3l4csum, 6, T_SEC_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_vlan_ol3ol4csum, 6, T_SEC_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_noff, 4, T_SEC_F | NOFF_F) \
+ T(sec_noff_l3l4csum, 4, T_SEC_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_noff_ol3ol4csum, 4, T_SEC_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_noff_ol3ol4csum_l3l4csum, 4, \
+ T_SEC_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_noff_vlan, 6, T_SEC_F | NOFF_F | VLAN_F) \
+ T(sec_noff_vlan_l3l4csum, 6, T_SEC_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_noff_vlan_ol3ol4csum, 6, \
+ T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_80_95 \
+ T(sec_tso, 6, T_SEC_F | TSO_F) \
+ T(sec_tso_l3l4csum, 6, T_SEC_F | TSO_F | L3L4CSUM_F) \
+ T(sec_tso_ol3ol4csum, 6, T_SEC_F | TSO_F | OL3OL4CSUM_F) \
+ T(sec_tso_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_tso_vlan, 6, T_SEC_F | TSO_F | VLAN_F) \
+ T(sec_tso_vlan_l3l4csum, 6, T_SEC_F | TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_tso_vlan_ol3ol4csum, 6, T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_tso_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_tso_noff, 6, T_SEC_F | TSO_F | NOFF_F) \
+ T(sec_tso_noff_l3l4csum, 6, T_SEC_F | TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_tso_noff_ol3ol4csum, 6, T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_tso_noff_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_tso_noff_vlan, 6, T_SEC_F | TSO_F | NOFF_F | VLAN_F) \
+ T(sec_tso_noff_vlan_l3l4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_tso_noff_vlan_ol3ol4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_tso_noff_vlan_ol3ol4csum_l3l4csum, 6, \
+ T_SEC_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_96_111 \
+ T(sec_ts, 8, T_SEC_F | TSP_F) \
+ T(sec_ts_l3l4csum, 8, T_SEC_F | TSP_F | L3L4CSUM_F) \
+ T(sec_ts_ol3ol4csum, 8, T_SEC_F | TSP_F | OL3OL4CSUM_F) \
+ T(sec_ts_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_vlan, 8, T_SEC_F | TSP_F | VLAN_F) \
+ T(sec_ts_vlan_l3l4csum, 8, T_SEC_F | TSP_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_vlan_ol3ol4csum, 8, T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_noff, 8, T_SEC_F | TSP_F | NOFF_F) \
+ T(sec_ts_noff_l3l4csum, 8, T_SEC_F | TSP_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_ts_noff_ol3ol4csum, 8, T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_ts_noff_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_noff_vlan, 8, T_SEC_F | TSP_F | NOFF_F | VLAN_F) \
+ T(sec_ts_noff_vlan_l3l4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_noff_vlan_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES_112_127 \
+ T(sec_ts_tso, 8, T_SEC_F | TSP_F | TSO_F) \
+ T(sec_ts_tso_l3l4csum, 8, T_SEC_F | TSP_F | TSO_F | L3L4CSUM_F) \
+ T(sec_ts_tso_ol3ol4csum, 8, T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_tso_vlan, 8, T_SEC_F | TSP_F | TSO_F | VLAN_F) \
+ T(sec_ts_tso_vlan_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_tso_vlan_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff, 8, T_SEC_F | TSP_F | TSO_F | NOFF_F) \
+ T(sec_ts_tso_noff_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_noff_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff_vlan, 8, T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F) \
+ T(sec_ts_tso_noff_vlan_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | L3L4CSUM_F) \
+ T(sec_ts_tso_noff_vlan_ol3ol4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F) \
+ T(sec_ts_tso_noff_vlan_ol3ol4csum_l3l4csum, 8, \
+ T_SEC_F | TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | \
+ L3L4CSUM_F)
+
+#define NIX_TX_FASTPATH_MODES \
+ NIX_TX_FASTPATH_MODES_0_15 \
+ NIX_TX_FASTPATH_MODES_16_31 \
+ NIX_TX_FASTPATH_MODES_32_47 \
+ NIX_TX_FASTPATH_MODES_48_63 \
+ NIX_TX_FASTPATH_MODES_64_79 \
+ NIX_TX_FASTPATH_MODES_80_95 \
+ NIX_TX_FASTPATH_MODES_96_111 \
+ NIX_TX_FASTPATH_MODES_112_127
+
+#define T(name, sz, flags) \
uint16_t __rte_noinline __rte_hot cn10k_nix_xmit_pkts_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn10k_nix_xmit_pkts_mseg_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn10k_nix_xmit_pkts_vec_##name( \
void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
- \
+ \
uint16_t __rte_noinline __rte_hot cn10k_nix_xmit_pkts_vec_mseg_##name( \
- void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts); \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts);
NIX_TX_FASTPATH_MODES
#undef T
+#define NIX_TX_XMIT(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[sz]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn10k_nix_xmit_pkts(tx_queue, tx_pkts, pkts, cmd, 0, \
+ flags); \
+ }
+
+#define NIX_TX_XMIT_MSEG(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn10k_nix_xmit_pkts_mseg(tx_queue, tx_pkts, pkts, cmd, \
+ 0, \
+ flags | NIX_TX_MULTI_SEG_F); \
+ }
+
+#define NIX_TX_XMIT_VEC(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[sz]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn10k_nix_xmit_pkts_vector(tx_queue, tx_pkts, pkts, \
+ cmd, 0, (flags)); \
+ }
+
+#define NIX_TX_XMIT_VEC_MSEG(fn, sz, flags) \
+ uint16_t __rte_noinline __rte_hot fn( \
+ void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
+ { \
+ uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2]; \
+ \
+ /* For TSO inner checksum is a must */ \
+ if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
+ !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
+ return 0; \
+ return cn10k_nix_xmit_pkts_vector( \
+ tx_queue, tx_pkts, pkts, cmd, 0, \
+ (flags) | NIX_TX_MULTI_SEG_F); \
+ }
+
#endif /* __CN10K_TX_H__ */
diff --git a/drivers/net/cnxk/cn10k_tx_mseg.c b/drivers/net/cnxk/cn10k_tx_mseg.c
deleted file mode 100644
index 2b834095cf..0000000000
--- a/drivers/net/cnxk/cn10k_tx_mseg.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot \
- cn10k_nix_xmit_pkts_mseg_##name(void *tx_queue, \
- struct rte_mbuf **tx_pkts, \
- uint16_t pkts) \
- { \
- uint64_t cmd[(sz)]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn10k_nix_xmit_pkts_mseg(tx_queue, tx_pkts, pkts, cmd, \
- 0, (flags) \
- | NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/net/cnxk/cn10k_tx_select.c b/drivers/net/cnxk/cn10k_tx_select.c
new file mode 100644
index 0000000000..bd1fba06b9
--- /dev/null
+++ b/drivers/net/cnxk/cn10k_tx_select.c
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "cn10k_ethdev.h"
+#include "cn10k_tx.h"
+
+static inline void
+pick_tx_func(struct rte_eth_dev *eth_dev,
+ const eth_tx_burst_t tx_burst[NIX_TX_OFFLOAD_MAX])
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ /* [SEC] [TSP] [TSO] [NOFF] [VLAN] [OL3_OL4_CSUM] [IL3_IL4_CSUM] */
+ eth_dev->tx_pkt_burst =
+ tx_burst[dev->tx_offload_flags & (NIX_TX_OFFLOAD_MAX - 1)];
+}
+
+void
+cn10k_eth_set_tx_function(struct rte_eth_dev *eth_dev)
+{
+ struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
+
+ const eth_tx_burst_t nix_eth_tx_burst[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn10k_nix_xmit_pkts_##name,
+
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ const eth_tx_burst_t nix_eth_tx_burst_mseg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn10k_nix_xmit_pkts_mseg_##name,
+
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ const eth_tx_burst_t nix_eth_tx_vec_burst[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn10k_nix_xmit_pkts_vec_##name,
+
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ const eth_tx_burst_t nix_eth_tx_vec_burst_mseg[NIX_TX_OFFLOAD_MAX] = {
+#define T(name, sz, flags) [flags] = cn10k_nix_xmit_pkts_vec_mseg_##name,
+
+ NIX_TX_FASTPATH_MODES
+#undef T
+ };
+
+ if (dev->scalar_ena) {
+ pick_tx_func(eth_dev, nix_eth_tx_burst);
+ if (dev->tx_offloads & DEV_TX_OFFLOAD_MULTI_SEGS)
+ pick_tx_func(eth_dev, nix_eth_tx_burst_mseg);
+ } else {
+ pick_tx_func(eth_dev, nix_eth_tx_vec_burst);
+ if (dev->tx_offloads & DEV_TX_OFFLOAD_MULTI_SEGS)
+ pick_tx_func(eth_dev, nix_eth_tx_vec_burst_mseg);
+ }
+
+ rte_mb();
+}
diff --git a/drivers/net/cnxk/cn10k_tx_vec.c b/drivers/net/cnxk/cn10k_tx_vec.c
deleted file mode 100644
index 2789b13d60..0000000000
--- a/drivers/net/cnxk/cn10k_tx_vec.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot \
- cn10k_nix_xmit_pkts_vec_##name(void *tx_queue, \
- struct rte_mbuf **tx_pkts, \
- uint16_t pkts) \
- { \
- uint64_t cmd[sz]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn10k_nix_xmit_pkts_vector(tx_queue, tx_pkts, pkts, cmd,\
- 0, (flags)); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/net/cnxk/cn10k_tx_vec_mseg.c b/drivers/net/cnxk/cn10k_tx_vec_mseg.c
deleted file mode 100644
index 98000df101..0000000000
--- a/drivers/net/cnxk/cn10k_tx_vec_mseg.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(C) 2021 Marvell.
- */
-
-#include "cn10k_ethdev.h"
-#include "cn10k_tx.h"
-
-#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
- uint16_t __rte_noinline __rte_hot cn10k_nix_xmit_pkts_vec_mseg_##name( \
- void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t pkts) \
- { \
- uint64_t cmd[sz]; \
- \
- /* For TSO inner checksum is a must */ \
- if (((flags) & NIX_TX_OFFLOAD_TSO_F) && \
- !((flags) & NIX_TX_OFFLOAD_L3_L4_CSUM_F)) \
- return 0; \
- return cn10k_nix_xmit_pkts_vector( \
- tx_queue, tx_pkts, pkts, cmd, 0, \
- (flags) | NIX_TX_MULTI_SEG_F); \
- }
-
-NIX_TX_FASTPATH_MODES
-#undef T
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 1fd388a1f0..375c75d1c7 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -107,11 +107,8 @@ sources += files(
'cn10k_ethdev.c',
'cn10k_ethdev_sec.c',
'cn10k_rte_flow.c',
- 'cn10k_tx.c',
- 'cn10k_tx_mseg.c',
- 'cn10k_tx_vec.c',
- 'cn10k_tx_vec_mseg.c',
'cn10k_rx_select.c',
+ 'cn10k_tx_select.c',
)
sources += files(
@@ -149,6 +146,42 @@ sources += files(
'rx/cn10k/rx_112_127_vec_mseg.c',
)
+sources += files(
+ 'tx/cn10k/tx_0_15.c',
+ 'tx/cn10k/tx_16_31.c',
+ 'tx/cn10k/tx_32_47.c',
+ 'tx/cn10k/tx_48_63.c',
+ 'tx/cn10k/tx_64_79.c',
+ 'tx/cn10k/tx_80_95.c',
+ 'tx/cn10k/tx_96_111.c',
+ 'tx/cn10k/tx_112_127.c',
+ 'tx/cn10k/tx_0_15_mseg.c',
+ 'tx/cn10k/tx_16_31_mseg.c',
+ 'tx/cn10k/tx_32_47_mseg.c',
+ 'tx/cn10k/tx_48_63_mseg.c',
+ 'tx/cn10k/tx_64_79_mseg.c',
+ 'tx/cn10k/tx_80_95_mseg.c',
+ 'tx/cn10k/tx_96_111_mseg.c',
+ 'tx/cn10k/tx_112_127_mseg.c',
+ 'tx/cn10k/tx_0_15_vec.c',
+ 'tx/cn10k/tx_16_31_vec.c',
+ 'tx/cn10k/tx_32_47_vec.c',
+ 'tx/cn10k/tx_48_63_vec.c',
+ 'tx/cn10k/tx_64_79_vec.c',
+ 'tx/cn10k/tx_80_95_vec.c',
+ 'tx/cn10k/tx_96_111_vec.c',
+ 'tx/cn10k/tx_112_127_vec.c',
+ 'tx/cn10k/tx_0_15_vec_mseg.c',
+ 'tx/cn10k/tx_16_31_vec_mseg.c',
+ 'tx/cn10k/tx_32_47_vec_mseg.c',
+ 'tx/cn10k/tx_48_63_vec_mseg.c',
+ 'tx/cn10k/tx_64_79_vec_mseg.c',
+ 'tx/cn10k/tx_80_95_vec_mseg.c',
+ 'tx/cn10k/tx_96_111_vec_mseg.c',
+ 'tx/cn10k/tx_112_127_vec_mseg.c',
+)
+
+
deps += ['bus_pci', 'cryptodev', 'eventdev', 'security']
deps += ['common_cnxk', 'mempool_cnxk']
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread