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 <[email protected]> > Sent: Friday, May 3, 2024 11:38 PM > To: Buvaneswaran, Sujai <[email protected]> > Cc: [email protected]; [email protected]; Eric Dumazet > <[email protected]>; Nguyen, Anthony L > <[email protected]>; Jakub Kicinski <[email protected]>; Paolo > Abeni <[email protected]>; David S. Miller <[email protected]>; > [email protected] > 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 <[email protected]> On Behalf > >> Of Asbjørn Sloth Tønnesen > >> Sent: Tuesday, April 16, 2024 8:14 PM > >> To: [email protected] > >> Cc: [email protected]; [email protected]; Eric > >> Dumazet <[email protected]>; Nguyen, Anthony L > >> <[email protected]>; Asbjørn Sloth Tønnesen > >> <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni > >> <[email protected]>; David S. Miller <[email protected]> > >> 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 <[email protected]> > >> --- > >> 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
