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