From: Herbert Xu <[email protected]>
Date: Mon, 30 May 2016 16:28:28 +0800
> @@ -725,6 +730,8 @@ static void macvlan_set_mac_lists(struct net_device *dev)
> {
> struct macvlan_dev *vlan = netdev_priv(dev);
>
> + dev_uc_sync(vlan->lowerdev, dev);
> + dev_mc_sync(vlan->lowerdev, dev);
> if (dev->flags & (IFF_PROMISC | IFF_ALLMULTI)) {
> bitmap_fill(vlan->mc_filter, MACVLAN_MC_FILTER_SZ);
> } else {
I think you need to set the vlan->port->mc_filter to all 1's in the
PROMISC/ALLMUTI branch here.
Otherwise packets won't properly pass your new hash test.