RE: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control flags

From: Buvaneswaran, Sujai
Date: Mon May 06 2024 - 01:25:38 EST


Hi Asbjørn,

Thanks for providing more information about this patch. We were able to test this patch with 'skip_sw' parameter on ice PF interface.
It is working as expected. Error is displayed when tc rule added with control flags.

[root@cbl-mariner ~]# tc filter add dev ens5f0np0 ingress protocol ip flower skip_sw ip_flags frag/firstfrag action drop
Error: ice: Unsupported match on control.flags 0x3.
We have an error talking to the kernel

Without this patch, this rule is getting installed in the HW.

Regards,
Sujai B

> -----Original Message-----
> From: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
> Sent: Friday, May 3, 2024 11:38 PM
> To: Buvaneswaran, Sujai <sujai.buvaneswaran@xxxxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Eric Dumazet
> <edumazet@xxxxxxxxxx>; Nguyen, Anthony L
> <anthony.l.nguyen@xxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo
> Abeni <pabeni@xxxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>;
> intel-wired-lan@xxxxxxxxxxxxxxxx
> Subject: Re: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control
> flags
>
> Hi Sujai,
>
> On 5/3/24 5:57 AM, Buvaneswaran, Sujai wrote:
> >> -----Original Message-----
> >> From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf
> >> Of Asbjørn Sloth Tønnesen
> >> Sent: Tuesday, April 16, 2024 8:14 PM
> >> To: intel-wired-lan@xxxxxxxxxxxxxxxx
> >> Cc: netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Eric
> >> Dumazet <edumazet@xxxxxxxxxx>; Nguyen, Anthony L
> >> <anthony.l.nguyen@xxxxxxxxx>; Asbjørn Sloth Tønnesen
> >> <ast@xxxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
> >> <pabeni@xxxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>
> >> Subject: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate
> >> control flags
> >>
> >> This driver currently doesn't support any control flags.
> >>
> >> Use flow_rule_has_control_flags() to check for control flags, such as
> >> can be set through `tc flower ... ip_flags frag`.
> >>
> >> In case any control flags are masked, flow_rule_has_control_flags()
> >> sets a NL extended error message, and we return -EOPNOTSUPP.
> >>
> >> Only compile-tested.
> >>
> >> Signed-off-by: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
> >> ---
> >> drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 ++++
> >> 1 file changed, 4 insertions(+)
> >>
> >
> > Hi,
> >
> > I have tested this patch in upstream kernel - 6.9.0-rc5+ and observing no
> effect while adding tc flow rule with control flags.
> > 'Not supported' error is not shown while adding the below tc rule.
> >
> > [root@cbl-mariner ~]# tc qdisc add dev ens5f0np0 ingress
> > [root@cbl-mariner ~]# [root@cbl-mariner ~]# tc filter add dev
> > ens5f0np0 ingress protocol ip flower ip_flags frag/firstfrag action
> > drop
>
> Thank you for testing!
>
> I think the issue you are observing, is because you are missing "skip_sw":
> tc filter add dev ens5f0np0 ingress protocol ip flower skip_sw \
> ip_flags frag/firstfrag action drop
>
> Without skip_sw, then the hardware offload is opportunistic, and therefore
> the error in hardware offloading doesn't bubble through to user space.
>
> Without skip_sw, you should still be able to observe a change in `tc filter
> show dev ens5f0np0 ingress`. Without the patch you should see "in_hw",
> and with it you should see "not_in_hw".
>
> With skip_sw, then the error in hardware offloading causes the tc command
> to fail, with the -EOPNOTSUPP error and associated extended Netlink error
> message.
>
> Also see Ido's testing for mlxsw in this other thread:
> https://lore.kernel.org/netdev/ZiABPNMbOOYGiHCq@shredder/#t
>
> --
> Best regards
> Asbjørn Sloth Tønnesen
> Network Engineer
> Fiberby - AS42541