On Sun, Jul 03, 2022 at 01:54:02PM -0700, Saeed Mahameed wrote: > From: Saeed Mahameed <saeedm@xxxxxxxxxx> > > Mark Bloch Says: > ================ > Expose steering anchor > > 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. > > =============== > > Mark Bloch (5): > net/mlx5: Expose the ability to point to any UID from shared UID > net/mlx5: fs, expose flow table ID to users > net/mlx5: fs, allow flow table creation with a UID > RDMA/mlx5: Refactor get flow table function > RDMA/mlx5: Expose steering anchor to userspace > Thanks, applied.