Subject: Re: [PATCH] macvlan: Allow setting multicast filter on all macvlan types

From: "Michael S. Tsirkin" <[email-masked]>
Date: Sun, 17 Aug 2014 12:54:38 +0200

On Fri, Aug 15, 2014 at 12:04:28PM -0700, John Fastabend wrote:
> On 08/15/2014 10:04 AM, Vladislav Yasevich wrote:
> > Currently, macvlan code restricts multicast and unicast
> > filter setting only to passthru devices.  As a result,
> > if a guest using macvtap wants to receive multicast
> > traffic, it has to set IFF_ALLMULTI or IFF_PROMISC.
> > 
> > This patch makes it possible to use the fdb interface
> > to add multicast addresses to the filter thus allowing
> > a guest to receive only targeted multicast traffic.
> > 
> > CC: John Fastabend <[email-masked]>
> > CC: Michael S. Tsirkin <[email-masked]>
> > CC: Jason Wang <[email-masked]>
> > Signed-off-by: Vladislav Yasevich <[email-masked]>
> > ---
> 
> Acked-by: John Fastabend <[email-masked]>
> 
> Looks good to me. Although I am trying to recall why
> we restrict unicast addresses? It looks like an additional
> check could be made to detect duplicate MAC addresses
> in fdb_add and then we could support this as well. But
> I might be missing why this wasn't supported originally.
> 
> Thanks,
> John

It's not just another macvlan: we need to avoid
conflicts with the underlying device itself.

Although I note that the relevant check when
creating macvlans in macvlan_addr_busy
isn't very robust either: if device address is later
reprogrammed, we can get a conflict.
But it seems better to fix that rather than propagate
the bug in more places.

We would also need to populate the mac hash.

So a bit more code would be needed.

-- 
MST