[PATCH rdma-core 00/11] Add ESP flow action support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux