Hello Vladimir,

Thank you for the clarification.

I'll try using the E810 and provide an update on the issue.

Best regards,
Ali

Le mar. 4 févr. 2025 à 16:41, Medvedkin, Vladimir <
vladimir.medved...@intel.com> a écrit :

> 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