openwrt/target/linux
Linus Lüssing 64ad16993d realtek: fix flooding of unsnoopable multicast addresses
RFC4541, section 2.1.2 says:

  Packets with a destination IP (DIP) address in the 224.0.0.X range
  which are not IGMP must be forwarded on all ports.

And section 3 says:

  In IPv6, the data forwarding rules are more straight forward because
  MLD is mandated for addresses with scope 2 (link-scope) or greater.
  The only exception is the address FF02::1 which is the all hosts
  link-scope address for which MLD messages are never sent.  Packets
  with the all hosts link-scope address should be forwarded on all
  ports.

However, currently when a listener on FF12::1 or FF12:🔢0:1 for
example joins then not only packets to these addresses but also for
FF02::1 won't be flooded to all ports anymore, too. Which violates
RFC4541.

This happens because A): They all map to the same ethernet multicast
address, that is 33:33:00:00:00:01. And B) the VLAN profile L2
unknown MC flood setting will only apply flooding of 33:33:00:00:00:01
if there is no specific listener registered for it.

So to fix this, avoid registering an MDB entry in the switch for
33:33:00:00:00:01 at all.

The downside of this is that FF12::1, FF12:🔢0:1 etc.
will always be flooded, too. However fixing the handling of 224.0.0.X
and FF02::1 and adhering to RFC4541 must have priority to avoid
undesired packetloss, to avoid breaking IPv4/IPv6.

Tested-on: ZyXEL GS1900-24HP v1

Fixes: cde31976e3 ("realtek: Add support for Layer 2 Multicast")
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Link: https://github.com/openwrt/openwrt/pull/18769
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 19:01:22 +02:00
..
airoha kernel: bump 6.6 to 6.6.89 2025-05-03 19:57:53 +02:00
apm821xx kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
archs38 kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
armsr armsr: drop GC sections ARMv7 patch 2025-04-14 10:28:50 +02:00
at91 at91bootstrap: put at91bootstrap images into image staging directory 2025-04-04 14:39:00 +02:00
ath79 linux: remove of_match_ptr from OF only drivers 2025-05-10 20:00:59 +02:00
bcm27xx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
bcm47xx bcm47xx: old gpio wdt: use remove_new 2025-04-28 10:31:59 +02:00
bcm53xx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
bcm4908 bcm63xx-cfe: install into image staging dir 2025-04-13 10:44:19 +02:00
bmips bmips: add missing NAND config symbol 2025-05-14 11:37:51 +02:00
d1 generic: globally enable CONFIG_PCPU_DEV_REFCNT 2025-03-08 11:33:56 +01:00
gemini Revert "gemini: Add module for VSC73xx switches" 2025-05-02 19:17:53 +02:00
generic kernel: fix warning on retrying page pool release 2025-05-15 15:41:59 +02:00
imx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
ipq40xx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
ipq806x generic: move QCOM SPI NAND driver to generic backports 2025-04-10 15:01:09 +02:00
ixp4xx kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
kirkwood kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
lantiq lantiq: xrx200_legacy: rename TP-LINK to TP-Link 2025-05-10 21:28:40 +02:00
layerscape kernel: bump 6.6 to 6.6.88 2025-05-03 19:57:53 +02:00
loongarch64 kernel: Add KERNEL_DCB (Data Center Bridging) 2025-03-09 17:05:26 +01:00
malta kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
mediatek mediatek: filogic: fix wifi on ASUS RT-AX52 2025-05-13 03:32:26 +02:00
mpc85xx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
mvebu kernel: bump 6.6 to 6.6.88 2025-05-03 19:57:53 +02:00
mxs mxs: adapt default package list for Duckbill devices 2025-02-05 22:00:09 +01:00
octeon octeon: force pcs reset to fix qca833x traffic 2025-04-02 10:04:52 +02:00
omap kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
pistachio kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
qoriq kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
qualcommax qualcommax: dts: fix missing or empty reg property warning 2025-05-15 18:29:00 +02:00
qualcommbe qualcommbe: ipq95xx: fix ipq-uniphy crash on IPQ9554 2025-05-12 15:06:24 +02:00
ramips ramips: pad EX400 kernel partition to retain web recovery 2025-05-14 18:39:56 +02:00
realtek realtek: fix flooding of unsnoopable multicast addresses 2025-05-15 19:01:22 +02:00
rockchip kernel: add missing Kconfig symbols 2025-05-11 13:11:46 +02:00
sifiveu kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
siflower realtek: use remove_new 2025-05-02 01:34:24 +02:00
starfive kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
stm32 stm32: Add kmod-stm32-thermal 2025-04-19 18:41:29 +02:00
sunxi kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
tegra kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
uml uml: fix glibc-static check with GCC14 2024-06-22 22:06:06 +02:00
x86 kernel: package intel_vpu driver 2025-05-15 10:09:40 +02:00
zynq kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
Makefile linux: fix missing default packages in profiles.json 2024-11-17 19:29:06 +01:00