Subject: Re: [pull request][for-next 00/15] Mellanox, mlx5 RDMA E-Switch representors 2018-02-23

From: Doug Ledford <[email-masked]>
Date: Tue, 27 Feb 2018 22:50:26 -0500

On Mon, 2018-02-26 at 12:36 -0800, Saeed Mahameed wrote:
> 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.

This series looks OK to me, I'm good to pull 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 <[email-masked]>
> =========
> 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

-- 
Doug Ledford <[email-masked]>
    GPG KeyID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD