Skip to content

Support RAW Ethernet when RoCE is disabled

Leon Romanovsky linux-rdma 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest10 patches 42 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10IB/core: Add raw packet protocolinclude/rdma/ib_verbs.h+8 -038 replies
2/10IB/mlx5: Support raw packet protocoldrivers/infiniband/hw/mlx5/main.c+4 -20 replies
3/10IB/mlx4: Support raw packet protocoldrivers/infiniband/hw/mlx4/main.c+5 -20 replies
4/10IB: Add protocol for USNICdrivers/infiniband/hw/usnic/usnic_ib_main.c include/rdma/ib_verbs.h+9 -00 replies
5/10IB: Query port through the core instead of directly calling the driver handlerdrivers/infiniband/hw/cxgb3/iwch_provider.c drivers/infiniband/hw/cxgb4/provider.c drivers/infiniband/hw/hfi1/verbs.c +17 more+68 -510 replies
6/10IB/core: Enable to query QP types supported by IB device on a portdrivers/infiniband/core/device.c drivers/infiniband/hw/hns/hns_roce_main.c drivers/infiniband/hw/qedr/verbs.c +1 more+34 -03 replies
7/10IB/uverbs: Propagate supported QP types to user-spacedrivers/infiniband/core/uverbs_cmd.c include/uapi/rdma/ib_user_verbs.h+3 -10 replies
8/10IB/mlx5: Refactor registration to netdev notifierdrivers/infiniband/hw/mlx5/main.c+20 -90 replies
9/10IB/mlx5: Rename RoCE related helpers to reflect being Eth onesdrivers/infiniband/hw/mlx5/main.c+11 -110 replies
10/10IB/mlx5: Support RAW Ethernet when RoCE is disableddrivers/infiniband/hw/mlx5/main.c+13 -90 replies

Reviews trailers per patch

All 10 patches have a Reviewed-by or Acked-by.

PatchMatan Barak
1/10R-b
2/10R-b
3/10R-b
4/10R-b
5/10R-b
6/10R-b
7/10R-b
8/10R-b
9/10R-b
10/10R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH rdma-next 00/10] Support RAW Ethernet when RoCE is disabled

Hi Doug,

Please find below the patch set from Or. I didn't add version notation to this patch set, because it was enriched extensively over initial version [1], from one mlx5-only patch to native IB core support.

It is tested against v4.9-rc6.

From: Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/[email protected]>

On some environments, such as certain SRIOV VF configurations, RoCE is not supported for mlx5 Ethernet ports. Currently, the driver will not open IB device on that port.

This is problematic, since we do want user-space RAW Ethernet (RAW_PACKET QPs) functionality to remain in place. For that end, we change the relevant driver flows such that an IB device instance is created in that case as well.

Following the previous post [1], Doug wanted us to enable a way for applications to query what QP types are actually supported on a device. This series adds that functionality on device/port granularity, since some drivers (mlx4) could support different protocols per port and hence different QP types per port.

QP types are basically derived from the protocol/s supported on the port. We added two protocols (raw packet and usnic) to have a protocol set which is consistent with what is currently upstream.

Patches 1-7 deal with the new query and patches 8-10 with the mlx5 specific changes.

To make it clear, the upstream kernel IB core is fully functional without the new port attribute, in the sense that no errors are seen from components that e.g use SMI and GSI services. The query is mostly targeted to user-space.

Thanks, Or.

[1] https://patchwork.kernel.org/patch/9096351/

---------------------------------------------------------------------------------------
Available in the "topic/raw-ibdev" topic branch of this git repo:
git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git
Or for browsing:
https://git.kernel.org/cgit/linux/kernel/git/leon/linux-rdma.git/log/?h=topic/raw-ibdev
---------------------------------------------------------------------------------------

CC Doug Ledford <[email protected]>
CC Steve Wise <[email protected]>
CC Mike Marciniszyn <[email protected]>
CC Dennis Dalessandro <[email protected]>
CC Lijun Ou <[email protected]>
CC "Wei Hu(Xavier)" <[email protected]>
CC Faisal Latif <[email protected]>
CC Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/[email protected]>
CC Selvin Xavier <selvin.xavier-1wcpHE2jlwO1Z/[email protected]>
CC Devesh Sharma <devesh.sharma-1wcpHE2jlwO1Z/[email protected]>
CC Mitesh Ahuja <mitesh.ahuja-1wcpHE2jlwO1Z/[email protected]>
CC Christian Benvenuti <[email protected]>
CC Dave Goodell <[email protected]>
CC Moni Shoua <monis-VPRAkNaXOzVWk0Htik3J/[email protected]>

Or Gerlitz (10):
IB/core: Add raw packet protocol
IB/mlx5: Support raw packet protocol
IB/mlx4: Support raw packet protocol
IB: Add protocol for USNIC
IB: Query port through the core instead of directly calling the driver
handler
IB/core: Enable to query QP types supported by IB device on a port IB/uverbs: Propagate supported QP types to user-space IB/mlx5: Refactor registration to netdev notifier
IB/mlx5: Rename RoCE related helpers to reflect being Eth ones IB/mlx5: Support RAW Ethernet when RoCE is disabled

 drivers/infiniband/core/device.c             | 28 +++++++++
 drivers/infiniband/core/uverbs_cmd.c         |  2 +
 drivers/infiniband/hw/cxgb3/iwch_provider.c  |  7 ++-
 drivers/infiniband/hw/cxgb4/provider.c       |  8 +--
 drivers/infiniband/hw/hfi1/verbs.c           |  1 +
 drivers/infiniband/hw/hns/hns_roce_main.c    | 10 ++-
 drivers/infiniband/hw/i40iw/i40iw_verbs.c    |  8 +--
 drivers/infiniband/hw/mlx4/alias_GUID.c      |  1 +
 drivers/infiniband/hw/mlx4/main.c            | 23 ++++---
 drivers/infiniband/hw/mlx4/sysfs.c           |  1 +
 drivers/infiniband/hw/mlx5/mad.c             |  2 +-
 drivers/infiniband/hw/mlx5/main.c            | 91 +++++++++++++++++-----------
 drivers/infiniband/hw/mthca/mthca_provider.c |  9 +--
 drivers/infiniband/hw/nes/nes_verbs.c        |  5 +-
 drivers/infiniband/hw/ocrdma/ocrdma_main.c   |  9 +--
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c  |  1 +
 drivers/infiniband/hw/qedr/verbs.c           | 11 ++--
 drivers/infiniband/hw/qib/qib_verbs.c        |  1 +
 drivers/infiniband/hw/usnic/usnic_ib_main.c  |  4 +-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c |  2 +-
 drivers/infiniband/sw/rdmavt/vt.c            |  7 ++-
 drivers/infiniband/sw/rxe/rxe_verbs.c        |  6 +-
 include/rdma/ib_verbs.h                      | 17 ++++++
 include/uapi/rdma/ib_user_verbs.h            |  2 +-
 24 files changed, 173 insertions(+), 83 deletions(-)

--
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html