Hi all,

The goal that Ali is trying to achieve is not possible with the X540-AT2 NIC (as with any other ixgbe NIC). The problem is related to:

1. The first rule is processed by the FDIR engine

2. FDIR engine is executed in the HW pipeline almost in the end (just before RSS), i.e. after other filters that we could use to match all other packets (5tuple filter engine in this particular case).

Therefore my recommendations here would be to use a modern NIC such as E810 to implement the required filtering logic.

On 04/02/2025 09:28, Dariusz Sosnowski wrote:
Hi,

Anatoly, Vladimir - Would you be able to help with the issue regarding DROP 
action not being supported on X540-AT2?

Best regards,
Dariusz Sosnowski

From: Sid ali cherrati <scherra...@gmail.com>
Sent: Monday, February 3, 2025 18:12
To: Dmitry Kozlyuk <dmitry.kozl...@gmail.com>
Cc: users@dpdk.org
Subject: Re: DPDK Flow Filtering Not Working as Expected

External email: Use caution opening links or attachments

Here is a better version of the code :

<snip>

Le lun. 3 févr. 2025 à 16:00, Dmitry Kozlyuk <mailto:dmitry.kozl...@gmail.com> 
a écrit :
2025-02-03 14:51 (UTC+0100), Sid ali cherrati:
[...]
if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)){
flow = rte_flow_create(port_id, &attr, pattern, actions, &error);
}

if(flow != 0){
printf("Filed to create drop flow filter \n");
return -1;
}
[...]
The issue is that when I implement this, I get an error on the drop filter:
"Failed to create rule." Do you have any idea why this might be happening?
There is no this exact error text in your code or DPDK,
I assume we're talking about the quoted fragment.
`flow` is a pointer, the correct error condition is `if (flow == NULL)`,
so your code probably misinterprets success as error.
Also `flow` is not assigned if `rte_flow_validate()` returns non-0.

--
Regards,
Vladimir

Reply via email to