[RFC] ethdev: fast path async flow API

Stephen Hemminger stephen at networkplumber.org
Wed Dec 27 18:41:17 CET 2023


On Wed, 27 Dec 2023 12:57:09 +0200
Dariusz Sosnowski <dsosnowski at nvidia.com> wrote:

> +/**
> + * @internal
> + *
> + * Fast path async flow functions and related data are held in a flat array, one entry per ethdev.
> + * It is assumed that each entry is read-only and cache aligned.
> + */
> +struct rte_flow_fp_ops {
> +	void *ctx;
> +	rte_flow_async_create_t async_create;
> +	rte_flow_async_create_by_index_t async_create_by_index;
> +	rte_flow_async_actions_update_t async_actions_update;
> +	rte_flow_async_destroy_t async_destroy;
> +	rte_flow_push_t push;
> +	rte_flow_pull_t pull;
> +	rte_flow_async_action_handle_create_t async_action_handle_create;
> +	rte_flow_async_action_handle_destroy_t async_action_handle_destroy;
> +	rte_flow_async_action_handle_update_t async_action_handle_update;
> +	rte_flow_async_action_handle_query_t async_action_handle_query;
> +	rte_flow_async_action_handle_query_update_t async_action_handle_query_update;
> +	rte_flow_async_action_list_handle_create_t async_action_list_handle_create;
> +	rte_flow_async_action_list_handle_destroy_t async_action_list_handle_destroy;
> +	rte_flow_async_action_list_handle_query_update_t async_action_list_handle_query_update;
> +} __rte_cache_aligned;

If you go ahead with this then all usage should be const pointer.
Still think it is bad idea and creates even more technical debt.


More information about the dev mailing list