[PATCH v3 02/19] net/intel/common: add flow engines infrastructure

Burakov, Anatoly anatoly.burakov at intel.com
Fri Oct 2 13:29:16 CEST 2026


On 9/19/2026 6:09 PM, Medvedkin, Vladimir wrote:
> 
> On 9/16/2026 1:18 PM, Anatoly Burakov wrote:
>> Current implementation of flow engines in various drivers have a few 
>> issues
>> that need to be corrected.
>>
>> For one, some of the
> seems like a missed word?

Not missed, typoed - should've been "them" not "the" :)

>> are fundamentally incompatible with secondary
>> processes, because the flow engine registration and creation will
>> allocate structures in shared memory but use process-local pointers to
>> point to flow engines and pattern tables.

<snip>

>> +
>> +    /* no engine could handle this flow */
>> +    CI_DRV_LOG(DEBUG, "no engine accepted the flow");
>> +    flow = NULL;
>> +    rte_flow_error_set(error, ENOTSUP,
>> +            RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
>> +            "No flow engine could handle the requested flow");
> This unconditionally rewrites error string, don't we want to keep the 
> last reason why flow wasn't created? Same is applied for validate.

No, if no engine accepted the flow that means there are no meaningful 
error messages to be had here. If the pattern matching failed but 
should've succeeded, there is no way for us to tell whether it was 
*supposed to* succeed or whether this pattern genuinely needs a 
different engine. So, if no engine accepted the flow, we have no idea 
whether it's because the flow is genuinely unsupported, or because there 
is a bug in engine implementation.

In contrast, if the engine has accepted the flow (i.e. if *parsing* 
succeeded), then a failure on register/install is a genuine error, in 
which case we do not try other engines, and output a meaningful error 
message.

-- 
Thanks,
Anatoly


More information about the dev mailing list