Subject: Re: [PATCH rdma-next 5/5] RDMA/mlx5: Expose steering anchor to userspace

From: Jason Gunthorpe <[email-masked]>
Date: Fri, 15 Jul 2022 05:08:13 -0300

On Wed, Jul 13, 2022 at 03:31:33PM -0700, Saeed Mahameed wrote:
> On 03 Jul 13:54, Saeed Mahameed wrote:
> > From: Mark Bloch <[email-masked]>
> > 
> > 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.
> > 
> > Signed-off-by: Mark Bloch <[email-masked]>
> > Reviewed-by: Yishai Hadas <[email-masked]>
> > Signed-off-by: Saeed Mahameed <[email-masked]>
> > ---
> > drivers/infiniband/hw/mlx5/fs.c          | 138 ++++++++++++++++++++++-
> > drivers/infiniband/hw/mlx5/mlx5_ib.h     |   6 +
> > include/uapi/rdma/mlx5_user_ioctl_cmds.h |  17 +++
> 
> Jason, Can you ack/nack ? This has uapi.. I need to move forward with this
> submission.

Yes, it looks fine, can you update the shared branch?

Jason