[dpdk-dev] [PATCH v3 2/4] eventdev: Add eth Rx adapter caps callback to SW evdev

Nipun Gupta nipun.gupta at nxp.com
Wed Sep 13 15:36:56 CEST 2017



> -----Original Message-----
> From: Nikhil Rao [mailto:nikhil.rao at intel.com]
> Sent: Tuesday, September 12, 2017 17:59
> To: jerin.jacob at caviumnetworks.com; bruce.richardson at intel.com
> Cc: gage.eads at intel.com; dev at dpdk.org; thomas at monjalon.net;
> harry.van.haaren at intel.com; Hemant Agrawal <hemant.agrawal at nxp.com>;
> Nipun Gupta <nipun.gupta at nxp.com>; narender.vangati at intel.com;
> erik.g.carrillo at intel.com; abhinandan.gujjar at intel.com; Nikhil Rao
> <nikhil.rao at 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.rao at 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



More information about the dev mailing list