netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net 0/2] net: bridge: switchdev: Skip MDB replays of pending events
@ 2024-01-31 12:35 Tobias Waldekranz
  2024-01-31 12:35 ` [PATCH net 1/2] net: switchdev: Add helper to check if an object event is pending Tobias Waldekranz
  2024-01-31 12:35 ` [PATCH net 2/2] net: bridge: switchdev: Skip MDB replays of pending events Tobias Waldekranz
  0 siblings, 2 replies; 12+ messages in thread
From: Tobias Waldekranz @ 2024-01-31 12:35 UTC (permalink / raw)
  To: davem, kuba; +Cc: olteanv, roopa, razor, bridge, netdev, jiri, ivecera

Prevent the MDB replay logic from racing with the IGMP/MLD snooping
logic, which can otherwise cause the bridge to generate replays of
events that will also be delivered as regular events. The log message
of 2/2 has all the details.

We choose to preserve events in the deferred queue, eliding the
corresponding replay instead of the opposite. This is important
because purging the deferred event instead, would rob other listeners
of of that event entirely. I.e., regular events are "broadcast" to all
listeners, while replays are "unicast" only to the port joining or
leaving the bridge.

        br0
       /   \
  sw1p0     sw2p0
(hwdom 1) (hwdom 2)

In a setup like above, it is vital that sw1p0 learns about all group
memberships on sw2p0, since it may want to translate such memberships
to host equivalents, in order to let the bridge sofware forward them
to ports in other hardware domains.

Tobias Waldekranz (2):
  net: switchdev: Add helper to check if an object event is pending
  net: bridge: switchdev: Skip MDB replays of pending events

 include/net/switchdev.h   |  3 ++
 net/bridge/br_switchdev.c | 44 +++++++++++++++++-----------
 net/switchdev/switchdev.c | 61 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 17 deletions(-)

-- 
2.34.1


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

end of thread, other threads:[~2024-02-01  7:45 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-31 12:35 [PATCH net 0/2] net: bridge: switchdev: Skip MDB replays of pending events Tobias Waldekranz
2024-01-31 12:35 ` [PATCH net 1/2] net: switchdev: Add helper to check if an object event is pending Tobias Waldekranz
2024-01-31 12:50   ` Jiri Pirko
2024-01-31 13:31     ` Tobias Waldekranz
2024-02-01  0:33     ` Vladimir Oltean
2024-02-01  7:45       ` Jiri Pirko
2024-01-31 13:34   ` Vladimir Oltean
2024-01-31 14:48     ` Tobias Waldekranz
2024-02-01  0:29       ` Vladimir Oltean
2024-01-31 12:35 ` [PATCH net 2/2] net: bridge: switchdev: Skip MDB replays of pending events Tobias Waldekranz
2024-01-31 13:51   ` Vladimir Oltean
2024-01-31 15:06   ` Vladimir Oltean

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).