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

From: Vlad Yasevich <[email-masked]>
Date: Fri, 15 Aug 2014 15:54:39 -0400

On 08/15/2014 03:04 PM, 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.

Additional unicasts can be easily supported in VEPA mode,
but VEB would require additional lookups in forwarding mode
to determine if the packet should be switched locally or not.

I don't think we would need any more duplicate checking
since we use the _excl() variants which already return error
on duplicates.  Thus no 2 macvlans would be able to add
the same unicast address to the same lower device.

-vlad

> But
> I might be missing why this wasn't supported originally.
> 
> Thanks,
> John
>