The driver was incorrectly enabling/disabling promiscious mode when it should have be setting/clearing all multicast mode.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org> --- a/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c 2014-06-10 15:30:24.000097039 -0700 +++ b/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c 2014-06-10 15:30:23.996097012 -0700 @@ -708,7 +708,7 @@ static void vmxnet3_dev_allmulticast_enable(struct rte_eth_dev *dev) { struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); - vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_PROMISC, 1); + vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_ALL_MULTI, 1); } /* Allmulticast supported only if Vmxnet3_DriverShared is initialized in adapter */ @@ -716,7 +716,7 @@ static void vmxnet3_dev_allmulticast_disable(struct rte_eth_dev *dev) { struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); - vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_PROMISC, 0); + vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_ALL_MULTI, 0); } #if PROCESS_SYS_EVENTS == 1