[PATCH v4 00/10] ethdev: datapath-focused flow rules management

Ivan Malov ivan.malov at oktetlabs.ru
Fri Feb 11 11:22:08 CET 2022


Hi Ferruh,

On Thu, 10 Feb 2022, Ferruh Yigit wrote:

> On 2/9/2022 9:37 PM, Alexander Kozyrev wrote:
>> Three major changes to a generic RTE Flow API were implemented in order
>> to speed up flow rule insertion/destruction and adapt the API to the
>> needs of a datapath-focused flow rules management applications:
>> 
>> 1. Pre-configuration hints.
>> Application may give us some hints on what type of resources are needed.
>> Introduce the configuration routine to prepare all the needed resources
>> inside a PMD/HW before any flow rules are created at the init stage.
>> 
>> 2. Flow grouping using templates.
>> Use the knowledge about which flow rules are to be used in an application
>> and prepare item and action templates for them in advance. Group flow rules
>> with common patterns and actions together for better resource management.
>> 
>> 3. Queue-based flow management.
>> Perform flow rule insertion/destruction asynchronously to spare the 
>> datapath
>> from blocking on RTE Flow API and allow it to continue with packet 
>> processing.
>> Enqueue flow rules operations and poll for the results later.
>> 
>> testpmd examples are part of the patch series. PMD changes will follow.
>> 
>> RFC: 
>> https://patchwork.dpdk.org/project/dpdk/cover/20211006044835.3936226-1-akozyrev@nvidia.com/
>> 
>> Signed-off-by: Alexander Kozyrev <akozyrev at nvidia.com>
>> Acked-by: Ori Kam <orika at nvidia.com>
>> 
>> ---
>> v4:
>> - removed structures versioning
>> - introduced new rte_flow_port_info structure for rte_flow_info_get API
>> - renamed rte_flow_table_create to rte_flow_template_table_create
>> 
>> v3: addressed review comments and updated documentation
>> - added API to get info about pre-configurable resources
>> - renamed rte_flow_item_template to rte_flow_pattern_template
>> - renamed drain operation attribute to postpone
>> - renamed rte_flow_q_drain to rte_flow_q_push
>> - renamed rte_flow_q_dequeue to rte_flow_q_pull
>> 
>> v2: fixed patch series thread
>> 
>> Alexander Kozyrev (10):
>>    ethdev: introduce flow pre-configuration hints
>>    ethdev: add flow item/action templates
>>    ethdev: bring in async queue-based flow rules operations
>>    app/testpmd: implement rte flow configuration
>>    app/testpmd: implement rte flow template management
>>    app/testpmd: implement rte flow table management
>>    app/testpmd: implement rte flow queue flow operations
>>    app/testpmd: implement rte flow push operations
>>    app/testpmd: implement rte flow pull operations
>>    app/testpmd: implement rte flow queue indirect actions
>> 
>
> Hi Jerin, Ajit, Ivan,
>
> As far as I can see you did some reviews in the previous versions,
> but not ack the patch.

Thanks for sending the reminder. Yes, I did review the series.
During the review, we did not find a common ground with regard
to possibly having a universal "task enqueue" method. However,
I was assured that such design would affect performance.

> Is there any objection to last version of the patch, if not I will
> proceed with it.

Personally, I have no strong objections. The v5 series seems a lot
clearer in a number of ways, yet, it is going to be experimental,
so I believe that if we run into some issues with this deisgn,
we will still have a chance to improve it to some extent.
In general, the author did a very good job applying that
many review notes. Thanks to Alexander for perseverance.

Please feel free to proceed with the series as you see fit.

>
>
> Hi Alex,
>
> As process we require at least one PMD implementation (it can be draft)
> to justify the API design.
>
> If there is no objection from above reviewers and PMD implementation
> exists before end of the week, I think we can get the set for -rc1.
>
> Thanks,
> ferruh
>

--
Ivan M


More information about the dev mailing list