[PATCH v3 18/19] net/i40e: reimplement hash parser

Medvedkin, Vladimir vladimir.medvedkin at intel.com
Sat Sep 19 18:14:32 CEST 2026


On 9/16/2026 1:18 PM, Anatoly Burakov wrote:
> Use the new flow graph API and the common parsing framework to implement
> flow parser for RSS.
>
> The RSS parser was bypassing the other generic infrastructure, probably
> because it was very convoluted and did not map onto that model very well.
> It has now been made a first-class citizen.
>
> The hash parser is multiple engines that share state, so each engine will
> attach to the shared refcounted RSS configuration state.
>
> Additionally, this is the final engine in i40e, so remaining legacy flow
> infrastructure has been removed.
>
> Signed-off-by: Anatoly Burakov<anatoly.burakov at intel.com>
> ---
<snip>
> +static int
> +i40e_hash_flow_query(struct ci_flow *flow,
> +		const struct rte_flow_action *action,
> +		void *data,
> +		struct rte_flow_error *error __rte_unused)
> +{
> +	struct i40e_flow_engine_hash_flow *hash_flow = (struct i40e_flow_engine_hash_flow *)flow;
> +	struct i40e_rte_flow_rss_conf *rss_conf = data;
> +
> +	if (action->type != RTE_FLOW_ACTION_TYPE_RSS) {
> +		return rte_flow_error_set(error, EINVAL,
> +				RTE_FLOW_ERROR_TYPE_ACTION, action,
> +				"Unsupported action for query");
> +	}
> +
> +	memcpy(rss_conf, &hash_flow->rss_conf, sizeof(*rss_conf));
seems like a buffer overflow. Destination (*data) is of the 
sizeof(struct rte_flow_action_rss) (splz ref to testpmd port_flow_query())
> +	return 0;
> +}
> +
<snip>

-- 
Regards,
Vladimir



More information about the dev mailing list