netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Question on DSA switches, IGMP forwarding and switchdev
@ 2020-06-19 21:31 Daniel Mack
  2020-06-19 21:58 ` Andrew Lunn
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Mack @ 2020-06-19 21:31 UTC (permalink / raw)
  To: netdev; +Cc: Ido Schimmel, Jiri Pirko, Ivan Vecera, Florian Fainelli,
	Andrew Lunn

Hi,

I'm working on a custom board featuring a Marvell mv88e6085 Ethernet
switch controlled by the Linux DSA driver, and I'm facing an issue with
IGMP packet flows.

Consider two Ethernet stations, each connected to the switch on a
dedicated port. A Linux bridge combines the two ports. In my setup, I
need these two stations to send and receive multicast traffic, with IGMP
snooping enabled.

When an IGMP query enters the switch, it is redirected to the CPU port
as all 'external' ports are configured for IGMP/MLP snooping by the
driver. The issue that I'm seeing is that the Linux bridge does not
forward the IGMP frames to any other port, no matter whether the bridge
is in snooping mode or not. This needs to happen however, otherwise the
stations will not see IGMP queries, and unsolicited membership reports
are not being transferred either.

I've traced these frames through the bridge code and figured forwarding
fails in should_deliver() in net/bridge/br_forward.c because
nbp_switchdev_allowed_egress() denies it due to the fact that the frame
has already been forwarded by the same parent device. This check causes
all manual software forwarding of frames between two such switch ports
to fail. Note that IGMP traffic is the only class of communication that
is affected by this as it is not handled in hardware.

So my question now is how to fix that. Would the DSA driver need to mark
the ports as independent somehow?


Thanks,
Daniel


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-06-20 18:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-19 21:31 Question on DSA switches, IGMP forwarding and switchdev Daniel Mack
2020-06-19 21:58 ` Andrew Lunn
2020-06-19 22:05   ` Jason Cobham
2020-06-19 22:36     ` Andrew Lunn
2020-06-20  6:02       ` Daniel Mack
2020-06-20 14:35         ` Andrew Lunn
2020-06-20 18:01           ` Daniel Mack
2020-06-20  5:32   ` Daniel Mack

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).