LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH iwl-next] ice: flower: validate control flags
@ 2024-04-16 14:43 Asbjørn Sloth Tønnesen
  2024-04-18  7:30 ` [Intel-wired-lan] " Michal Swiatkowski
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2024-04-16 14:43 UTC (permalink / raw
  To: intel-wired-lan
  Cc: Asbjørn Sloth Tønnesen, netdev, linux-kernel,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Jesse Brandeburg, Tony Nguyen

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@fiberby.net>
---
 drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
index 2f2fce285ecd..361abd7d7561 100644
--- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
@@ -1673,6 +1673,10 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi,
 		flow_rule_match_control(rule, &match);
 
 		addr_type = match.key->addr_type;
+
+		if (flow_rule_has_control_flags(match.mask->flags,
+						fltr->extack))
+			return -EOPNOTSUPP;
 	}
 
 	if (addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS) {
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control flags
  2024-04-16 14:43 [PATCH iwl-next] ice: flower: validate control flags Asbjørn Sloth Tønnesen
@ 2024-04-18  7:30 ` Michal Swiatkowski
  2024-04-19 12:25 ` Simon Horman
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Michal Swiatkowski @ 2024-04-18  7:30 UTC (permalink / raw
  To: Asbjørn Sloth Tønnesen
  Cc: intel-wired-lan, netdev, linux-kernel, Eric Dumazet, Tony Nguyen,
	Jakub Kicinski, Paolo Abeni, David S. Miller

On Tue, Apr 16, 2024 at 02:43:30PM +0000, Asbjørn Sloth Tønnesen wrote:
> 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@fiberby.net>
> ---
>  drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
> index 2f2fce285ecd..361abd7d7561 100644
> --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c
> +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
> @@ -1673,6 +1673,10 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi,
>  		flow_rule_match_control(rule, &match);
>  
>  		addr_type = match.key->addr_type;
> +
> +		if (flow_rule_has_control_flags(match.mask->flags,
> +						fltr->extack))
> +			return -EOPNOTSUPP;
>  	}
>  

Thanks,
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>

>  	if (addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS) {
> -- 
> 2.43.0
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH iwl-next] ice: flower: validate control flags
  2024-04-16 14:43 [PATCH iwl-next] ice: flower: validate control flags Asbjørn Sloth Tønnesen
  2024-04-18  7:30 ` [Intel-wired-lan] " Michal Swiatkowski
@ 2024-04-19 12:25 ` Simon Horman
  2024-05-03  5:57 ` [Intel-wired-lan] " Buvaneswaran, Sujai
  2024-05-06  5:34 ` Buvaneswaran, Sujai
  3 siblings, 0 replies; 7+ messages in thread
From: Simon Horman @ 2024-04-19 12:25 UTC (permalink / raw
  To: Asbjørn Sloth Tønnesen
  Cc: intel-wired-lan, netdev, linux-kernel, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jesse Brandeburg,
	Tony Nguyen

On Tue, Apr 16, 2024 at 02:43:30PM +0000, Asbjørn Sloth Tønnesen wrote:
> 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@fiberby.net>

Reviewed-by: Simon Horman <horms@kernel.org>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control flags
  2024-04-16 14:43 [PATCH iwl-next] ice: flower: validate control flags Asbjørn Sloth Tønnesen
  2024-04-18  7:30 ` [Intel-wired-lan] " Michal Swiatkowski
  2024-04-19 12:25 ` Simon Horman
@ 2024-05-03  5:57 ` Buvaneswaran, Sujai
  2024-05-03 18:08   ` Asbjørn Sloth Tønnesen
  2024-05-06  5:34 ` Buvaneswaran, Sujai
  3 siblings, 1 reply; 7+ messages in thread
From: Buvaneswaran, Sujai @ 2024-05-03  5:57 UTC (permalink / raw
  To: Asbjørn Sloth Tønnesen,
	intel-wired-lan@lists.osuosl.org
  Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Eric Dumazet, Nguyen, Anthony L, Jakub Kicinski, Paolo Abeni,
	David S. Miller

> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
> Asbjørn Sloth Tønnesen
> Sent: Tuesday, April 16, 2024 8:14 PM
> To: intel-wired-lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Eric Dumazet
> <edumazet@google.com>; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; Asbjørn Sloth Tønnesen <ast@fiberby.net>;
> Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>;
> David S. Miller <davem@davemloft.net>
> 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@fiberby.net>
> ---
>  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
[root@cbl-mariner ~]# 
[root@cbl-mariner ~]# ethtool -i ens5f0np0
driver: ice
version: 6.9.0-rc5+
firmware-version: 4.40 0x8001c967 1.3534.0
expansion-rom-version: 
bus-info: 0000:b1:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

Same behavior is observed with iavf driver on VF as well.

Regards,
Sujai B

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control flags
  2024-05-03  5:57 ` [Intel-wired-lan] " Buvaneswaran, Sujai
@ 2024-05-03 18:08   ` Asbjørn Sloth Tønnesen
  2024-05-06  5:25     ` Buvaneswaran, Sujai
  0 siblings, 1 reply; 7+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2024-05-03 18:08 UTC (permalink / raw
  To: Buvaneswaran, Sujai
  Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Eric Dumazet, Nguyen, Anthony L, Jakub Kicinski, Paolo Abeni,
	David S. Miller, intel-wired-lan@lists.osuosl.org

Hi Sujai,

On 5/3/24 5:57 AM, Buvaneswaran, Sujai wrote:
>> -----Original Message-----
>> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
>> Asbjørn Sloth Tønnesen
>> Sent: Tuesday, April 16, 2024 8:14 PM
>> To: intel-wired-lan@lists.osuosl.org
>> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Eric Dumazet
>> <edumazet@google.com>; Nguyen, Anthony L
>> <anthony.l.nguyen@intel.com>; Asbjørn Sloth Tønnesen <ast@fiberby.net>;
>> Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>;
>> David S. Miller <davem@davemloft.net>
>> 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@fiberby.net>
>> ---
>>   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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control flags
  2024-05-03 18:08   ` Asbjørn Sloth Tønnesen
@ 2024-05-06  5:25     ` Buvaneswaran, Sujai
  0 siblings, 0 replies; 7+ messages in thread
From: Buvaneswaran, Sujai @ 2024-05-06  5:25 UTC (permalink / raw
  To: Asbjørn Sloth Tønnesen
  Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Eric Dumazet, Nguyen, Anthony L, Jakub Kicinski, Paolo Abeni,
	David S. Miller, intel-wired-lan@lists.osuosl.org

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@fiberby.net>
> Sent: Friday, May 3, 2024 11:38 PM
> To: Buvaneswaran, Sujai <sujai.buvaneswaran@intel.com>
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Eric Dumazet
> <edumazet@google.com>; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
> Abeni <pabeni@redhat.com>; David S. Miller <davem@davemloft.net>;
> intel-wired-lan@lists.osuosl.org
> 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@osuosl.org> On Behalf
> >> Of Asbjørn Sloth Tønnesen
> >> Sent: Tuesday, April 16, 2024 8:14 PM
> >> To: intel-wired-lan@lists.osuosl.org
> >> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Eric
> >> Dumazet <edumazet@google.com>; Nguyen, Anthony L
> >> <anthony.l.nguyen@intel.com>; Asbjørn Sloth Tønnesen
> >> <ast@fiberby.net>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni
> >> <pabeni@redhat.com>; David S. Miller <davem@davemloft.net>
> >> 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@fiberby.net>
> >> ---
> >>   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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [Intel-wired-lan] [PATCH iwl-next] ice: flower: validate control flags
  2024-04-16 14:43 [PATCH iwl-next] ice: flower: validate control flags Asbjørn Sloth Tønnesen
                   ` (2 preceding siblings ...)
  2024-05-03  5:57 ` [Intel-wired-lan] " Buvaneswaran, Sujai
@ 2024-05-06  5:34 ` Buvaneswaran, Sujai
  3 siblings, 0 replies; 7+ messages in thread
From: Buvaneswaran, Sujai @ 2024-05-06  5:34 UTC (permalink / raw
  To: Asbjørn Sloth Tønnesen,
	intel-wired-lan@lists.osuosl.org
  Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Eric Dumazet, Nguyen, Anthony L, Jakub Kicinski, Paolo Abeni,
	David S. Miller

> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
> Asbjørn Sloth Tønnesen
> Sent: Tuesday, April 16, 2024 8:14 PM
> To: intel-wired-lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Eric Dumazet
> <edumazet@google.com>; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; Asbjørn Sloth Tønnesen <ast@fiberby.net>;
> Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>;
> David S. Miller <davem@davemloft.net>
> 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@fiberby.net>
> ---
>  drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 

Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-05-06  5:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-16 14:43 [PATCH iwl-next] ice: flower: validate control flags Asbjørn Sloth Tønnesen
2024-04-18  7:30 ` [Intel-wired-lan] " Michal Swiatkowski
2024-04-19 12:25 ` Simon Horman
2024-05-03  5:57 ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-05-03 18:08   ` Asbjørn Sloth Tønnesen
2024-05-06  5:25     ` Buvaneswaran, Sujai
2024-05-06  5:34 ` Buvaneswaran, Sujai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).