On 9/24/2017 11:46 PM, Rao, Nikhil wrote:
On 9/22/2017 2:40 PM, Jerin Jacob wrote:

When we worked on a prototype, we figured out that we need a separate event type
for RX adapter. Probably RTE_EVENT_TYPE_ETHDEV_RX_ADAPTER?
The Reason is:
- In the HW based Rx adapter case, the packet are coming directly to eventdev once it is configured. - So on a HW implementation of the event dequeue(), CPU needs to convert HW specific
metadata to mbuf
- The event dequeue() is used in two cases
a) octeontx eventdev driver used with any external NIC
b) octeontx eventdev driver used with integrated NIC(without service
core to inject the packet)
We need some identifier to understand case (a) and (b).So, in dequeue(), if the packet is from RTE_EVENT_TYPE_ETHDEV then we can do "HW specific metadata" to mbuf
conversion and in another case (!RTE_EVENT_TYPE_ETHDEV) result in no mbuf
conversion.

Application can check if it is an Ethernet type event by
ev.event_type == RTE_EVENT_TYPE_ETHDEV || ev.event_type ==
RTE_EVENT_TYPE_ETHDEV_RX_ADAPTER


As per my understanding, the case (a) uses an in built port
Is it possible for the eventdev PMD to do the conversion based off the eventdev port ?


I realized the dequeue wouldn't have knowledge of the port the event was injected from, the application shouldn't have to see the difference between case (a) & (b).

Would it be possible to use the impl_opaque field within struct rte_event ?

Nikhil

Reply via email to