> -----Original Message----- > From: Nikhil Rao [mailto:nikhil....@intel.com] > Sent: Tuesday, September 12, 2017 17:59 > To: jerin.ja...@caviumnetworks.com; bruce.richard...@intel.com > Cc: gage.e...@intel.com; dev@dpdk.org; tho...@monjalon.net; > harry.van.haa...@intel.com; Hemant Agrawal <hemant.agra...@nxp.com>; > Nipun Gupta <nipun.gu...@nxp.com>; narender.vang...@intel.com; > erik.g.carri...@intel.com; abhinandan.guj...@intel.com; Nikhil Rao > <nikhil....@intel.com> > Subject: [PATCH v3 2/4] eventdev: Add eth Rx adapter caps callback to SW evdev > > The SW event device always uses a EAL service function for packet > transfer from the eth device to the event device, this function is > capable of generating a event flow ID which is the IPv4/6 RSS hash. > > The caps function returns RTE_EVENT_ETH_RX_ADAPTER_SW_CAP which is > currently set to RTE_EVENT_ETH_RX_ADAPTER_CAP_FLOW_ID. > > Signed-off-by: Nikhil Rao <nikhil....@intel.com> > --- > lib/librte_eventdev/rte_eventdev_pmd.h | 6 ++++++ > drivers/event/sw/sw_evdev.c | 13 +++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/lib/librte_eventdev/rte_eventdev_pmd.h > b/lib/librte_eventdev/rte_eventdev_pmd.h > index 4cc9671..3cbc063 100644 > --- a/lib/librte_eventdev/rte_eventdev_pmd.h > +++ b/lib/librte_eventdev/rte_eventdev_pmd.h > @@ -83,6 +83,12 @@ extern "C" { > } \ > } while (0) > > +#define RTE_EVENT_ETH_RX_ADAPTER_SW_CAP \ > + RTE_EVENT_ETH_RX_ADAPTER_CAP_FLOW_ID > +/**< Ethernet Rx adapter cap to return If the packet transfers from > + * the ethdev to eventdev use a SW service function > + */
Hi Nikhil, Maybe it makes more sense to have RTE_EVENT_ETH_RX_ADAPTER_SW_CAP #define in 'sw_evdev.h' file? Regards, Nipun > + > #define RTE_EVENTDEV_DETACHED (0) > #define RTE_EVENTDEV_ATTACHED (1) > > diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c > index da6ac30..1344c17 100644 > --- a/drivers/event/sw/sw_evdev.c > +++ b/drivers/event/sw/sw_evdev.c > @@ -437,6 +437,17 @@ sw_dev_configure(const struct rte_eventdev *dev) > return 0; > } > > +static int > +sw_eth_rx_adapter_caps_get(const struct rte_eventdev *dev, > + uint8_t eth_port_id, > + uint32_t *caps) > +{ > + RTE_SET_USED(dev); > + RTE_SET_USED(eth_port_id); > + *caps = RTE_EVENT_ETH_RX_ADAPTER_SW_CAP; > + return 0; > +} > + > static void > sw_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) > { > @@ -751,6 +762,8 @@ sw_probe(struct rte_vdev_device *vdev) > .port_link = sw_port_link, > .port_unlink = sw_port_unlink, > > + .eth_rx_adapter_caps_get = > sw_eth_rx_adapter_caps_get, > + > .xstats_get = sw_xstats_get, > .xstats_get_names = sw_xstats_get_names, > .xstats_get_by_name = sw_xstats_get_by_name, > -- > 2.7.4