On Sat, Nov 14, 2020 at 12:29:32PM +0100, Tobias Waldekranz wrote:
> > Humm, yes, they have not been forwarded by hardware. But is the
> > software bridge going to do the right thing and not flood them? Up
>
> The bridge is free to flood them if it wants to (e.g. IGMP/MLD
> snooping is off) or not (e.g. IGMP/MLD snooping enabled). The point
> is, that is not for a lowly switchdev driver to decide. Our job is to
> relay to the bridge if this skb has been forwarded or not, the end.
>
> > until now, i think we did mark them. So this is a clear change in
> > behaviour. I wonder if we want to break this out into a separate
> > patch? If something breaks, we can then bisect was it the combining
> > which broke it, or the change of this mark.
>
> Since mv88e6xxx can not configure anything that generates
> DSA_CODE_MGMT_TRAP or DSA_CODE_POLICY_TRAP yet, we do not have to
> worry about any change in behavior there.
>
> That leaves us with DSA_CODE_IGMP_MLD_TRAP. Here is the problem:
>
> Currenly, tag_dsa.c will set skb->offload_fwd_mark for IGMP/MLD
> packets, whereas tag_edsa.c will exempt them. So we can not unify the
> two without changing the behavior of one.
>
> I posit that tag_edsa does the right thing, the packet has not been
> forwarded, so we should go with that.
>
> This is precisely the reason why we want to unify these! :)

Shouldn't the correct approach be to monitor the
SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED attribute in order to figure out
whether IGMP/MLD snooping is enabled or not?

Reply via email to