-----Original Message----- > Date: Fri, 7 Jul 2017 03:22:31 +0530 > From: Nikhil Rao <nikhil....@intel.com> > To: jerin.ja...@caviumnetworks.com > CC: gage.e...@intel.com, dev@dpdk.org, tho...@monjalon.net, > bruce.richard...@intel.com, harry.van.haa...@intel.com, > hemant.agra...@nxp.com, nipun.gu...@nxp.com, narender.vang...@intel.com, > Nikhil Rao <nikhil....@intel.com>, Abhinandan Gujjar > <abhinandan.guj...@intel.com> > 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 <nikhil....@intel.com> > Signed-off-by: Gage Eads <gage.e...@intel.com> > Signed-off-by: Abhinandan Gujjar <abhinandan.guj...@intel.com> > ---
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 > ---