netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
@ 2025-03-19 12:45 Maxim Mikityanskiy
  2025-03-19 14:24 ` Daniel Borkmann
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Maxim Mikityanskiy @ 2025-03-19 12:45 UTC (permalink / raw)
  To: Saeed Mahameed, Tariq Toukan
  Cc: Leon Romanovsky, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, Maxim Mikityanskiy

There commands can be used to add an RSS context and steer some traffic
into it:

    # ethtool -X eth0 context new
    New RSS context is 1
    # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
    Added rule with ID 1023

However, the second command fails with EINVAL on mlx5e:

    # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
    rmgr: Cannot insert RX class rule: Invalid argument
    Cannot insert classification rule

It happens when flow_get_tirn calls flow_type_to_traffic_type with
flow_type = IP_USER_FLOW or IPV6_USER_FLOW. That function only handles
IPV4_FLOW and IPV6_FLOW cases, but unlike all other cases which are
common for hash and spec, IPv4 and IPv6 defines different contants for
hash and for spec:

    #define	TCP_V4_FLOW	0x01	/* hash or spec (tcp_ip4_spec) */
    #define	UDP_V4_FLOW	0x02	/* hash or spec (udp_ip4_spec) */
    ...
    #define	IPV4_USER_FLOW	0x0d	/* spec only (usr_ip4_spec) */
    #define	IP_USER_FLOW	IPV4_USER_FLOW
    #define	IPV6_USER_FLOW	0x0e	/* spec only (usr_ip6_spec; nfc only) */
    #define	IPV4_FLOW	0x10	/* hash only */
    #define	IPV6_FLOW	0x11	/* hash only */

Extend the switch in flow_type_to_traffic_type to support both, which
fixes the failing ethtool -N command with flow-type ip4 or ip6.

Fixes: 248d3b4c9a39 ("net/mlx5e: Support flow classification into RSS contexts")
Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
index 773624bb2c5d..d68230a7b9f4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
@@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
 	case ESP_V6_FLOW:
 		return MLX5_TT_IPV6_IPSEC_ESP;
 	case IPV4_FLOW:
+	case IP_USER_FLOW:
 		return MLX5_TT_IPV4;
 	case IPV6_FLOW:
+	case IPV6_USER_FLOW:
 		return MLX5_TT_IPV6;
 	default:
 		return -EINVAL;
-- 
2.48.1


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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-19 12:45 [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context Maxim Mikityanskiy
@ 2025-03-19 14:24 ` Daniel Borkmann
  2025-03-19 15:46 ` Joe Damato
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 12+ messages in thread
From: Daniel Borkmann @ 2025-03-19 14:24 UTC (permalink / raw)
  To: Maxim Mikityanskiy, Saeed Mahameed, Tariq Toukan
  Cc: Leon Romanovsky, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, Maxim Mikityanskiy

On 3/19/25 1:45 PM, Maxim Mikityanskiy wrote:
> There commands can be used to add an RSS context and steer some traffic
> into it:
> 
>      # ethtool -X eth0 context new
>      New RSS context is 1
>      # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>      Added rule with ID 1023
> 
> However, the second command fails with EINVAL on mlx5e:
> 
>      # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>      rmgr: Cannot insert RX class rule: Invalid argument
>      Cannot insert classification rule
> 
> It happens when flow_get_tirn calls flow_type_to_traffic_type with
> flow_type = IP_USER_FLOW or IPV6_USER_FLOW. That function only handles
> IPV4_FLOW and IPV6_FLOW cases, but unlike all other cases which are
> common for hash and spec, IPv4 and IPv6 defines different contants for
> hash and for spec:
> 
>      #define	TCP_V4_FLOW	0x01	/* hash or spec (tcp_ip4_spec) */
>      #define	UDP_V4_FLOW	0x02	/* hash or spec (udp_ip4_spec) */
>      ...
>      #define	IPV4_USER_FLOW	0x0d	/* spec only (usr_ip4_spec) */
>      #define	IP_USER_FLOW	IPV4_USER_FLOW
>      #define	IPV6_USER_FLOW	0x0e	/* spec only (usr_ip6_spec; nfc only) */
>      #define	IPV4_FLOW	0x10	/* hash only */
>      #define	IPV6_FLOW	0x11	/* hash only */
> 
> Extend the switch in flow_type_to_traffic_type to support both, which
> fixes the failing ethtool -N command with flow-type ip4 or ip6.
> 
> Fixes: 248d3b4c9a39 ("net/mlx5e: Support flow classification into RSS contexts")
> Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>

Awesome, thanks Max!

Tested-by: Daniel Borkmann <daniel@iogearbox.net>

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-19 12:45 [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context Maxim Mikityanskiy
  2025-03-19 14:24 ` Daniel Borkmann
@ 2025-03-19 15:46 ` Joe Damato
  2025-03-20  7:32 ` Tariq Toukan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 12+ messages in thread
From: Joe Damato @ 2025-03-19 15:46 UTC (permalink / raw)
  To: Maxim Mikityanskiy
  Cc: Saeed Mahameed, Tariq Toukan, Leon Romanovsky, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	netdev, Maxim Mikityanskiy

On Wed, Mar 19, 2025 at 02:45:08PM +0200, Maxim Mikityanskiy wrote:
> There commands can be used to add an RSS context and steer some traffic
> into it:
> 
>     # ethtool -X eth0 context new
>     New RSS context is 1
>     # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>     Added rule with ID 1023
> 
> However, the second command fails with EINVAL on mlx5e:
> 
>     # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>     rmgr: Cannot insert RX class rule: Invalid argument
>     Cannot insert classification rule
> 
> It happens when flow_get_tirn calls flow_type_to_traffic_type with
> flow_type = IP_USER_FLOW or IPV6_USER_FLOW. That function only handles
> IPV4_FLOW and IPV6_FLOW cases, but unlike all other cases which are
> common for hash and spec, IPv4 and IPv6 defines different contants for
> hash and for spec:
> 
>     #define	TCP_V4_FLOW	0x01	/* hash or spec (tcp_ip4_spec) */
>     #define	UDP_V4_FLOW	0x02	/* hash or spec (udp_ip4_spec) */
>     ...
>     #define	IPV4_USER_FLOW	0x0d	/* spec only (usr_ip4_spec) */
>     #define	IP_USER_FLOW	IPV4_USER_FLOW
>     #define	IPV6_USER_FLOW	0x0e	/* spec only (usr_ip6_spec; nfc only) */
>     #define	IPV4_FLOW	0x10	/* hash only */
>     #define	IPV6_FLOW	0x11	/* hash only */
> 
> Extend the switch in flow_type_to_traffic_type to support both, which
> fixes the failing ethtool -N command with flow-type ip4 or ip6.
> 
> Fixes: 248d3b4c9a39 ("net/mlx5e: Support flow classification into RSS contexts")
> Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> index 773624bb2c5d..d68230a7b9f4 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
>  	case ESP_V6_FLOW:
>  		return MLX5_TT_IPV6_IPSEC_ESP;
>  	case IPV4_FLOW:
> +	case IP_USER_FLOW:
>  		return MLX5_TT_IPV4;
>  	case IPV6_FLOW:
> +	case IPV6_USER_FLOW:
>  		return MLX5_TT_IPV6;
>  	default:
>  		return -EINVAL;

Good catch.

Reviewed-by: Joe Damato <jdamato@fastly.com>

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-19 12:45 [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context Maxim Mikityanskiy
  2025-03-19 14:24 ` Daniel Borkmann
  2025-03-19 15:46 ` Joe Damato
@ 2025-03-20  7:32 ` Tariq Toukan
  2025-03-20  7:43   ` Maxim Mikityanskiy
  2025-03-20  8:25 ` Gal Pressman
  2025-03-24 20:50 ` patchwork-bot+netdevbpf
  4 siblings, 1 reply; 12+ messages in thread
From: Tariq Toukan @ 2025-03-20  7:32 UTC (permalink / raw)
  To: Maxim Mikityanskiy, Saeed Mahameed
  Cc: Leon Romanovsky, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, Maxim Mikityanskiy,
	Tariq Toukan



On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
> There commands can be used to add an RSS context and steer some traffic
> into it:
> 
>      # ethtool -X eth0 context new
>      New RSS context is 1
>      # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>      Added rule with ID 1023
> 
> However, the second command fails with EINVAL on mlx5e:
> 
>      # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>      rmgr: Cannot insert RX class rule: Invalid argument
>      Cannot insert classification rule
> 
> It happens when flow_get_tirn calls flow_type_to_traffic_type with
> flow_type = IP_USER_FLOW or IPV6_USER_FLOW. That function only handles
> IPV4_FLOW and IPV6_FLOW cases, but unlike all other cases which are
> common for hash and spec, IPv4 and IPv6 defines different contants for
> hash and for spec:
> 
>      #define	TCP_V4_FLOW	0x01	/* hash or spec (tcp_ip4_spec) */
>      #define	UDP_V4_FLOW	0x02	/* hash or spec (udp_ip4_spec) */
>      ...
>      #define	IPV4_USER_FLOW	0x0d	/* spec only (usr_ip4_spec) */
>      #define	IP_USER_FLOW	IPV4_USER_FLOW
>      #define	IPV6_USER_FLOW	0x0e	/* spec only (usr_ip6_spec; nfc only) */
>      #define	IPV4_FLOW	0x10	/* hash only */
>      #define	IPV6_FLOW	0x11	/* hash only */
> 
> Extend the switch in flow_type_to_traffic_type to support both, which
> fixes the failing ethtool -N command with flow-type ip4 or ip6.
> 

Hi Maxim,
Thanks for your patch!

> Fixes: 248d3b4c9a39 ("net/mlx5e: Support flow classification into RSS contexts")

Seems that the issue originates in commit 756c41603a18 ("net/mlx5e: 
ethtool, Support user configuration for RX hash fields"), when directly 
classifying into an RQ, before the multi RSS context support.

> Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>
> ---
>   drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> index 773624bb2c5d..d68230a7b9f4 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
>   	case ESP_V6_FLOW:
>   		return MLX5_TT_IPV6_IPSEC_ESP;
>   	case IPV4_FLOW:
> +	case IP_USER_FLOW:
>   		return MLX5_TT_IPV4;
>   	case IPV6_FLOW:
> +	case IPV6_USER_FLOW:
>   		return MLX5_TT_IPV6;
>   	default:
>   		return -EINVAL;


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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-20  7:32 ` Tariq Toukan
@ 2025-03-20  7:43   ` Maxim Mikityanskiy
  2025-03-20  8:09     ` Tariq Toukan
  0 siblings, 1 reply; 12+ messages in thread
From: Maxim Mikityanskiy @ 2025-03-20  7:43 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Saeed Mahameed, Leon Romanovsky, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev,
	Maxim Mikityanskiy, Tariq Toukan

On Thu, 20 Mar 2025 at 09:32, Tariq Toukan <ttoukan.linux@gmail.com> wrote:
>
>
>
> On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
> > There commands can be used to add an RSS context and steer some traffic
> > into it:
> >
> >      # ethtool -X eth0 context new
> >      New RSS context is 1
> >      # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
> >      Added rule with ID 1023
> >
> > However, the second command fails with EINVAL on mlx5e:
> >
> >      # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
> >      rmgr: Cannot insert RX class rule: Invalid argument
> >      Cannot insert classification rule
> >
> > It happens when flow_get_tirn calls flow_type_to_traffic_type with
> > flow_type = IP_USER_FLOW or IPV6_USER_FLOW. That function only handles
> > IPV4_FLOW and IPV6_FLOW cases, but unlike all other cases which are
> > common for hash and spec, IPv4 and IPv6 defines different contants for
> > hash and for spec:
> >
> >      #define  TCP_V4_FLOW     0x01    /* hash or spec (tcp_ip4_spec) */
> >      #define  UDP_V4_FLOW     0x02    /* hash or spec (udp_ip4_spec) */
> >      ...
> >      #define  IPV4_USER_FLOW  0x0d    /* spec only (usr_ip4_spec) */
> >      #define  IP_USER_FLOW    IPV4_USER_FLOW
> >      #define  IPV6_USER_FLOW  0x0e    /* spec only (usr_ip6_spec; nfc only) */
> >      #define  IPV4_FLOW       0x10    /* hash only */
> >      #define  IPV6_FLOW       0x11    /* hash only */
> >
> > Extend the switch in flow_type_to_traffic_type to support both, which
> > fixes the failing ethtool -N command with flow-type ip4 or ip6.
> >
>
> Hi Maxim,
> Thanks for your patch!
>
> > Fixes: 248d3b4c9a39 ("net/mlx5e: Support flow classification into RSS contexts")
>
> Seems that the issue originates in commit 756c41603a18 ("net/mlx5e:
> ethtool, Support user configuration for RX hash fields"),

Not really; commit 756c41603a18 configures the hash (not flow
direction), and IPV4_FLOW/IPV6_FLOW are already correct constants for
IP-based hashes. Moreover, we don't support them anyway, see
mlx5e_set_rss_hash_opt:

    /*  RSS does not support anything other than hashing to queues
     *  on src IP, dest IP, TCP/UDP src port and TCP/UDP dest
     *  port.
     */
    if (flow_type != TCP_V4_FLOW &&
        flow_type != TCP_V6_FLOW &&
        flow_type != UDP_V4_FLOW &&
        flow_type != UDP_V6_FLOW)
        return -EOPNOTSUPP;

> when directly
> classifying into an RQ, before the multi RSS context support.

Direct classification into an RQ actually works before my fix, because
it goes to another branch in flow_get_tirn, that doesn't call
flow_type_to_traffic_type. It's only steering to an RSS context that
was broken for flow-type ip4/ip6.

> > Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>
> > ---
> >   drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> > index 773624bb2c5d..d68230a7b9f4 100644
> > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> > @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
> >       case ESP_V6_FLOW:
> >               return MLX5_TT_IPV6_IPSEC_ESP;
> >       case IPV4_FLOW:
> > +     case IP_USER_FLOW:
> >               return MLX5_TT_IPV4;
> >       case IPV6_FLOW:
> > +     case IPV6_USER_FLOW:
> >               return MLX5_TT_IPV6;
> >       default:
> >               return -EINVAL;
>

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-20  7:43   ` Maxim Mikityanskiy
@ 2025-03-20  8:09     ` Tariq Toukan
  0 siblings, 0 replies; 12+ messages in thread
From: Tariq Toukan @ 2025-03-20  8:09 UTC (permalink / raw)
  To: Maxim Mikityanskiy
  Cc: Saeed Mahameed, Leon Romanovsky, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev,
	Maxim Mikityanskiy, Tariq Toukan



On 20/03/2025 9:43, Maxim Mikityanskiy wrote:
> On Thu, 20 Mar 2025 at 09:32, Tariq Toukan <ttoukan.linux@gmail.com> wrote:
>>
>>
>>
>> On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
>>> There commands can be used to add an RSS context and steer some traffic
>>> into it:
>>>
>>>       # ethtool -X eth0 context new
>>>       New RSS context is 1
>>>       # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>>>       Added rule with ID 1023
>>>
>>> However, the second command fails with EINVAL on mlx5e:
>>>
>>>       # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>>>       rmgr: Cannot insert RX class rule: Invalid argument
>>>       Cannot insert classification rule
>>>
>>> It happens when flow_get_tirn calls flow_type_to_traffic_type with
>>> flow_type = IP_USER_FLOW or IPV6_USER_FLOW. That function only handles
>>> IPV4_FLOW and IPV6_FLOW cases, but unlike all other cases which are
>>> common for hash and spec, IPv4 and IPv6 defines different contants for
>>> hash and for spec:
>>>
>>>       #define  TCP_V4_FLOW     0x01    /* hash or spec (tcp_ip4_spec) */
>>>       #define  UDP_V4_FLOW     0x02    /* hash or spec (udp_ip4_spec) */
>>>       ...
>>>       #define  IPV4_USER_FLOW  0x0d    /* spec only (usr_ip4_spec) */
>>>       #define  IP_USER_FLOW    IPV4_USER_FLOW
>>>       #define  IPV6_USER_FLOW  0x0e    /* spec only (usr_ip6_spec; nfc only) */
>>>       #define  IPV4_FLOW       0x10    /* hash only */
>>>       #define  IPV6_FLOW       0x11    /* hash only */
>>>
>>> Extend the switch in flow_type_to_traffic_type to support both, which
>>> fixes the failing ethtool -N command with flow-type ip4 or ip6.
>>>
>>
>> Hi Maxim,
>> Thanks for your patch!
>>
>>> Fixes: 248d3b4c9a39 ("net/mlx5e: Support flow classification into RSS contexts")
>>
>> Seems that the issue originates in commit 756c41603a18 ("net/mlx5e:
>> ethtool, Support user configuration for RX hash fields"),
> 
> Not really; commit 756c41603a18 configures the hash (not flow
> direction), and IPV4_FLOW/IPV6_FLOW are already correct constants for
> IP-based hashes. Moreover, we don't support them anyway, see
> mlx5e_set_rss_hash_opt:
> 
>      /*  RSS does not support anything other than hashing to queues
>       *  on src IP, dest IP, TCP/UDP src port and TCP/UDP dest
>       *  port.
>       */
>      if (flow_type != TCP_V4_FLOW &&
>          flow_type != TCP_V6_FLOW &&
>          flow_type != UDP_V4_FLOW &&
>          flow_type != UDP_V6_FLOW)
>          return -EOPNOTSUPP;
> 
>> when directly
>> classifying into an RQ, before the multi RSS context support.
> 
> Direct classification into an RQ actually works before my fix, because
> it goes to another branch in flow_get_tirn, that doesn't call
> flow_type_to_traffic_type. It's only steering to an RSS context that
> was broken for flow-type ip4/ip6.
> 

Thanks for your patch.
LGTM.
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>

Regards,
Tariq

>>> Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>
>>> ---
>>>    drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 2 ++
>>>    1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>> index 773624bb2c5d..d68230a7b9f4 100644
>>> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
>>>        case ESP_V6_FLOW:
>>>                return MLX5_TT_IPV6_IPSEC_ESP;
>>>        case IPV4_FLOW:
>>> +     case IP_USER_FLOW:
>>>                return MLX5_TT_IPV4;
>>>        case IPV6_FLOW:
>>> +     case IPV6_USER_FLOW:
>>>                return MLX5_TT_IPV6;
>>>        default:
>>>                return -EINVAL;
>>


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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-19 12:45 [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context Maxim Mikityanskiy
                   ` (2 preceding siblings ...)
  2025-03-20  7:32 ` Tariq Toukan
@ 2025-03-20  8:25 ` Gal Pressman
  2025-03-20  8:28   ` Maxim Mikityanskiy
  2025-03-24 20:50 ` patchwork-bot+netdevbpf
  4 siblings, 1 reply; 12+ messages in thread
From: Gal Pressman @ 2025-03-20  8:25 UTC (permalink / raw)
  To: Maxim Mikityanskiy, Saeed Mahameed, Tariq Toukan
  Cc: Leon Romanovsky, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, Maxim Mikityanskiy

Hey Maxim!

On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> index 773624bb2c5d..d68230a7b9f4 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
>  	case ESP_V6_FLOW:
>  		return MLX5_TT_IPV6_IPSEC_ESP;
>  	case IPV4_FLOW:
> +	case IP_USER_FLOW:

They're the same, but I think IPV4_USER_FLOW is the "modern" define that
should be used.

>  		return MLX5_TT_IPV4;
>  	case IPV6_FLOW:
> +	case IPV6_USER_FLOW:
>  		return MLX5_TT_IPV6;
>  	default:
>  		return -EINVAL;

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-20  8:25 ` Gal Pressman
@ 2025-03-20  8:28   ` Maxim Mikityanskiy
  2025-03-20  8:44     ` Gal Pressman
  0 siblings, 1 reply; 12+ messages in thread
From: Maxim Mikityanskiy @ 2025-03-20  8:28 UTC (permalink / raw)
  To: Gal Pressman
  Cc: Saeed Mahameed, Tariq Toukan, Leon Romanovsky, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	netdev, Maxim Mikityanskiy

On Thu, 20 Mar 2025 at 10:25, Gal Pressman <gal@nvidia.com> wrote:
>
> Hey Maxim!
>
> On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
> > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> > index 773624bb2c5d..d68230a7b9f4 100644
> > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> > @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
> >       case ESP_V6_FLOW:
> >               return MLX5_TT_IPV6_IPSEC_ESP;
> >       case IPV4_FLOW:
> > +     case IP_USER_FLOW:
>
> They're the same, but I think IPV4_USER_FLOW is the "modern" define that
> should be used.

Yeah, I used IP_USER_FLOW for consistency with other places in this
file. If you prefer that, I can resubmit with IPV4_USER_FLOW.

>
> >               return MLX5_TT_IPV4;
> >       case IPV6_FLOW:
> > +     case IPV6_USER_FLOW:
> >               return MLX5_TT_IPV6;
> >       default:
> >               return -EINVAL;

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-20  8:28   ` Maxim Mikityanskiy
@ 2025-03-20  8:44     ` Gal Pressman
  2025-03-20  8:58       ` Tariq Toukan
  0 siblings, 1 reply; 12+ messages in thread
From: Gal Pressman @ 2025-03-20  8:44 UTC (permalink / raw)
  To: Maxim Mikityanskiy
  Cc: Saeed Mahameed, Tariq Toukan, Leon Romanovsky, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	netdev, Maxim Mikityanskiy

On 20/03/2025 10:28, Maxim Mikityanskiy wrote:
> On Thu, 20 Mar 2025 at 10:25, Gal Pressman <gal@nvidia.com> wrote:
>>
>> Hey Maxim!
>>
>> On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
>>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>> index 773624bb2c5d..d68230a7b9f4 100644
>>> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
>>>       case ESP_V6_FLOW:
>>>               return MLX5_TT_IPV6_IPSEC_ESP;
>>>       case IPV4_FLOW:
>>> +     case IP_USER_FLOW:
>>
>> They're the same, but I think IPV4_USER_FLOW is the "modern" define that
>> should be used.
> 
> Yeah, I used IP_USER_FLOW for consistency with other places in this
> file. If you prefer that, I can resubmit with IPV4_USER_FLOW.

I don't mind, up to Tariq.
We can followup with a patch that converts all usages.

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-20  8:44     ` Gal Pressman
@ 2025-03-20  8:58       ` Tariq Toukan
  2025-03-20  9:20         ` Maxim Mikityanskiy
  0 siblings, 1 reply; 12+ messages in thread
From: Tariq Toukan @ 2025-03-20  8:58 UTC (permalink / raw)
  To: Gal Pressman, Maxim Mikityanskiy
  Cc: Saeed Mahameed, Tariq Toukan, Leon Romanovsky, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	netdev, Maxim Mikityanskiy



On 20/03/2025 10:44, Gal Pressman wrote:
> On 20/03/2025 10:28, Maxim Mikityanskiy wrote:
>> On Thu, 20 Mar 2025 at 10:25, Gal Pressman <gal@nvidia.com> wrote:
>>>
>>> Hey Maxim!
>>>
>>> On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
>>>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>>> index 773624bb2c5d..d68230a7b9f4 100644
>>>> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
>>>> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
>>>>        case ESP_V6_FLOW:
>>>>                return MLX5_TT_IPV6_IPSEC_ESP;
>>>>        case IPV4_FLOW:
>>>> +     case IP_USER_FLOW:
>>>
>>> They're the same, but I think IPV4_USER_FLOW is the "modern" define that
>>> should be used.
>>
>> Yeah, I used IP_USER_FLOW for consistency with other places in this
>> file. If you prefer that, I can resubmit with IPV4_USER_FLOW.
> 
> I don't mind, up to Tariq.
> We can followup with a patch that converts all usages.
> 

Please keep using IP_USER_FLOW for consistency with existing code.
We may converts them all together later.

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-20  8:58       ` Tariq Toukan
@ 2025-03-20  9:20         ` Maxim Mikityanskiy
  0 siblings, 0 replies; 12+ messages in thread
From: Maxim Mikityanskiy @ 2025-03-20  9:20 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Gal Pressman, Saeed Mahameed, Tariq Toukan, Leon Romanovsky,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, netdev, Maxim Mikityanskiy

On Thu, 20 Mar 2025 at 10:58, Tariq Toukan <ttoukan.linux@gmail.com> wrote:
>
>
>
> On 20/03/2025 10:44, Gal Pressman wrote:
> > On 20/03/2025 10:28, Maxim Mikityanskiy wrote:
> >> On Thu, 20 Mar 2025 at 10:25, Gal Pressman <gal@nvidia.com> wrote:
> >>>
> >>> Hey Maxim!
> >>>
> >>> On 19/03/2025 14:45, Maxim Mikityanskiy wrote:
> >>>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> >>>> index 773624bb2c5d..d68230a7b9f4 100644
> >>>> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> >>>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
> >>>> @@ -884,8 +884,10 @@ static int flow_type_to_traffic_type(u32 flow_type)
> >>>>        case ESP_V6_FLOW:
> >>>>                return MLX5_TT_IPV6_IPSEC_ESP;
> >>>>        case IPV4_FLOW:
> >>>> +     case IP_USER_FLOW:
> >>>
> >>> They're the same, but I think IPV4_USER_FLOW is the "modern" define that
> >>> should be used.
> >>
> >> Yeah, I used IP_USER_FLOW for consistency with other places in this
> >> file. If you prefer that, I can resubmit with IPV4_USER_FLOW.
> >
> > I don't mind, up to Tariq.
> > We can followup with a patch that converts all usages.
> >
>
> Please keep using IP_USER_FLOW for consistency with existing code.
> We may converts them all together later.

OK, sounds good to me, keeping as is.

Thanks for the reviews!

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

* Re: [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
  2025-03-19 12:45 [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context Maxim Mikityanskiy
                   ` (3 preceding siblings ...)
  2025-03-20  8:25 ` Gal Pressman
@ 2025-03-24 20:50 ` patchwork-bot+netdevbpf
  4 siblings, 0 replies; 12+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-03-24 20:50 UTC (permalink / raw)
  To: Maxim Mikityanskiy
  Cc: saeedm, tariqt, leon, andrew+netdev, davem, edumazet, kuba,
	pabeni, netdev, maxim

Hello:

This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 19 Mar 2025 14:45:08 +0200 you wrote:
> There commands can be used to add an RSS context and steer some traffic
> into it:
> 
>     # ethtool -X eth0 context new
>     New RSS context is 1
>     # ethtool -N eth0 flow-type ip4 dst-ip 1.1.1.1 context 1
>     Added rule with ID 1023
> 
> [...]

Here is the summary with links:
  - [net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context
    https://git.kernel.org/netdev/net/c/3865bec60683

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



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

end of thread, other threads:[~2025-03-24 20:49 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-19 12:45 [PATCH net] net/mlx5e: Fix ethtool -N flow-type ip4 to RSS context Maxim Mikityanskiy
2025-03-19 14:24 ` Daniel Borkmann
2025-03-19 15:46 ` Joe Damato
2025-03-20  7:32 ` Tariq Toukan
2025-03-20  7:43   ` Maxim Mikityanskiy
2025-03-20  8:09     ` Tariq Toukan
2025-03-20  8:25 ` Gal Pressman
2025-03-20  8:28   ` Maxim Mikityanskiy
2025-03-20  8:44     ` Gal Pressman
2025-03-20  8:58       ` Tariq Toukan
2025-03-20  9:20         ` Maxim Mikityanskiy
2025-03-24 20:50 ` patchwork-bot+netdevbpf

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 NNTP newsgroup(s).