From 8b3ffe95e75d6d305992505005cbb95969874a15 Mon Sep 17 00:00:00 2001 From: Olga Shern Date: Tue, 30 Jun 2015 11:28:08 +0200 Subject: [PATCH] mlx4: disable multicast echo on PF device Multicast loopback must be disabled on PF devices to prevent the adapter from sending frames back. Required with MOFED 3.0. Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/Makefile | 5 +++++ drivers/net/mlx4/mlx4.c | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile index fd74dc8ec9..725717f86f 100644 --- a/drivers/net/mlx4/Makefile +++ b/drivers/net/mlx4/Makefile @@ -112,6 +112,11 @@ mlx4_autoconf.h: $(RTE_SDK)/scripts/auto-config-h.sh HAVE_EXP_QUERY_DEVICE \ infiniband/verbs.h \ type 'struct ibv_exp_device_attr' $(AUTOCONF_OUTPUT) + $Q sh -- '$<' '$@' \ + HAVE_EXP_QP_BURST_CREATE_DISABLE_ETH_LOOPBACK \ + infiniband/verbs.h \ + enum IBV_EXP_QP_BURST_CREATE_DISABLE_ETH_LOOPBACK \ + $(AUTOCONF_OUTPUT) mlx4.o: mlx4_autoconf.h diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 631ab02022..f4491e7176 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -1534,6 +1534,13 @@ txq_setup(struct rte_eth_dev *dev, struct txq *txq, uint16_t desc, .intf_scope = IBV_EXP_INTF_GLOBAL, .intf = IBV_EXP_INTF_QP_BURST, .obj = tmpl.qp, +#ifdef HAVE_EXP_QP_BURST_CREATE_DISABLE_ETH_LOOPBACK + /* MC loopback must be disabled when not using a VF. */ + .family_flags = + (!priv->vf ? + IBV_EXP_QP_BURST_CREATE_DISABLE_ETH_LOOPBACK : + 0), +#endif }; tmpl.if_qp = ibv_exp_query_intf(priv->ctx, &attr.params, &status); if (tmpl.if_qp == NULL) { -- 2.20.1