Have submitted v3 of this #Linux bridge #multicast related patchset now: https://patchwork.kernel.org/project/netdevbpf/cover/[email protected]/
I'm still confused why #shellcheck throws these errors even though the tests seem to execute fine otherwise: https://patchwork.kernel.org/project/netdevbpf/patch/[email protected]/
Also no idea what netdev/check_selftest wants from me yet.

#switchdev

[net-next,v3,00/14] net: bridge: reduce multicast checks in fast path - Patchwork

I'm trying to build a list of Ethernet switch devices that can run normal(ish) Linux builds with hardware (L2 or L3) switch offloading via `switchdev`.

I know about Mellanox SN* switches and a few Banana Pis (R4, at least). The Ubiquiti ER-4 and -6 seem to have a Nix port, so they're probably also on the list.

Does anyone know anything else that would fit?

I'm in the middle of making VyOS work on my Mellanox SN2010 (18x SFP28, 4x QSFP28), and I'd like to assemble a list of other switches that could also be useful with VyOS. Non x86 is just fine.

#linux #switchdev #networking #vyos

Patchset v2 is out for the Linux bridge, to reduce checks in the #multicast fast path, and to later propagate a safety multicast (in)active state to #switchdev/#DSA:
https://patchwork.kernel.org/project/netdevbpf/cover/[email protected]/
Includes some fixes and got some nice Linux selftests: https://patchwork.kernel.org/project/netdevbpf/patch/[email protected]/
This is also the version currently used in this OpenWrt draft PR for #realtek / #rtl83xx (v6 - v8): https://github.com/openwrt/openwrt/pull/18780

#rtldsa #rtl93xx

[net-next,v2,00/14] net: bridge: reduce multicast checks in fast path - Patchwork

I just wanted to make a little #multicast safety feature in the Linux bridge available to #switchdev + #DSA, too, to use it on #rtl83xx / #rtl93xx #Realtek drivers / switches later. One suggestion on the PR was like, maybe we could do the locking differently or use atomics. Me several hours later:

So, a bunch of #multicast fixes for #rtl83xx / #OpenWrt / Linux bridge / #switchdev / DSA patches are out now.

Fix 1: Already applied: https://github.com/openwrt/openwrt/pull/18733
Fix 2: Pending: https://github.com/openwrt/openwrt/pull/18769

And a slightly larger patchset here: https://github.com/openwrt/openwrt/pull/18780

realtek: rtl838x: fix broadcast flooding with many multicast entries by T-X · Pull Request #18733 · openwrt/openwrt

When many multicast entries are installed broadcast flooding might potentially stop working for several ports. This is because the layer 2 broadcast flood port mask index has the wrong offset. It s...

GitHub

Curse you, #Linux bridge (or #DSA or #switchdev) - why do you send this uncalled-for #VLAN deletion notification... (and do I dig deeper into this, maybe finding a bug?, or should I just go for the other approach I wanted to implement anyway, which wouldn't need to hook into the VLAN notifications in the first place...)

#multicast #rtl83xx #switch

I really think #Linux kernel switch folks should make up their mind at some point if they think switch drivers should register handlers with #DSA or if they should implement a switch-case to check for various #switchdev events for the same stuff. One approach should be ditched.
In the classic, non-DSA #Linux bridge the philosophy so far is: No matter in what combination you enable/disable multicast_snooping+ multicast_querier: The bridge ensures you don't break any network protocol, it detects per protocol family if #multicast snooping is applicable. That together with #RFC4541 I think is the only way to regain trust for #IGMP / #MLD snooping imo.
And now things like #DSA or #switchdev come along with non-foolproof solutions, diverging between each driver...
...and even this mrouter exists #switchdev event is a quite incomplete approach. What if you multicast router somehow #IGMP / #MLD querying disabled -> would break any #IPv6, even if you're not using multicast routing. What if you only have an IGMP querier? Would notify an mrouter-exists, but there's no MLD querier, so again IPv6 would be broken...
Neither #switchdev nor #DSA really check if an IGMP/MLD querier exists. So if you enable #multicast snooping on these you currently also need to make sure to have an #IGMP / #MLD querier somewhere. Which is different to a classic Linux bridge, which will stop snooping optimizations if there is none, to avoid packet loss. Only for Marvell Prestera I found some mrouter-exists check via an according switchdev event. Which no other driver uses. And...