mirror-linux/net
Shengyu Qu a496d2f0fd net: bridge: locally receive all multicast packets if IFF_ALLMULTI is set
If multicast snooping is enabled, multicast packets may not always end up
on the local bridge interface, if the host is not a member of the multicast
group. Similar to how IFF_PROMISC allows all packets to be received
locally, let IFF_ALLMULTI allow all multicast packets to be received.

OpenWrt uses a user space daemon for DHCPv6/RA/NDP handling, and in relay
mode it sets the ALLMULTI flag in order to receive all relevant queries on
the network.

This works for normal network interfaces and non-snooping bridges, but not
snooping bridges (unless multicast routing is enabled).

Reported-by: Felix Fietkau <nbd@nbd.name>
Closes: https://github.com/openwrt/openwrt/issues/15857#issuecomment-2662851243
Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/OSZPR01MB8434308370ACAFA90A22980798B32@OSZPR01MB8434.jpnprd01.prod.outlook.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-04-15 17:25:52 -07:00
..
6lowpan
9p 9p: Use hashtable.h for hash_errmap 2025-03-23 06:20:48 +09:00
802 net: 802: LLC+SNAP OID:PID lookup on start of skb data 2025-01-04 08:06:24 -08:00
8021q net: vlan: don't propagate flags on open 2025-03-20 09:57:37 +01:00
appletalk treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
atm treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
ax25 treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
batman-adv CRC cleanups for 6.15 2025-04-08 12:09:28 -07:00
bluetooth treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
bpf bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type() 2025-01-29 08:51:51 -08:00
bridge net: bridge: locally receive all multicast packets if IFF_ALLMULTI is set 2025-04-15 17:25:52 -07:00
caif rtnetlink: Pack newlink() params into struct 2025-02-21 15:28:02 -08:00
can treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
ceph lib/crc: remove CONFIG_LIBCRC32C 2025-04-04 11:31:42 -07:00
core net: fib_rules: Use nlmsg_payload in fib_{new,del}rule() 2025-04-15 08:28:55 -07:00
dcb
devlink devlink: fix xa_alloc_cyclic() error handling 2025-03-19 09:57:36 +00:00
dns_resolver
dsa net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
ethernet
ethtool ethtool: cmis_cdb: Fix incorrect read / write length extension 2025-04-10 14:32:43 +02:00
handshake
hsr net: hsr: sync hw addr of slave2 according to slave1 hw addr on PRP 2025-04-14 12:40:06 +01:00
ieee802154 inet: frags: save a pair of atomic operations in reassembly 2025-03-18 13:18:36 +01:00
ife
ipv4 ipv4: ip_tunnel: Convert ip_tunnel_delete_nets() callers to ->exit_rtnl(). 2025-04-14 17:08:42 -07:00
ipv6 ipv6: Use nlmsg_payload in inet6_rtm_valid_getaddr_req 2025-04-15 08:28:54 -07:00
iucv s390: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01:00
kcm
key
l2tp net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
l3mdev
lapb treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
llc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mac80211 treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mac802154 mac802154: Switch to use hrtimer_setup() 2025-02-18 10:35:44 +01:00
mctp treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mpls mpls: Use nlmsg_payload in mpls_valid_getroute_req 2025-04-15 08:28:54 -07:00
mptcp mptcp: add MPJoinRejected MIB counter 2025-04-15 08:21:47 -07:00
ncsi net: ncsi: Fix GCPS 64-bit member variables 2025-04-15 15:19:55 +02:00
netfilter Including fixes from netfilter. 2025-04-10 08:52:18 -07:00
netlabel net: corrections for security_secid_to_secctx returns 2025-01-04 22:11:22 -05:00
netlink Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-02-27 10:20:58 -08:00
netrom treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
nfc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
nsh
openvswitch CRC cleanups for 6.15 2025-04-08 12:09:28 -07:00
packet treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
phonet
psample
qrtr
rds Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-02-27 10:20:58 -08:00
rfkill net: rfkill: gpio: allow booting in blocked state 2025-02-11 11:55:55 +01:00
rose treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
rxrpc rxrpc: rxperf: Add test RxGK server keys 2025-04-14 17:36:42 -07:00
sched tc: Return an error if filters try to attach too many actions 2025-04-15 17:13:11 -07:00
sctp Including fixes from netfilter. 2025-04-10 08:52:18 -07:00
shaper net: add netdev_lock() / netdev_unlock() helpers 2025-01-15 19:13:33 -08:00
smc net/smc: use the correct ndev to find pnetid by pnetid table 2025-03-14 12:54:40 +00:00
strparser strparser: Add read_sock callback 2025-01-29 13:32:08 -08:00
sunrpc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
switchdev net: switchdev: Convert blocking notification chain to a raw one 2025-03-11 11:30:28 +01:00
tipc tipc: Removing deprecated strncpy() 2025-04-15 13:37:14 +02:00
tls net: tls: explicitly disallow disconnect 2025-04-08 11:38:49 +02:00
unix af_unix: Remove unix_unhash() 2025-04-10 17:32:57 -07:00
vmw_vsock vsock: avoid timeout during connect() if the socket is closing 2025-04-02 17:19:30 -07:00
wireless treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
x25 treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
xdp net: designate XSK pool pointers in queues as "ops protected" 2025-04-09 17:01:51 -07:00
xfrm xfrm: Convert xfrmi_exit_batch_rtnl() to ->exit_rtnl(). 2025-04-14 17:08:43 -07:00
Kconfig net: Retire DCCP socket. 2025-04-11 18:58:10 -07:00
Kconfig.debug
Makefile net: Retire DCCP socket. 2025-04-11 18:58:10 -07:00
compat.c
devres.c
socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-03-26 09:32:10 -07:00
sysctl_net.c