linux-stable/drivers
Vladimir Oltean c73c57081b net: dsa: don't disable multicast flooding to the CPU even without an IGMP querier
Commit 08cc83cc7f ("net: dsa: add support for BRIDGE_MROUTER
attribute") added an option for users to turn off multicast flooding
towards the CPU if they turn off the IGMP querier on a bridge which
already has enslaved ports (echo 0 > /sys/class/net/br0/bridge/multicast_router).

And commit a8b659e7ff ("net: dsa: act as passthrough for bridge port flags")
simply papered over that issue, because it moved the decision to flood
the CPU with multicast (or not) from the DSA core down to individual drivers,
instead of taking a more radical position then.

The truth is that disabling multicast flooding to the CPU is simply
something we are not prepared to do now, if at all. Some reasons:

- ICMP6 neighbor solicitation messages are unregistered multicast
  packets as far as the bridge is concerned. So if we stop flooding
  multicast, the outside world cannot ping the bridge device's IPv6
  link-local address.

- There might be foreign interfaces bridged with our DSA switch ports
  (sending a packet towards the host does not necessarily equal
  termination, but maybe software forwarding). So if there is no one
  interested in that multicast traffic in the local network stack, that
  doesn't mean nobody is.

- PTP over L4 (IPv4, IPv6) is multicast, but is unregistered as far as
  the bridge is concerned. This should reach the CPU port.

- The switch driver might not do FDB partitioning. And since we don't
  even bother to do more fine-grained flood disabling (such as "disable
  flooding _from_port_N_ towards the CPU port" as opposed to "disable
  flooding _from_any_port_ towards the CPU port"), this breaks standalone
  ports, or even multiple bridges where one has an IGMP querier and one
  doesn't.

Reverting the logic makes all of the above work.

Fixes: a8b659e7ff ("net: dsa: act as passthrough for bridge port flags")
Fixes: 08cc83cc7f ("net: dsa: add support for BRIDGE_MROUTER attribute")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-08-06 11:11:13 +01:00
..
accessibility
acpi Merge branches 'acpi-resources' and 'acpi-dptf' 2021-07-30 20:26:38 +02:00
amba
android
ata libata-5.14-2021-07-30 2021-07-30 10:56:47 -07:00
atm atm: idt77252: clean up trigraph warning on ??) string 2021-07-20 07:24:13 -07:00
auxdisplay
base driver core: Prevent warning when removing a device link from unregistered consumer 2021-07-21 17:28:42 +02:00
bcma
block block-5.14-2021-07-30 2021-07-30 11:08:12 -07:00
bluetooth
bus Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-08-05 15:08:47 -07:00
cdrom
char net: split out ndo_siowandev ioctl 2021-07-27 20:11:45 +01:00
clk A collection of clk driver fixes and one core clk API fix 2021-08-03 09:26:09 -07:00
clocksource
comedi
connector
counter
cpufreq cpufreq: Fix fall-through warning for Clang 2021-07-13 11:53:07 -05:00
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma dmaengine: mpc512x: Fix fall-through warning for Clang 2021-07-14 11:05:55 -05:00
dma-buf Short summary of fixes pull: 2021-07-13 15:15:17 +02:00
edac EDAC/igen6: fix core dependency AGAIN 2021-07-15 11:59:59 -07:00
eisa
extcon
firewire
firmware A set of EFI fixes: 2021-07-25 10:04:27 -07:00
fpga
fsi
gnss
gpio gpio: tqmx86: really make IRQ optional 2021-08-02 17:17:27 +02:00
gpu Merge tag 'amd-drm-fixes-5.14-2021-07-28' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes 2021-07-29 17:20:29 +10:00
greybus
hid HID: ft260: fix device removal due to USB disconnect 2021-07-29 12:38:32 +02:00
hsi
hv Drivers: hv: vmbus: Fix duplicate CPU assignments within a device 2021-07-19 09:26:31 +00:00
hwmon
hwspinlock
hwtracing
i2c i2c: mpc: Poll for MCF 2021-07-20 22:32:01 +02:00
i3c
idle
iio
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-07-31 09:14:46 -07:00
input
interconnect
iommu fallthrough fixes for Clang for 5.14-rc2 2021-07-15 13:57:31 -07:00
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md
media media fixes for v5.14-rc5 2021-08-03 09:33:05 -07:00
memory
memstick
message
mfd
misc Merge tag 'at24-fixes-for-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-current 2021-07-20 22:28:56 +02:00
mmc MMC core: 2021-07-22 09:51:38 -07:00
most
mtd
mux
net net: dsa: don't disable multicast flooding to the CPU even without an IGMP querier 2021-08-06 11:11:13 +01:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-07-31 09:14:46 -07:00
ntb
nubus
nvdimm
nvme block-5.14-2021-07-24 2021-07-24 12:57:06 -07:00
nvmem
of
opp
parisc
parport
pci PCI: Fix fall-through warning for Clang 2021-07-13 13:59:12 -05:00
pcmcia pcmcia: i82092: fix a null pointer dereference bug 2021-07-23 08:08:54 +02:00
perf
phy
pinctrl
platform platform/x86: gigabyte-wmi: add support for B550 Aorus Elite V2 2021-07-28 12:05:33 +02:00
pnp
power power: supply: Fix fall-through warnings for Clang 2021-07-13 14:50:47 -05:00
powercap
pps
ps3
ptp ptp: ocp: Remove pending_image indicator from devlink 2021-08-06 10:41:27 +01:00
pwm
rapidio
ras
regulator regulator: Fixes for v5.14 2021-07-21 12:37:49 -07:00
remoteproc
reset
rpmsg
rtc
s390 dev_ioctl: split out ndo_eth_ioctl 2021-07-27 20:11:45 +01:00
sbus
scsi SCSI fixes on 20210804 2021-08-04 12:41:30 -07:00
sh
siox
slimbus
soc
soundwire
spi spi: Fixes for v5.14 2021-07-21 12:41:41 -07:00
spmi
ssb
staging dev_ioctl: split out ndo_eth_ioctl 2021-07-27 20:11:45 +01:00
target scsi: target: Fix NULL dereference on XCOPY completion 2021-07-20 23:18:22 -04:00
tc
tee
thermal
thunderbolt
tty net: split out ndo_siowandev ioctl 2021-07-27 20:11:45 +01:00
uio
usb USB fixes for 5.14-rc3 2021-07-23 10:09:27 -07:00
vdpa
vfio
vhost
video drm fixes for 5.14-rc2 2021-07-16 11:14:54 -07:00
virt
virtio
visorbus
vlynq
vme
w1
watchdog
xen
zorro
Kconfig
Makefile