[PATCH v3 11/19] net/ixgbe: reimplement hash parser

Burakov, Anatoly anatoly.burakov at intel.com
Mon Oct 5 14:35:55 CEST 2026


On 9/19/2026 6:11 PM, Medvedkin, Vladimir wrote:
> 
> 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 configuration.
>>
>> RSS flow parser doesn't really parse any "flows", it was completely
>> ignoring the flow patterns and was only looking at actions. It will
>> therefore not specify a pattern graph and will match NULL pattern, empty
>> patterns (START -> END), and ANY patterns (START -> ANY -> END).
>>
>> RSS was the last engine using "filter list", so that is now removed. The
>> RSS engine filter tracking was also moved completely into the new engine,
>> and all of the "filter list" infrastructure is removed for good.
>>
>> Signed-off-by: Anatoly Burakov<anatoly.burakov at intel.com>
>> ---
> <snip>
>> +
>> +static int
>> +ixgbe_flow_hash_ctx_to_flow(const struct ci_flow_engine_ctx *ctx,
>> +        struct ci_flow *flow,
>> +        struct rte_flow_error *error __rte_unused)
>> +{
>> +    const struct ixgbe_hash_ctx *hash_ctx = (const struct 
>> ixgbe_hash_ctx *)ctx;
>> +    struct ixgbe_hash_flow *hash_flow = (struct ixgbe_hash_flow *)flow;
>> +
>> +    hash_flow->rss_conf = hash_ctx->rss_conf;
> We cannot just copy this structure, as it contains self-referential 
> fields. For example, hash_ctx->rss_conf.conf.key points to hash_ctx- 
>  >rss_conf.key within the same structure. You may use ixgbe_rss_conf_init()

I'd rather get rid of the struct embedding same way I did in i40e :) 
this footgun should not exist.

-- 
Thanks,
Anatoly


More information about the dev mailing list