[dpdk-dev] [PATCH 0/2] net/bonding: fix dedicated queues flow rule issue

Havlík Martin xhavli56 at stud.fit.vutbr.cz
Sun Nov 7 12:03:38 CET 2021


Dne 2021-10-27 11:55, Ferruh Yigit napsal:
> On 10/5/2021 6:16 PM, Martin Havlik wrote:
>> This patchset stems from [1].
>> 
>> Not all PMDs allow RTE flow rule creation before device start.
>> Introduced capability marks the ones that allow it.
>> The capability is then used to fix flow rule creation for
>> dedicated queues in slave devices in bonding.
>> 
>> The introduced capa _will need to be set_ for all appropriate PMDs
>> in `rte_eth_dev_info->dev_capa`.
>> That is not pretty, but it holds the semantics of a capability
>> correctly, as opposed to making it a requirement to have the device
>> started before creating flow rules.
>> 
> 
> +Ori & Dmitry.
> 
> I think right now the method to check if device supports adding flow
> rules when stopped is run 'rte_flow_create()' when device is stopped
> and check return value.
> 
> Can we do similar in the bonding?
It might be a possible solution. The only thing I'm not sure about is 
that different PMDs may require different flow rule specifications for 
the rule to be valid, e.g. what pattern and action to set to this tryout 
flow rule? We would have to make sure the rule can be created on any PMD 
so failure would mean only one thing - device doesn't support creating 
flow rules when stopped.

Is that possible? Is it already a thing that is used somewhere?
> 
> I am not clear if there is an error to differentiate flow create is
> failed because device is stopped (or from some other reason).
> 
> 
> And other option is, what happens if rule is always created after
> device started?
That is what I originally proposed [here], but it didn't gain much 
favour so the idea got lost in the discussion.

[here] https://mails.dpdk.org/archives/dev/2021-June/212210.html
> 
>> [1] https://www.mail-archive.com/dev@dpdk.org/msg214840.html
>> 
>> Martin Havlik (2):
>>    lib/ethdev: introduce RTE_ETH_DEV_CAPA_FLOW_CREATE_BEFORE_START
>>    net/bonding: require started device for dedicated queues
>> 
>>   drivers/net/bonding/rte_eth_bond_pmd.c | 25 
>> +++++++++++++++++++------
>>   lib/ethdev/rte_ethdev.h                |  2 ++
>>   2 files changed, 21 insertions(+), 6 deletions(-)
>> 


More information about the dev mailing list