[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180226203617.10242-1-saeedm@mellanox.com>
Date: Mon, 26 Feb 2018 12:36:02 -0800
From: Saeed Mahameed <saeedm@...lanox.com>
To: "David S. Miller" <davem@...emloft.net>,
Doug Ledford <dledford@...hat.com>,
Jason Gunthorpe <jgg@...lanox.com>
Cc: Leon Romanovsky <leonro@...lanox.com>,
Mark Bloch <markb@...lanox.com>,
Or Gerlitz <ogerlitz@...lanox.com>, netdev@...r.kernel.org,
linux-rdma@...r.kernel.org, Saeed Mahameed <saeedm@...lanox.com>
Subject: [pull request][for-next 00/15] Mellanox, mlx5 RDMA E-Switch representors 2018-02-23
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@...lanox.com>
=========
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
Powered by blists - more mailing lists