[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