This series from Matan adds ESP flow action support, the matching kernel series was already sent to rdma-next. Currently, when adding a flow steering rule, actions such as TAG or DROP could be specified in the flow action specification. However, some flow actions could be complex and needs to be shared between several flow steering rules. Therefore, we add a new flow actions mechanism. Flow actions are actions the user creates and are given as handles for the flow steering rules. We start with adding the ESP flow action, which supports both full offload and inline crypto mode. We currently only support AES_GCM crypto with bitmap replay protection. These new create, modify and destroy flow_action_esp methods are implemented using the new uverbs ioctl() infrastructure. Furthermore, the current mlx5 device works in a different way from future devices. Thus, when creating the flow action, the user has to use the mlx5dv API to specify specific driver's flags. ESP flow action is supported for both egress and ingress. Therefore, we also add a flag for egress steering in our flow steering implementation. Egress steering is currently only implemented for ESP flows. In order to carry these actions only for ESP packets, we also add an ESP match filter. Finally, we also add the required bits to support RSS for ESP flows and query the feature's support. PR was sent: https://github.com/linux-rdma/rdma-core/pull/311 Yishai Boris Pismenny (1): verbs: Add a man page for flow_action_esp Matan Barak (10): verbs: Add enum attribute type to the ioctl infrastructure verbs: Add flow_action uapi definitions verbs: Add flow_action create, modify and destroy verbs mlx5: Add support to creating/modifying and destroying ESP flow_action mlx5: Add mlx5dv_create_flow_action_esp() DV API verbs: Add ability to hash according to ipsec_spi verbs: Add flow steering egress support verbs: Add flow steering specification for ESP mlx5: Query the FLOW_ACTION capabilities through DV verbs: Add ibv_flow_spec_action_handle support debian/ibverbs-providers.symbols | 1 + debian/libibverbs-dev.install | 4 + kernel-headers/CMakeLists.txt | 8 +- kernel-headers/rdma/ib_user_ioctl_cmds.h | 20 ++ kernel-headers/rdma/ib_user_ioctl_verbs.h | 59 +++++ kernel-headers/rdma/ib_user_verbs.h | 31 +++ kernel-headers/rdma/mlx5_user_ioctl_cmds.h | 44 ++++ kernel-headers/rdma/mlx5_user_ioctl_verbs.h | 43 ++++ kernel-headers/rdma/rdma_user_ioctl_cmds.h | 8 +- libibverbs/CMakeLists.txt | 2 + libibverbs/cmd.c | 16 ++ libibverbs/cmd_flow_action.c | 128 ++++++++++ libibverbs/cmd_ioctl.h | 25 ++ libibverbs/driver.h | 25 ++ libibverbs/dummy_ops.c | 24 ++ libibverbs/kern-abi.h | 2 + libibverbs/libibverbs.map.in | 3 + libibverbs/man/CMakeLists.txt | 3 + libibverbs/man/ibv_create_flow.3 | 9 + libibverbs/man/ibv_create_flow_action.3.md | 338 +++++++++++++++++++++++++ libibverbs/man/ibv_create_qp_ex.3 | 1 + libibverbs/verbs.h | 94 +++++++ libibverbs/verbs_api.h | 79 ++++++ providers/mlx5/CMakeLists.txt | 3 +- providers/mlx5/libmlx5.map | 5 + providers/mlx5/man/CMakeLists.txt | 1 + providers/mlx5/man/mlx5dv_flow_action_esp.3.md | 60 +++++ providers/mlx5/man/mlx5dv_query_device.3 | 12 + providers/mlx5/mlx5-abi.h | 2 +- providers/mlx5/mlx5.c | 10 + providers/mlx5/mlx5.h | 6 + providers/mlx5/mlx5_api.h | 41 +++ providers/mlx5/mlx5dv.h | 25 ++ providers/mlx5/verbs.c | 87 +++++++ 34 files changed, 1215 insertions(+), 4 deletions(-) create mode 100644 kernel-headers/rdma/mlx5_user_ioctl_cmds.h create mode 100644 kernel-headers/rdma/mlx5_user_ioctl_verbs.h create mode 100644 libibverbs/cmd_flow_action.c create mode 100644 libibverbs/man/ibv_create_flow_action.3.md create mode 100644 libibverbs/verbs_api.h create mode 100644 providers/mlx5/man/mlx5dv_flow_action_esp.3.md create mode 100644 providers/mlx5/mlx5_api.h -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html