[PATCH v2 17/17] event/cnxk: handle inbound out of place processing
Nithin Dabilpuram
ndabilpuram at marvell.com
Tue Oct 1 08:00:55 CEST 2024
From: Rakesh Kudurumalla <rkudurumalla at marvell.com>
update event device with NIX_RX_REAS_F to handle
out of place processing for boards that does not
support reassembly as cn10k driver process OOP
with NIX_RX_REAS_F enabled.
Signed-off-by: Rakesh Kudurumalla <rkudurumalla at marvell.com>
---
drivers/event/cnxk/cn10k_eventdev.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index 229d7a03fe..4e2968f91e 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -826,7 +826,7 @@ cn10k_sso_set_priv_mem(const struct rte_eventdev *event_dev, void *lookup_mem)
}
static void
-eventdev_fops_tstamp_update(struct rte_eventdev *event_dev)
+eventdev_fops_update(struct rte_eventdev *event_dev)
{
struct rte_event_fp_ops *fp_op =
rte_event_fp_ops + event_dev->data->dev_id;
@@ -849,7 +849,20 @@ cn10k_sso_tstamp_hdl_update(uint16_t port_id, uint16_t flags, bool ptp_en)
else
evdev->tstamp[port_id] = NULL;
cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
- eventdev_fops_tstamp_update(event_dev);
+ eventdev_fops_update(event_dev);
+}
+
+static void
+cn10k_sso_rx_offload_cb(uint16_t port_id, uint64_t flags)
+{
+ struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+ struct cnxk_eth_dev *cnxk_eth_dev = dev->data->dev_private;
+ struct rte_eventdev *event_dev = cnxk_eth_dev->evdev_priv;
+ struct cnxk_sso_evdev *evdev = cnxk_sso_pmd_priv(event_dev);
+
+ evdev->rx_offloads |= flags;
+ cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
+ eventdev_fops_update(event_dev);
}
static int
@@ -1224,6 +1237,7 @@ cn10k_sso_init(struct rte_eventdev *event_dev)
return rc;
}
+ cnxk_ethdev_rx_offload_cb_register(cn10k_sso_rx_offload_cb);
event_dev->dev_ops = &cn10k_sso_dev_ops;
/* For secondary processes, the primary has done all the work */
if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
--
2.34.1
More information about the dev
mailing list