linux/include/uapi/rdma
Mark Bloch 0c6ab0ca9a RDMA/mlx5: Expose steering anchor to userspace
Expose a steering anchor per priority to allow users to re-inject
packets back into default NIC pipeline for additional processing.

MLX5_IB_METHOD_STEERING_ANCHOR_CREATE returns a flow table ID which
a user can use to re-inject packets at a specific priority.

A FTE (flow table entry) can be created and the flow table ID
used as a destination.

When a packet is taken into a RDMA-controlled steering domain (like
software steering) there may be a need to insert the packet back into
the default NIC pipeline. This exposes a flow table ID to the user that can
be used as a destination in a flow table entry.

With this new method priorities that are exposed to users via
MLX5_IB_METHOD_FLOW_MATCHER_CREATE can be reached from a non-zero UID.

As user-created flow tables (via RDMA DEVX) are created with a non-zero UID
thus it's impossible to point to a NIC core flow table (core driver flow tables
are created with UID value of zero) from userspace.
Create flow tables that are exposed to users with the shared UID, this
allows users to point to default NIC flow tables.

Steering loops are prevented at FW level as FW enforces that no flow
table at level X can point to a table at level lower than X.

Link: https://lore.kernel.org/all/20220703205407.110890-6-saeed@kernel.org/
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Yishai Hadas <yishaih@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2022-07-19 20:50:34 +03:00
..
hfi IB/hfi1: Add accelerated IP capability bit 2020-05-21 11:23:53 -03:00
bnxt_re-abi.h RDMA/bnxt_re: Update ABI to pass wqe-mode to user space 2021-06-21 20:58:52 -03:00
cxgb4-abi.h
efa-abi.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
hns-abi.h RDMA/hns: Support direct wqe of userspace 2021-12-14 19:59:07 -04:00
ib_user_ioctl_cmds.h RDMA/uverbs: Add uverbs command for dma-buf based MR registration 2021-01-20 16:07:52 -04:00
ib_user_ioctl_verbs.h RDMA/irdma: Implement device supported verb APIs 2021-06-02 19:55:18 -03:00
ib_user_mad.h RDMA/core: Use flexible array for mad data 2021-06-22 14:05:34 -03:00
ib_user_sa.h
ib_user_verbs.h RDMA: Split kernel-only global device caps from uverbs device caps 2022-04-06 15:02:13 -03:00
irdma-abi.h RDMA/irdma: Make spdxcheck.py happy 2021-07-12 14:52:25 -03:00
mlx4-abi.h
mlx5-abi.h RDMA/mlx5: Add DCS offload support 2021-07-20 15:04:14 -03:00
mlx5_user_ioctl_cmds.h RDMA/mlx5: Expose steering anchor to userspace 2022-07-19 20:50:34 +03:00
mlx5_user_ioctl_verbs.h RDMA/mlx5: Support handling of modify-header pattern ICM area 2022-06-13 14:58:01 -07:00
mthca-abi.h
ocrdma-abi.h
qedr-abi.h RDMA/qedr: Add EDPM max size to alloc ucontext response 2020-07-16 16:01:55 -03:00
rdma_netlink.h RDMA/nldev: Add support to get status of all counters 2021-10-12 12:48:05 -03:00
rdma_user_cm.h RDMA/cma: Provide ECE reject reason 2020-05-27 16:05:05 -03:00
rdma_user_ioctl.h RDMA: rdma_user_ioctl.h: fix a duplicated word + clarify 2020-07-20 16:42:08 -03:00
rdma_user_ioctl_cmds.h docs: fix broken references to text files 2020-04-20 15:35:59 -06:00
rdma_user_rxe.h RDMA v5.16 merge window pull request 2021-11-03 08:05:59 -07:00
rvt-abi.h
siw-abi.h
vmw_pvrdma-abi.h RDMA/vmw_pvrdma: Fix network_hdr_type reported in WC 2021-01-19 20:17:27 -04:00