Hi Doug,

This patch-set adds a new  implementation for multicast loopback prevention for
mlx4 driver.  The current implementation is very limited, especially if link
layer is Ethernet. The new implementation is based on HW feature of dropping
incoming multicast packets if the sender QP counter index is equal to the
receiver counter index.

Patch 0001 extends ib_uverbs_create_qp in order to allow receiving the
multicast loopback flag at create flags.
Patch 0002 allows setting IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK in create_flag
field both from uverbs and ib_create_qp.
Patch 0003 adds an infrastructure for the counters' loopback prevention in the
mlx4_core.
Patch 0004 modifies mlx4_en QPs to use the new loopback prevention mode.
Patches 0005-0007 implements this feature for mlx4_ib driver.

Changes from v0:
        Move loopback assignment outside the for loop according to Yuval's 
comment
        rebase over to-be-rebased/for-4.3
Changes from v1:
        rebase over k.o/for-4.4
        Fix cover letter patch description - was out of order

Tested-by: Christoph Lameter <c...@linux.com>

Thanks,
Eran.

Eran Ben Elisha (5):
  IB/core: Extend ib_uverbs_create_qp
  IB/core: Allow setting create flags in QP init attribute
  IB/mlx4: Add IB counters table
  IB/mlx4: Add counter based implementation for QP multicast loopback
    block
  IB/mlx4: Add support for blocking multicast loopback QP creation user
    flag

Maor Gottlieb (2):
  net/mlx4_core: Add support for filtering multicast loopback
  net/mlx4_en: Implement mcast loopback prevention for ETH qps

 drivers/infiniband/core/uverbs.h                   |   1 +
 drivers/infiniband/core/uverbs_cmd.c               | 259 +++++++++++++++------
 drivers/infiniband/core/uverbs_main.c              |   1 +
 drivers/infiniband/hw/mlx4/mad.c                   |  25 +-
 drivers/infiniband/hw/mlx4/main.c                  |  66 ++++--
 drivers/infiniband/hw/mlx4/mlx4_ib.h               |  10 +-
 drivers/infiniband/hw/mlx4/qp.c                    |  88 ++++++-
 drivers/net/ethernet/mellanox/mlx4/en_main.c       |  22 ++
 drivers/net/ethernet/mellanox/mlx4/en_resources.c  |  25 ++
 drivers/net/ethernet/mellanox/mlx4/fw.c            |   6 +
 drivers/net/ethernet/mellanox/mlx4/mlx4_en.h       |   3 +-
 drivers/net/ethernet/mellanox/mlx4/qp.c            |  19 +-
 .../net/ethernet/mellanox/mlx4/resource_tracker.c  |  30 ++-
 include/linux/mlx4/device.h                        |   2 +
 include/linux/mlx4/qp.h                            |  24 +-
 include/uapi/rdma/ib_user_verbs.h                  |  26 +++
 16 files changed, 498 insertions(+), 109 deletions(-)

-- 
1.8.3.1

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

Reply via email to