Skip to content

Commit a13648e

Browse files
Rakesh KudurumallaJerin Jacob
authored andcommitted
event/cnxk: fix OOP handling in event mode
Update event device with NIX_RX_REAS_F to handle out of place processing for SKUs that does not support reassembly as cn10k driver process OOP with NIX_RX_REAS_F enabled. Fixes: 5e9e008 ("net/cnxk: support inline ingress out-of-place session") Cc: [email protected] Signed-off-by: Rakesh Kudurumalla <[email protected]>
1 parent 3b0b692 commit a13648e

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

drivers/event/cnxk/cn10k_eventdev.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ cn10k_sso_set_priv_mem(const struct rte_eventdev *event_dev, void *lookup_mem)
826826
}
827827

828828
static void
829-
eventdev_fops_tstamp_update(struct rte_eventdev *event_dev)
829+
eventdev_fops_update(struct rte_eventdev *event_dev)
830830
{
831831
struct rte_event_fp_ops *fp_op =
832832
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)
849849
else
850850
evdev->tstamp[port_id] = NULL;
851851
cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
852-
eventdev_fops_tstamp_update(event_dev);
852+
eventdev_fops_update(event_dev);
853+
}
854+
855+
static void
856+
cn10k_sso_rx_offload_cb(uint16_t port_id, uint64_t flags)
857+
{
858+
struct rte_eth_dev *dev = &rte_eth_devices[port_id];
859+
struct cnxk_eth_dev *cnxk_eth_dev = dev->data->dev_private;
860+
struct rte_eventdev *event_dev = cnxk_eth_dev->evdev_priv;
861+
struct cnxk_sso_evdev *evdev = cnxk_sso_pmd_priv(event_dev);
862+
863+
evdev->rx_offloads |= flags;
864+
cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
865+
eventdev_fops_update(event_dev);
853866
}
854867

855868
static int
@@ -1224,6 +1237,7 @@ cn10k_sso_init(struct rte_eventdev *event_dev)
12241237
return rc;
12251238
}
12261239

1240+
cnxk_ethdev_rx_offload_cb_register(cn10k_sso_rx_offload_cb);
12271241
event_dev->dev_ops = &cn10k_sso_dev_ops;
12281242
/* For secondary processes, the primary has done all the work */
12291243
if (rte_eal_process_type() != RTE_PROC_PRIMARY) {

0 commit comments

Comments
 (0)