net/mlx5: fix reception of multiple MAC addresses
authorNélio Laranjeiro <nelio.laranjeiro@6wind.com>
Thu, 25 Jan 2018 08:22:19 +0000 (09:22 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 29 Jan 2018 09:04:28 +0000 (10:04 +0100)
When promiscuous is disabled, adding/removing a mac address is ignored
causing the packet to not be received or still being received corresponding
to the add or remove request.

Fixes: 272733b5ebfd ("net/mlx5: use flow to enable unicast traffic")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
drivers/net/mlx5/mlx5_mac.c

index a5e78ec..a1cb987 100644 (file)
@@ -95,7 +95,7 @@ mlx5_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index)
 {
        assert(index < MLX5_MAX_MAC_ADDRESSES);
        memset(&dev->data->mac_addrs[index], 0, sizeof(struct ether_addr));
-       if (!dev->data->promiscuous && !dev->data->all_multicast)
+       if (!dev->data->promiscuous)
                mlx5_traffic_restart(dev);
 }
 
@@ -134,7 +134,7 @@ mlx5_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac,
                return EADDRINUSE;
        }
        dev->data->mac_addrs[index] = *mac;
-       if (!dev->data->promiscuous && !dev->data->all_multicast)
+       if (!dev->data->promiscuous)
                mlx5_traffic_restart(dev);
        return ret;
 }