Skip to content

mlx5 MACsec RoCEv2 support

Leon Romanovsky linux-rdma netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest14 patches 3 repliesIn review

Changes in v1 from the cover letter

* Reordered patches
v0: https://lore.kernel.org/all/[email protected]
---------------------------------------------------------------------

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14macsec: add functions to get macsec real netdevice and check offloaddrivers/net/macsec.c include/net/macsec.h+17 -00 replies
2/14net/mlx5e: Move MACsec flow steering operations to be used as core librarydrivers/net/ethernet/mellanox/mlx5/core/Kconfig drivers/net/ethernet/mellanox/mlx5/core/Makefile drivers/net/ethernet/mellanox/mlx5/core/en.h +6 more+27 -290 replies
3/14net/mlx5: Remove dependency of macsec flow steering on ethernetdrivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c+34 -90 replies
4/14net/mlx5e: Rename MACsec flow steering functions/parameters to suit core naming styledrivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.h drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_stats.c +2 more+119 -1190 replies
5/14net/mlx5e: Move MACsec flow steering and statistics database from ethernet to coredrivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.h drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_stats.c +3 more+23 -250 replies
6/14net/mlx5: Remove netdevice from MACsec steeringdrivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.h+71 -770 replies
7/14net/mlx5: Maintain fs_id xarray per MACsec device inside macsec steeringdrivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.h+271 -940 replies
8/14RDMA/mlx5: Implement MACsec gid addition and deletiondrivers/infiniband/hw/mlx5/Makefile drivers/infiniband/hw/mlx5/macsec.c drivers/infiniband/hw/mlx5/macsec.h +5 more+260 -420 replies
9/14net/mlx5: Add MACsec priorities in RDMA namespacesdrivers/net/ethernet/mellanox/mlx5/core/fs_core.c include/linux/mlx5/fs.h+34 -30 replies
10/14IB/core: Reorder GID delete code for RoCEdrivers/infiniband/core/cache.c+3 -30 replies
11/14net/mlx5: Configure MACsec steering for egress RoCEv2 trafficdrivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c+45 -10 replies
12/14net/mlx5: Configure MACsec steering for ingress RoCEv2 trafficdrivers/net/ethernet/mellanox/mlx5/core/fs_core.c drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c+352 -90 replies
13/14net/mlx5: Add RoCE MACsec steering infrastructure in coredrivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c include/linux/mlx5/device.h +2 more+427 -90 replies
14/14RDMA/mlx5: Handles RoCE MACsec steering rules addition and deletiondrivers/infiniband/hw/mlx5/macsec.c drivers/infiniband/hw/mlx5/macsec.h drivers/infiniband/hw/mlx5/main.c +2 more+246 -170 replies

Reviews trailers per patch

3 of 14 patches have a Reviewed-by or Acked-by.

PatchRaed SalemMark ZhangMaor Gottlieb
1/14R-b R-b
2/14
3/14
4/14
5/14
6/14
7/14
8/14R-b R-b
9/14R-b
10/14
11/14
12/14
13/14
14/14

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [PATCH mlx5-next v1 00/14] mlx5 MACsec RoCEv2 support

From: Leon Romanovsky <[email protected]>

Changelog:
v1:
* Reordered patches
v0: https://lore.kernel.org/all/[email protected]
---------------------------------------------------------------------

From Patrisious:

This series extends previously added MACsec offload support to cover RoCE traffic either.

In order to achieve that, we need configure MACsec with offload between the two endpoints, like below:

REMOTE_MAC=10:70:fd:43:71:c0

* ip addr add 1.1.1.1/16 dev eth2
* ip link set dev eth2 up
* ip link add link eth2 macsec0 type macsec encrypt on
* ip macsec offload macsec0 mac
* ip macsec add macsec0 tx sa 0 pn 1 on key 00 dffafc8d7b9a43d5b9a3dfbbf6a30c16
* ip macsec add macsec0 rx port 1 address $REMOTE_MAC
* ip macsec add macsec0 rx port 1 address $REMOTE_MAC sa 0 pn 1 on key 01 ead3664f508eb06c40ac7104cdae4ce5
* ip addr add 10.1.0.1/16 dev macsec0
* ip link set dev macsec0 up

And in a similar manner on the other machine, while noting the keys order would be reversed and the MAC address of the other machine.

RDMA traffic is separated through relevant GID entries and in case of IP ambiguity issue - meaning we have a physical GIDs and a MACsec GIDs with the same IP/GID, we disable our physical GID in order to force the user to only use the MACsec GID.

Thanks

Patrisious Haddad (14):
macsec: add functions to get macsec real netdevice and check offload net/mlx5e: Move MACsec flow steering operations to be used as core
library
net/mlx5: Remove dependency of macsec flow steering on ethernet net/mlx5e: Rename MACsec flow steering functions/parameters to suit
core naming style
net/mlx5e: Move MACsec flow steering and statistics database from
ethernet to core
net/mlx5: Remove netdevice from MACsec steering
net/mlx5: Maintain fs_id xarray per MACsec device inside macsec
steering
RDMA/mlx5: Implement MACsec gid addition and deletion net/mlx5: Add MACsec priorities in RDMA namespaces IB/core: Reorder GID delete code for RoCE
net/mlx5: Configure MACsec steering for egress RoCEv2 traffic net/mlx5: Configure MACsec steering for ingress RoCEv2 traffic net/mlx5: Add RoCE MACsec steering infrastructure in core RDMA/mlx5: Handles RoCE MACsec steering rules addition and deletion

 drivers/infiniband/core/cache.c               |    6 +-
 drivers/infiniband/hw/mlx5/Makefile           |    1 +
 drivers/infiniband/hw/mlx5/macsec.c           |  364 +++
 drivers/infiniband/hw/mlx5/macsec.h           |   29 +
 drivers/infiniband/hw/mlx5/main.c             |   41 +-
 drivers/infiniband/hw/mlx5/mlx5_ib.h          |   17 +
 .../net/ethernet/mellanox/mlx5/core/Kconfig   |    2 +-
 .../net/ethernet/mellanox/mlx5/core/Makefile  |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h  |    2 +-
 .../mellanox/mlx5/core/en_accel/en_accel.h    |    4 +-
 .../mellanox/mlx5/core/en_accel/macsec.c      |  176 +-
 .../mellanox/mlx5/core/en_accel/macsec.h      |   26 +-
 .../mellanox/mlx5/core/en_accel/macsec_fs.c   | 1394 ----------
 .../mellanox/mlx5/core/en_accel/macsec_fs.h   |   47 -
 .../mlx5/core/en_accel/macsec_stats.c         |   22 +-
 .../ethernet/mellanox/mlx5/core/en_stats.c    |    2 +-
 .../net/ethernet/mellanox/mlx5/core/fs_cmd.c  |    1 +
 .../net/ethernet/mellanox/mlx5/core/fs_core.c |   37 +-
 .../mellanox/mlx5/core/lib/macsec_fs.c        | 2411 +++++++++++++++++
 .../mellanox/mlx5/core/lib/macsec_fs.h        |   64 +
 drivers/net/macsec.c                          |   15 +
 include/linux/mlx5/device.h                   |    2 +
 include/linux/mlx5/driver.h                   |   51 +
 include/linux/mlx5/fs.h                       |    2 +
 include/linux/mlx5/macsec.h                   |   32 +
 include/net/macsec.h                          |    2 +
 26 files changed, 3122 insertions(+), 1630 deletions(-)
 create mode 100644 drivers/infiniband/hw/mlx5/macsec.c
 create mode 100644 drivers/infiniband/hw/mlx5/macsec.h
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.h
 create mode 100644 include/linux/mlx5/macsec.h
Signature · 1 line
2.41.0