1. Jul 23, 2022
  2. Jul 22, 2022
  3. Jul 21, 2022
  4. Jul 20, 2022
    • Mark Bloch's avatar
      RDMA/mlx5: Expose steering anchor to userspace · 0c6ab0ca
      Mark Bloch authored
      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: default avatarMark Bloch <mbloch@nvidia.com>
      Reviewed-by: default avatarYishai Hadas <yishaih@nvidia.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
      Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
      0c6ab0ca
    • Mark Bloch's avatar
      RDMA/mlx5: Refactor get flow table function · e74d2e4d
      Mark Bloch authored
      _get_flow_table() requires the entire matcher being passed
      while all it needs is the priority and namespace type.
      Pass the priority and namespace type directly instead.
      
      Link: https://lore.kernel.org/all/20220703205407.110890-5-saeed@kernel.org/
      
      
      Signed-off-by: default avatarMark Bloch <mbloch@nvidia.com>
      Reviewed-by: default avatarMaor Gottlieb <maorg@nvidia.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
      Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
      e74d2e4d
    • Leon Romanovsky's avatar
      Merge branch 'mlx5-next' into wip/leon-for-next · 43038d84
      Leon Romanovsky authored
      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.
      
      ================
      
      Link: https://lore.kernel.org/all/20220703205407.110890-1-saeed@kernel.org
      
      
      Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
      43038d84
  5. Jul 19, 2022
  6. Jul 18, 2022