On 6/19/2024 7:48 AM, Morten Brørup wrote: >> From: Sriram Yagnaraman [mailto:sriram.yagnara...@ericsson.com] >> >> Hi Morten, >> >>> From: Morten Brørup <m...@smartsharesystems.com> >>> >>>> From: Sriram Yagnaraman [mailto:sriram.yagnara...@ericsson.com] >>>> >>>> When using ring based ethdev, mbuf->port is not set on received packets. >>>> >>>> For applications that use the mbuf->port to identify the incoming >>>> port, especially when eventdev RX adapter pulls the packet on a >>>> different core and the application running on a worker core has no >>>> clue on the incoming port. This change adds some cycles at receive, to >>>> set the port of course. >>> >>> I agree that the mbuf->port field must be set before returning from >>> rte_eth_rx_burst(). >>> >>> I'm not aware how applications use the ring based ethdev, so I might be >>> asking silly questions... >>> >>> How about all the other mbuf fields normally set by the PMD before >>> returning from rte_eth_rx_burst()? >>> >>> Is the enqueueing core supposed to set them? >> >> I am integrating a couple of existing DPDK applications, and they use >> rte_eth_* API between them today. To keep the API consistent, and not make >> too >> many changes in the applications themselves, net_ring seems to be the best >> option. If someone has a better idea, I would love to hear. >> >> There are no "HW" offloads when using net_ring, and IIUC there are no HW >> related fields that can be set at rx_burst. >> So, apart from port field, I didn't see much else that needed to be set. >> >>> >>> Or if the ring is only used for queueing packets originally received (at a >>> physical port) by the enqueueing core, why not keep the mbuf->port value >>> from the original reception? >> >> In my case the enqueuing application originates the flow from SW, so the >> rte_mbuf does not come from a NIC. > > Thank you for the explanation. > > Acked-by: Morten Brørup <m...@smartsharesystems.com> >
Acked-by: Ferruh Yigit <ferruh.yi...@amd.com> Applied to dpdk-next-net/main, thanks.