[PATCH v10 00/11] ethdev: datapath-focused flow rules management

Ferruh Yigit ferruh.yigit at intel.com
Thu Feb 24 14:13:22 CET 2022


On 2/24/2022 1:07 PM, Ferruh Yigit wrote:
> On 2/23/2022 3:02 AM, 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>
>> Acked-by: Ajit Khaparde<ajit.khaparde at broadcom.com>
>>
>> ---
>> v10: removed missed check in async API
>>
>> v9:
>> - changed sanity checks order
>> - added reconfiguration explanation
>> - added remarks on mandatory direction
>> - renamed operation attributes
>> - removed all checks in async API
>> - removed all errno descriptions
>>
>> v8: fixed documentation indentation
>>
>> v7:
>> - added sanity checks and device state validation
>> - added flow engine state validation
>> - added ingress/egress/transfer attibutes to templates
>> - moved user_data to a parameter list
>> - renamed asynchronous functions from "_q_" to"_async_"
>> - created a separate commit for indirect actions
>>
>> v6: addressed more review comments
>> - fixed typos
>> - rewrote code snippets
>> - add a way to get queue size
>> - renamed port/queue attibutes parameters
>>
>> v5: changed titles for testpmd commits
>>
>> 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 (11):
>>    ethdev: introduce flow engine configuration
>>    ethdev: add flow item/action templates
>>    ethdev: bring in async queue-based flow rules operations
>>    ethdev: bring in async indirect actions operations
>>    app/testpmd: add flow engine configuration
>>    app/testpmd: add flow template management
>>    app/testpmd: add flow table management
>>    app/testpmd: add async flow create/destroy operations
>>    app/testpmd: add flow queue push operation
>>    app/testpmd: add flow queue pull operation
>>    app/testpmd: add async indirect actions operations
> 
> Series applied to dpdk-next-net/main, thanks.

+Raslan,

As ethdev patches merged, can proceed with driver ones.


More information about the dev mailing list