On 6/18/2024 8:14 PM, Sriram Yagnaraman wrote: > Hi Morten, > >> -----Original Message----- >> From: Morten Brørup <m...@smartsharesystems.com> >> Sent: Tuesday, 18 June 2024 18:01 >> To: Sriram Yagnaraman <sriram.yagnara...@ericsson.com> >> Cc: dev@dpdk.org; Bruce Richardson <bruce.richard...@intel.com> >> Subject: RE: [PATCH] net/ring: Set mbuf->port for received packets >> >> [Du får inte e-post ofta från m...@smartsharesystems.com. Läs om varför det >> här är viktigt på https://aka.ms/LearnAboutSenderIdentification ] >> >>> 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. >
I think it is a practical usage of ring PMD, and I am OK for the update. There is a question in the commit log, I will remove it while merging. > 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. > >> >>> >>> Please advise if this change is something that can be upstreamed. >>> >>> Signed-off-by: Sriram Yagnaraman <sriram.yagnara...@ericsson.com> >