HI Alexander, > -----Original Message----- > From: Alexander Kozyrev <[email protected]> > Sent: Sunday, February 6, 2022 5:25 AM > To: [email protected] > Cc: Ori Kam <[email protected]>; NBU-Contact-Thomas Monjalon (EXTERNAL) > <[email protected]>; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected] > Subject: [PATCH v3 03/10] ethdev: bring in async queue-based flow rules > operations > > A new, faster, queue-based flow rules management mechanism is needed for > applications offloading rules inside the datapath. This asynchronous > and lockless mechanism frees the CPU for further packet processing and > reduces the performance impact of the flow rules creation/destruction > on the datapath. Note that queues are not thread-safe and the queue > should be accessed from the same thread for all queue operations. > It is the responsibility of the app to sync the queue functions in case > of multi-threaded access to the same queue. > > The rte_flow_q_flow_create() function enqueues a flow creation to the > requested queue. It benefits from already configured resources and sets > unique values on top of item and action templates. A flow rule is enqueued > on the specified flow queue and offloaded asynchronously to the hardware. > The function returns immediately to spare CPU for further packet > processing. The application must invoke the rte_flow_q_pull() function > to complete the flow rule operation offloading, to clear the queue, and to > receive the operation status. The rte_flow_q_flow_destroy() function > enqueues a flow destruction to the requested queue. > > Signed-off-by: Alexander Kozyrev <[email protected]> > ---
Acked-by: Ori Kam <[email protected]> Best, Ori

