On 11/07/2017 01:01 PM, Andrew Lunn wrote:
>>> 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, I am afraid you lost me here, I don't even understand the
problem you are trying to describe :) What would be the rationale for
differentiation "normal MDB requests" from "host MDB requests", how and
why should we treat them differently? In a switch case, they all
translate to programming a MDB entry for a given switch port, right?
-- 
Florian

Reply via email to