[PATCH v8 1/2] ethdev: add query_update sync and async function calls
Andrew Rybchenko
andrew.rybchenko at oktetlabs.ru
Thu Feb 2 11:30:32 CET 2023
On 2/2/23 13:24, Gregory Etelson wrote:
>> On 2/1/23 18:16, Gregory Etelson wrote:
>>> + ops = rte_flow_ops_get(port_id, error);
>>> + if (!ops || !ops->action_handle_query_update)
>>> + return -ENOTSUP;
>>
>> May be it makes sense to use single-operation callbacks if
>> another operation input is NULL. I guess it could be
>> convenient in some cases. Just an idea.
>>
>
> There is a plan to deprecate indirect query and update functions
> and replace them with a single query_update.
So, will you add corresponding code? Just want to clarify.
>>> +/**
>>> + * @warning
>>> + * @b EXPERIMENTAL: this API may change without prior notice.
>>> + *
>>> + * Query and update operational mode.
>>> + *
>>> + * RTE_FLOW_QU_QUERY_FIRST
>>> + * Force port to query action before update.
>>> + * RTE_FLOW_QU_UPDATE_FIRST
>>> + * Force port to update action before query.
>>
>> I'm sorry, but I strongly dislike enum members duplication
>> here. I don't understand why we need to duplicate it and why
>> we can't document it in a right way below.
>>
>
> I don't understand where the duplication is.
> Query and update operations are atomic for application,
> but in hardware these are 2 separate operations that reference hardware object.
> The operations execution order can have different results on object state.
> When application asks both actions it must explicitly specify execution order for hardware.
No-no, simpler. Just remove RTE_FLOW_QU_QUERY_FIRST and
RTE_FLOW_QU_UPDATE_FIRST above and update comments below
to use comments from above. That's it.
>>> + *
>>> + * @see rte_flow_action_handle_query_update()
>>> + * @see rte_flow_async_action_handle_query_update()
>>> + */
>>> +enum rte_flow_query_update_mode {
>>> + RTE_FLOW_QU_QUERY_FIRST, /**< Query before update. */
>>> + RTE_FLOW_QU_UPDATE_FIRST, /**< Query after update. */
>>> +};
More information about the dev
mailing list