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?