Subject: Re: [PATCH v3 net-next 0/5] IGMP snooping for local traffic

From: Andrew Lunn <[email-masked]>
Date: Tue, 7 Nov 2017 22:01:42 +0100

> > It is not quite as simple as that. Image:
> >
> > brctl addbr br0
> > brctl addif br0 eth2
> > brctl addif br0 lan0

Hi Vivien

I will reply to your other points later. But another scenario to think
about.

Take the above configuration.

A join is received on eth2. The bridge makes switchdev calls. Your
idea would be it passes add MDB(eth2).

Now an application performs a join on br0. The bridge does nothing
with switchdev. It already gets the frames it needs.

eth2 leaves the group. The switch does nothing. It still needs the frames.

The application leaves the group on br0. The bridge makes switchdev
calls to tell the hardware to stop sending it frames. With your
scheme, it would pass del MDB(br0).

So we start it with eth2, stop it with br0. I think this makes it
clear, the interface name is not important. All we need is a bit,
which says is this a normal MDB request, or a host MDB request.  I
encode this bit by having a different requests.

       Andrew