Hi Doug and Dave, This series includes shared code updates for mlx5 core driver for both netdev and rdma subsystems. This series should be pulled to both trees so we can continue netdev and rdma specific submissions separately. For more information please see tag log below. P.S. We expect one more shared code pull requests. Since this series contains more work on RDMA than mlx5 eswitch, I would like to get Doug's or Jason's approval before pulling it in. The series doesn't cause any conflict with the latest mlx5 net fixes series. Thanks, Saeed. --- The following changes since commit 388ca8be00370db132464e27f745b8a0add19fcb: IB/mlx5: Implement fragmented completion queue (CQ) (2018-02-15 00:30:03 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux.git tags/mlx5-updates-2018-02-23 for you to fetch changes up to ec9c2fb8ceb5b514c4820f732537cb2982de0620: IB/mlx5: Disable self loopback check when in switchdev mode (2018-02-23 12:36:39 -0800) ---------------------------------------------------------------- mlx5-update-2018-02-23 (IB representors) From: Mark Bloch <markb@xxxxxxxxxxxx> ========= Add IB representor when in switchdev mode The following series adds support for an IB (RAW Ethernet only) device representor which is created when the user switches to switchdev mode. Today when switching to switchdev mode the only representors which are created are net devices. Each netdev is a representor of a virtual function and any data sent via the representor is received on the virtual function, and any data sent via the virtual function is received by the representor. For the mlx5 driver the main use of this functionality is to be able to use Open vSwitch on the hypervisor in order to manage/control traffic from/to the virtual functions. Open vSwitch can also work with DPDK devices and not just net devices, this series exposes an IB device, which Mellanox PMD driver uses, which then can be used by Open vSwitch DPDK. An IB device representor exposes only RAW Ethernet QP capabilities and the ability to create flow rules to direct traffic to its RX queues. The state of the IB device (ACTIVE/DOWN etc..) is based on the state of the corresponding net device representor. No other RDMA/RoCE functionality is currently supported and no GID table is exposed. ========= ---------------------------------------------------------------- Mark Bloch (15): net/mlx5: E-Switch, Add callback to get representor device net/mlx5: E-Switch, Move representors definition to a global scope net/mlx5: E-Switch, Increase number of FTEs in FDB in switchdev mode net/mlx5: E-Switch, Optimize HW steering tables in switchdev mode net/mlx5: E-Switch, Add definition of IB representor IB/mlx5: Add basic regiser/unregister representors code IB/mlx5: Allocate flow DB only on PF IB device IB/mlx5: Add match on vport when in switchdev mode IB/mlx5: Listen to netdev register/unresiter events in switchdev mode IB/mlx5: When in switchdev mode, expose only raw packet capabilities IB/mlx5: Don't expose MR cache in switchdev mode IB/mlx5: E-Switch, Add rule to forward traffic to vport IB/mlx5: Add proper representors support net/mlx5: E-Switch, Reload IB interface when switching devlink modes IB/mlx5: Disable self loopback check when in switchdev mode drivers/infiniband/hw/mlx5/Makefile | 1 + drivers/infiniband/hw/mlx5/ib_rep.c | 189 +++++++++++ drivers/infiniband/hw/mlx5/ib_rep.h | 72 ++++ drivers/infiniband/hw/mlx5/main.c | 361 ++++++++++++++++----- drivers/infiniband/hw/mlx5/mlx5_ib.h | 32 +- drivers/infiniband/hw/mlx5/mr.c | 5 +- drivers/infiniband/hw/mlx5/qp.c | 24 ++ drivers/net/ethernet/mellanox/mlx5/core/dev.c | 8 + drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 11 + drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 23 +- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 42 +-- .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 104 ++++-- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 7 +- include/linux/mlx5/driver.h | 6 + include/linux/mlx5/eswitch.h | 58 ++++ 15 files changed, 796 insertions(+), 147 deletions(-) create mode 100644 drivers/infiniband/hw/mlx5/ib_rep.c create mode 100644 drivers/infiniband/hw/mlx5/ib_rep.h create mode 100644 include/linux/mlx5/eswitch.h -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html