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 <olgas@mellanox.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
Olga Shern 2015-06-30 11:28:08 +02:00 committed by Thomas Monjalon
parent 3e49c148b7
commit 8b3ffe95e7
2 changed files with 12 additions and 0 deletions
drivers/net/mlx4

@ -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

@ -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) {