On Sat, Jun 20, 2020 at 09:39:25PM +0200, Daniel Mack wrote: > The driver for Marvell switches puts all ports in IGMP snooping mode > which results in all IGMP/MLD frames that ingress on the ports to be > forwarded to the CPU only. > > The bridge code in the kernel can then interpret these frames and act > upon them, for instance by updating the mdb in the switch to reflect > multicast memberships of stations connected to the ports. However, > the IGMP/MLD frames must then also be forwarded to other ports of the > bridge so external IGMP queriers can track membership reports, and > external multicast clients can receive query reports from foreign IGMP > queriers. > > Currently, this is impossible as the EDSA tagger sets offload_fwd_mark > on the skb when it unwraps the tagged frames, and that will make the > switchdev layer prevent the skb from egressing on any other port of > the same switch. > > To fix that, look at the To_CPU code in the DSA header and make > forwarding of the frame possible for trapped IGMP packets. > > Introduce some #defines for the frame types to make the code a bit more > comprehensive. > > This was tested on a Marvell 88E6352 variant. > > Signed-off-by: Daniel Mack <dan...@zonque.org>
Reviewed-by: Andrew Lunn <and...@lunn.ch> Tested-by: Andrew Lunn <and...@lunn.ch> The testing was simple regression testing, not IGMP specific. Andrew