Re: [PATCH 1/2] eventdev: add event adapter for ethernet Rx queues
From: Jerin Jacob <hidden>
Date: 2017-07-06 14:19:04
-----Original Message-----
Date: Fri, 7 Jul 2017 03:22:31 +0530 From: Nikhil Rao <redacted> To: jerin.jacob@caviumnetworks.com CC: gage.eads@intel.com, dev@dpdk.org, thomas@monjalon.net, bruce.richardson@intel.com, harry.van.haaren@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com, narender.vangati@intel.com, Nikhil Rao [off-list ref], Abhinandan Gujjar [off-list ref] Subject: [PATCH 1/2] eventdev: add event adapter for ethernet Rx queues X-Mailer: git-send-email 2.7.4 Eventdev-based networking applications require a component to dequeue packets from NIC Rx queues and inject them into eventdev queues[1]. While some platforms (e.g. Cavium Octeontx) do this operation in hardware, other platforms use software. This patchset introduces an ethernet Rx event adapter that dequeues packets from ethernet devices and enqueues them to event devices. It is based on a previous RFC[2]. The adapter is designed to work with the EAL service core[3]. If an application determines that the adapter is required, it can register and launch it on a service core. Alternatively, this adapter can serve as a template for applications to design customer ethernet Rx event adapters better suited to their needs. The adapter can service multiple ethernet devices and queues. Each queue is configured with a servicing weight to control the relative frequency with which the adapter polls the queue, and the event fields to use when constructing packet events. The adapter has two modes for programming an event's flow ID: use a static per-queue user-specified value or use the RSS hash. A detailed description of the adapter is contained in the header's comments. [1] http://dpdk.org/ml/archives/dev/2017-May/065341.html [2] http://dpdk.org/ml/archives/dev/2017-May/065539.html [3] http://dpdk.org/ml/archives/dev/2017-July/069782.html Signed-off-by: Nikhil Rao <redacted> Signed-off-by: Gage Eads <redacted> Signed-off-by: Abhinandan Gujjar <redacted> ---
Thanks Nikhil for the patch. Looks like you missed this email? http://dpdk.org/ml/archives/dev/2017-June/068142.html Can we make it as function pointer based approach(keeping all adapter functions function prototype required for SW PMD) so that each PMD can register the ops for adapter_create etc so that same API can be used for software and hardware PMDs(the scheme like rte_flow() or rte_tm() approach) Can discuss more on that to finalize the approach?
v2: Thanks Jerin for review - below is a list of changes you suggested. - all public symbols are started with rte_event_. - Add Doxygen reference with @see. - Mention setting of ev.event_type. - Mention adapter to service function mapping. - Remove rte_eth_rx_event_adapter_dev_add/del(). - Change rx_queuee_id to int32_t and use -1 to denote all Rx queues. - Add rte_eth_event_rx_queue_del(). Other changes - Remove adapter's run function (rte_event_eth_rx_adapter_run()) from the public interface. The adapter internally uses it to create a service. - Add a blocked cycle count to stats. Further description is contained in the header. - Minor struct renames rte_event_eth_rx_adapter_config -> .._conf ---