mbox series

[mlx5-next,0/8] mlx5 IPsec RoCEv2 support and netdev events fixes in RDMA

Message ID 20230105041756.677120-1-saeed@kernel.org (mailing list archive)
Headers show
Series mlx5 IPsec RoCEv2 support and netdev events fixes in RDMA | expand

Message

Saeed Mahameed Jan. 5, 2023, 4:17 a.m. UTC
From: Saeed Mahameed <saeedm@nvidia.com>

This series includes mlx5 modifications for both net-next and
rdma-next trees.

In case of no objections, this series will be applied to net-mlx5 branch
first then sent in PR to both rdma and net trees.

1) From Jiri: fixe a deadlock in mlx5_ib's netdev notifier unregister.
2) From Mark and Patrisious: add IPsec RoCEv2 support.

Thanks,
Saeed.

Jiri Pirko (3):
  net/mlx5e: Fix trap event handling
  net/mlx5e: Propagate an internal event in case uplink netdev changes
  RDMA/mlx5: Track netdev to avoid deadlock during netdev notifier
    unregister

Mark Zhang (4):
  net/mlx5: Implement new destination type TABLE_TYPE
  net/mlx5: Add IPSec priorities in RDMA namespaces
  net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
  net/mlx5: Configure IPsec steering for egress RoCEv2 traffic

Patrisious Haddad (1):
  net/mlx5: Introduce new destination type TABLE_TYPE

 drivers/infiniband/hw/mlx5/main.c             |  78 ++--
 drivers/infiniband/hw/mlx5/mlx5_ib.h          |   3 +
 .../net/ethernet/mellanox/mlx5/core/Makefile  |   2 +-
 .../net/ethernet/mellanox/mlx5/core/devlink.c |   9 +-
 .../net/ethernet/mellanox/mlx5/core/devlink.h |   5 +
 .../mellanox/mlx5/core/diag/fs_tracepoint.c   |   4 +
 .../net/ethernet/mellanox/mlx5/core/en/fs.h   |   1 +
 .../mellanox/mlx5/core/en_accel/ipsec.h       |   1 +
 .../mellanox/mlx5/core/en_accel/ipsec_fs.c    |  59 ++-
 .../net/ethernet/mellanox/mlx5/core/en_main.c |  15 +-
 .../net/ethernet/mellanox/mlx5/core/events.c  |   2 +
 .../net/ethernet/mellanox/mlx5/core/fs_cmd.c  |   6 +
 .../net/ethernet/mellanox/mlx5/core/fs_core.c |  44 ++-
 .../mellanox/mlx5/core/lib/ipsec_fs_roce.c    | 372 ++++++++++++++++++
 .../mellanox/mlx5/core/lib/ipsec_fs_roce.h    |  20 +
 .../ethernet/mellanox/mlx5/core/lib/mlx5.h    |   5 -
 .../net/ethernet/mellanox/mlx5/core/main.c    |  20 +
 include/linux/mlx5/device.h                   |   1 +
 include/linux/mlx5/driver.h                   |   5 +
 include/linux/mlx5/fs.h                       |   3 +
 include/linux/mlx5/mlx5_ifc.h                 |  12 +-
 21 files changed, 614 insertions(+), 53 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.h

Comments

Leon Romanovsky Jan. 5, 2023, 1:05 p.m. UTC | #1
On Wed, Jan 04, 2023 at 08:17:48PM -0800, Saeed Mahameed wrote:
> From: Saeed Mahameed <saeedm@nvidia.com>
> 
> This series includes mlx5 modifications for both net-next and
> rdma-next trees.
> 
> In case of no objections, this series will be applied to net-mlx5 branch
> first then sent in PR to both rdma and net trees.

PR should be based on Linus's -rcX tag and shouldn't include only this patchset.

Thanks

> 
> 1) From Jiri: fixe a deadlock in mlx5_ib's netdev notifier unregister.
> 2) From Mark and Patrisious: add IPsec RoCEv2 support.
> 
> Thanks,
> Saeed.
> 
> Jiri Pirko (3):
>   net/mlx5e: Fix trap event handling
>   net/mlx5e: Propagate an internal event in case uplink netdev changes
>   RDMA/mlx5: Track netdev to avoid deadlock during netdev notifier
>     unregister
> 
> Mark Zhang (4):
>   net/mlx5: Implement new destination type TABLE_TYPE
>   net/mlx5: Add IPSec priorities in RDMA namespaces
>   net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
>   net/mlx5: Configure IPsec steering for egress RoCEv2 traffic
> 
> Patrisious Haddad (1):
>   net/mlx5: Introduce new destination type TABLE_TYPE
> 
>  drivers/infiniband/hw/mlx5/main.c             |  78 ++--
>  drivers/infiniband/hw/mlx5/mlx5_ib.h          |   3 +
>  .../net/ethernet/mellanox/mlx5/core/Makefile  |   2 +-
>  .../net/ethernet/mellanox/mlx5/core/devlink.c |   9 +-
>  .../net/ethernet/mellanox/mlx5/core/devlink.h |   5 +
>  .../mellanox/mlx5/core/diag/fs_tracepoint.c   |   4 +
>  .../net/ethernet/mellanox/mlx5/core/en/fs.h   |   1 +
>  .../mellanox/mlx5/core/en_accel/ipsec.h       |   1 +
>  .../mellanox/mlx5/core/en_accel/ipsec_fs.c    |  59 ++-
>  .../net/ethernet/mellanox/mlx5/core/en_main.c |  15 +-
>  .../net/ethernet/mellanox/mlx5/core/events.c  |   2 +
>  .../net/ethernet/mellanox/mlx5/core/fs_cmd.c  |   6 +
>  .../net/ethernet/mellanox/mlx5/core/fs_core.c |  44 ++-
>  .../mellanox/mlx5/core/lib/ipsec_fs_roce.c    | 372 ++++++++++++++++++
>  .../mellanox/mlx5/core/lib/ipsec_fs_roce.h    |  20 +
>  .../ethernet/mellanox/mlx5/core/lib/mlx5.h    |   5 -
>  .../net/ethernet/mellanox/mlx5/core/main.c    |  20 +
>  include/linux/mlx5/device.h                   |   1 +
>  include/linux/mlx5/driver.h                   |   5 +
>  include/linux/mlx5/fs.h                       |   3 +
>  include/linux/mlx5/mlx5_ifc.h                 |  12 +-
>  21 files changed, 614 insertions(+), 53 deletions(-)
>  create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c
>  create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.h
> 
> -- 
> 2.38.1
>
Jakub Kicinski Jan. 5, 2023, 6:37 p.m. UTC | #2
On Thu, 5 Jan 2023 15:05:54 +0200 Leon Romanovsky wrote:
> > This series includes mlx5 modifications for both net-next and
> > rdma-next trees.
> > 
> > In case of no objections, this series will be applied to net-mlx5 branch
> > first then sent in PR to both rdma and net trees.  
> 
> PR should be based on Linus's -rcX tag and shouldn't include only this patchset.

FWIW I don't understand what you mean by this comment.
PR should be based on a common ancestor, the -rc tags 
are just a convenient shorthand.
Jakub Kicinski Jan. 5, 2023, 6:38 p.m. UTC | #3
On Wed,  4 Jan 2023 20:17:48 -0800 Saeed Mahameed wrote:
>   net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
>   net/mlx5: Configure IPsec steering for egress RoCEv2 traffic

How is the TC forwarding coming along?
Leon Romanovsky Jan. 5, 2023, 8:12 p.m. UTC | #4
On Thu, Jan 05, 2023 at 10:37:46AM -0800, Jakub Kicinski wrote:
> On Thu, 5 Jan 2023 15:05:54 +0200 Leon Romanovsky wrote:
> > > This series includes mlx5 modifications for both net-next and
> > > rdma-next trees.
> > > 
> > > In case of no objections, this series will be applied to net-mlx5 branch
> > > first then sent in PR to both rdma and net trees.  
> > 
> > PR should be based on Linus's -rcX tag and shouldn't include only this patchset.
> 
> FWIW I don't understand what you mean by this comment.
> PR should be based on a common ancestor, the -rc tags 
> are just a convenient shorthand.

Linus asked for more than once to use sensible ancestor which is -rc.

Thanks
Jakub Kicinski Jan. 5, 2023, 8:25 p.m. UTC | #5
On Thu, 5 Jan 2023 22:12:28 +0200 Leon Romanovsky wrote:
> > > PR should be based on Linus's -rcX tag and shouldn't include only this patchset.  
> > 
> > FWIW I don't understand what you mean by this comment.
> > PR should be based on a common ancestor, the -rc tags 
> > are just a convenient shorthand.  
> 
> Linus asked for more than once to use sensible ancestor which is -rc.

I mean.. as I said using -rc tags makes sanity checking the PRs easier,
so definitely encouraged.

I was asking more about the second part of your sentence, what do you
mean by "shouldn't include only this patchset" ?
Leon Romanovsky Jan. 6, 2023, 6:41 a.m. UTC | #6
On Thu, Jan 05, 2023 at 12:25:17PM -0800, Jakub Kicinski wrote:
> On Thu, 5 Jan 2023 22:12:28 +0200 Leon Romanovsky wrote:
> > > > PR should be based on Linus's -rcX tag and shouldn't include only this patchset.  
> > > 
> > > FWIW I don't understand what you mean by this comment.
> > > PR should be based on a common ancestor, the -rc tags 
> > > are just a convenient shorthand.  
> > 
> > Linus asked for more than once to use sensible ancestor which is -rc.
> 
> I mean.. as I said using -rc tags makes sanity checking the PRs easier,
> so definitely encouraged.
> 
> I was asking more about the second part of your sentence, what do you
> mean by "shouldn't include only this patchset" ?

When I saw "be applied to net-mlx5 branch", I imagined some branch which
is based on net-rc and not on mlx5-next as usual. It looks like Saeed's
intention was to say mlx5-next, but he misspelled it.

Thanks
Saeed Mahameed Jan. 6, 2023, 7:34 p.m. UTC | #7
On 06 Jan 08:41, Leon Romanovsky wrote:
>On Thu, Jan 05, 2023 at 12:25:17PM -0800, Jakub Kicinski wrote:
>> On Thu, 5 Jan 2023 22:12:28 +0200 Leon Romanovsky wrote:
>> > > > PR should be based on Linus's -rcX tag and shouldn't include only this patchset.
>> > >
>> > > FWIW I don't understand what you mean by this comment.
>> > > PR should be based on a common ancestor, the -rc tags
>> > > are just a convenient shorthand.
>> >
>> > Linus asked for more than once to use sensible ancestor which is -rc.
>>
>> I mean.. as I said using -rc tags makes sanity checking the PRs easier,
>> so definitely encouraged.
>>
>> I was asking more about the second part of your sentence, what do you
>> mean by "shouldn't include only this patchset" ?
>
>When I saw "be applied to net-mlx5 branch", I imagined some branch which
>is based on net-rc and not on mlx5-next as usual. It looks like Saeed's
>intention was to say mlx5-next, but he misspelled it.

I meant mlx5-next.
Saeed Mahameed Jan. 6, 2023, 7:35 p.m. UTC | #8
On 05 Jan 10:38, Jakub Kicinski wrote:
>On Wed,  4 Jan 2023 20:17:48 -0800 Saeed Mahameed wrote:
>>   net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
>>   net/mlx5: Configure IPsec steering for egress RoCEv2 traffic
>
>How is the TC forwarding coming along?

Not aware of such effort, can you please elaborate ?
Jakub Kicinski Jan. 6, 2023, 9:17 p.m. UTC | #9
On Fri, 6 Jan 2023 11:35:38 -0800 Saeed Mahameed wrote:
> On 05 Jan 10:38, Jakub Kicinski wrote:
> >On Wed,  4 Jan 2023 20:17:48 -0800 Saeed Mahameed wrote:  
> >>   net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
> >>   net/mlx5: Configure IPsec steering for egress RoCEv2 traffic  
> >
> >How is the TC forwarding coming along?  
> 
> Not aware of such effort, can you please elaborate ? 

When Leon posted the IPsec patches I correctly guessed that it's for
RDMA and expressed my strong preference for RDMA to stop using netdev
interfaces for configuration. He made the claim that the full IPsec
offload will be used for eswitch offload as well, so I'm asking how 
is that work going.
Jason Gunthorpe Jan. 6, 2023, 11:38 p.m. UTC | #10
On Fri, Jan 06, 2023 at 01:17:23PM -0800, Jakub Kicinski wrote:
> On Fri, 6 Jan 2023 11:35:38 -0800 Saeed Mahameed wrote:
> > On 05 Jan 10:38, Jakub Kicinski wrote:
> > >On Wed,  4 Jan 2023 20:17:48 -0800 Saeed Mahameed wrote:  
> > >>   net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
> > >>   net/mlx5: Configure IPsec steering for egress RoCEv2 traffic  
> > >
> > >How is the TC forwarding coming along?  
> > 
> > Not aware of such effort, can you please elaborate ? 
> 
> When Leon posted the IPsec patches I correctly guessed that it's for
> RDMA and expressed my strong preference for RDMA to stop using netdev
> interfaces for configuration.

No, this wasn't done "for" RDMA. RDMA work loads have to run over it,
but not exclusively.

RDMA raw ethernet can already do IPSEC offload, it doesn't need this
netdev part for configuration.

IIRC it was for some non-TC forwarding VM configuration, but Leon
knows better.

Jason
Leon Romanovsky Jan. 7, 2023, 6:37 a.m. UTC | #11
On Fri, Jan 06, 2023 at 01:17:23PM -0800, Jakub Kicinski wrote:
> On Fri, 6 Jan 2023 11:35:38 -0800 Saeed Mahameed wrote:
> > On 05 Jan 10:38, Jakub Kicinski wrote:
> > >On Wed,  4 Jan 2023 20:17:48 -0800 Saeed Mahameed wrote:  
> > >>   net/mlx5: Configure IPsec steering for ingress RoCEv2 traffic
> > >>   net/mlx5: Configure IPsec steering for egress RoCEv2 traffic  
> > >
> > >How is the TC forwarding coming along?  
> > 
> > Not aware of such effort, can you please elaborate ? 
> 
> When Leon posted the IPsec patches I correctly guessed that it's for
> RDMA and expressed my strong preference for RDMA to stop using netdev
> interfaces for configuration. He made the claim that the full IPsec
> offload will be used for eswitch offload as well, so I'm asking how 
> is that work going.

It is planned, as we need this support too for ASAP program, but I simply
can't say for sure if I success to make it in this cycle due to my personal
constraints.

On my plate, without going into much details:
1. Overcome cx7 HW limitation when dealing with hard/soft lifetime counters.
2. Tunnel mode support. 
3. IPsec on FDB. This is TC forwarding support.

Thanks