Daniel Mack
65e389d865
dsa: Allow forwarding of redirected IGMP traffic
...
commit 1ed9ec9b08addbd8d3e36d5f4a652d8590a6ddb7 upstream.
The driver for Marvell switches puts all ports in IGMP snooping mode
which results in all IGMP/MLD frames that ingress on the ports to be
forwarded to the CPU only.
The bridge code in the kernel can then interpret these frames and act
upon them, for instance by updating the mdb in the switch to reflect
multicast memberships of stations connected to the ports. However,
the IGMP/MLD frames must then also be forwarded to other ports of the
bridge so external IGMP queriers can track membership reports, and
external multicast clients can receive query reports from foreign IGMP
queriers.
Currently, this is impossible as the EDSA tagger sets offload_fwd_mark
on the skb when it unwraps the tagged frames, and that will make the
switchdev layer prevent the skb from egressing on any other port of
the same switch.
To fix that, look at the To_CPU code in the DSA header and make
forwarding of the frame possible for trapped IGMP packets.
Introduce some #defines for the frame types to make the code a bit more
comprehensive.
This was tested on a Marvell 88E6352 variant.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: DENG Qingfang <dqfext@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-23 12:10:56 +02:00
..
6lowpan
6lowpan: Off by one handling ->nexthdr
2020-01-27 14:50:41 +01:00
9p
net/9p: validate fds in p9_fd_open
2020-08-11 15:32:32 +02:00
802
8021q
vlan: vlan_changelink() should propagate errors
2020-01-12 12:17:28 +01:00
appletalk
appletalk: Set error code if register_snap_client failed
2019-12-13 08:52:59 +01:00
atm
net: use skb_queue_empty_lockless() in poll() handlers
2019-11-10 11:27:48 +01:00
ax25
AX.25: Prevent integer overflows in connect and sendmsg
2020-07-31 18:37:48 +02:00
batman-adv
batman-adv: bla: use netif_rx_ni when not in interrupt context
2020-09-09 19:04:24 +02:00
bluetooth
Bluetooth: add a mutex lock to avoid UAF in do_enale_set
2020-08-19 08:14:50 +02:00
bpf
bpf/test_run: support cgroup local storage
2018-08-03 00:47:32 +02:00
bpfilter
signal/bpfilter: Fix bpfilter_kernl to use send_sig not force_sig
2020-01-27 14:50:51 +01:00
bridge
net: bridge: enfore alignment for ethernet address
2020-06-30 23:17:03 -04:00
caif
net: use skb_queue_empty_lockless() in poll() handlers
2019-11-10 11:27:48 +01:00
can
can: gw: Fix error path of cgw_module_init
2019-08-29 08:28:30 +02:00
ceph
libceph: don't omit recovery_deletes in target_copy()
2020-07-22 09:32:13 +02:00
core
net: disable netpoll on fresh napis
2020-09-12 13:40:23 +02:00
dcb
net: dcb: Add priority-to-DSCP map getters
2018-07-27 13:17:50 -07:00
dccp
net: ipv6: add net argument to ip6_dst_lookup_flow
2020-04-29 16:31:16 +02:00
decnet
net: add bool confirm_neigh parameter for dst_ops.update_pmtu
2020-01-04 19:13:37 +01:00
dns_resolver
KEYS: Don't write out to userspace while holding key semaphore
2020-04-23 10:30:24 +02:00
dsa
dsa: Allow forwarding of redirected IGMP traffic
2020-09-23 12:10:56 +02:00
ethernet
net: add annotations on hh->hh_len lockless accesses
2020-01-09 10:19:09 +01:00
hsr
hsr: check protocol version in hsr_newlink()
2020-04-21 09:03:03 +02:00
ieee802154
nl802154: add missing attribute validation for dev_type
2020-03-18 07:14:15 +01:00
ife
ipv4
net: initialize fastreuse on inet_inherit_port
2020-08-19 08:15:04 +02:00
ipv6
gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
2020-09-03 11:24:17 +02:00
iucv
net/af_iucv: always register net_device notifier
2020-01-27 14:50:56 +01:00
kcm
kcm: switch order of device registration to fix a crash
2019-04-17 08:38:40 +02:00
key
af_key: fix leaks in key_pol_get_resp and dump_sp.
2019-07-26 09:14:01 +02:00
l2tp
l2tp: remove skb_dst_set() from l2tp_xmit_skb()
2020-07-22 09:31:59 +02:00
l3mdev
lapb
lapb: fixed leak of control-blocks.
2019-06-22 08:15:13 +02:00
llc
llc: make sure applications use ARPHRD_ETHER
2020-07-22 09:31:59 +02:00
mac80211
mac80211: fix misplaced while instead of if
2020-08-21 11:05:32 +02:00
mac802154
net: mac802154: tx: expand tailroom if necessary
2018-08-06 11:21:37 +02:00
mpls
net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
2020-04-29 16:31:17 +02:00
ncsi
net/ncsi: Fixup .dumpit message flags and ID check in Netlink handler
2018-08-22 21:39:08 -07:00
netfilter
netfilter: conntrack: allow sctp hearbeat after connection re-use
2020-09-17 13:45:24 +02:00
netlabel
netlabel: fix problems with mapping removal
2020-09-12 13:40:22 +02:00
netlink
genetlink: remove genl_bind
2020-07-22 09:31:58 +02:00
netrom
net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
2020-04-29 16:31:21 +02:00
nfc
net/nfc/rawsock.c: add CAP_NET_RAW check.
2020-08-19 08:15:03 +02:00
nsh
nsh: set mac len based on inner packet
2018-07-12 16:55:29 -07:00
openvswitch
openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
2020-08-11 15:32:35 +02:00
packet
af_packet: TPACKET_V3: fix fill status rwlock imbalance
2020-08-19 08:15:03 +02:00
phonet
net: use skb_queue_empty_lockless() in poll() handlers
2019-11-10 11:27:48 +01:00
psample
net: psample: fix skb_over_panic
2019-12-05 09:21:30 +01:00
qrtr
net: qrtr: fix usage of idr in port assignment to socket
2020-09-03 11:24:17 +02:00
rds
rds: Prevent kernel-infoleak in rds_notify_queue_get()
2020-08-05 10:06:01 +02:00
rfkill
rfkill: Fix incorrect check to avoid NULL pointer dereference
2020-01-12 12:17:17 +01:00
rose
net/rose: fix unbound loop in rose_loopback_timer()
2019-05-02 09:59:00 +02:00
rxrpc
rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
2020-08-11 15:32:35 +02:00
sched
sched: consistently handle layer3 header accesses in the presence of VLANs
2020-07-22 09:32:00 +02:00
sctp
sctp: not disable bh in the whole sctp_get_port_local()
2020-09-12 13:40:22 +02:00
smc
net/smc: Prevent kernel-infoleak in __smc_diag_dump()
2020-09-03 11:24:17 +02:00
strparser
net: strparser: partially revert "strparser: Call skb_unclone conditionally"
2019-05-16 19:41:27 +02:00
sunrpc
svcrdma: Fix another Receive buffer leak
2020-08-26 10:31:01 +02:00
switchdev
tipc
tipc: fix shutdown() of connectionless socket
2020-09-12 13:40:22 +02:00
tls
net/tls: Fix kmap usage
2020-08-19 08:15:03 +02:00
unix
af_unix: add compat_ioctl support
2020-01-17 19:47:07 +01:00
vmw_vsock
vsock: fix timeout in vsock_accept()
2020-06-10 21:34:59 +02:00
wimax
wimax: remove blank lines at EOF
2018-07-24 14:10:42 -07:00
wireless
cfg80211: regulatory: reject invalid hints
2020-09-09 19:04:32 +02:00
x25
net/x25: Fix null-ptr-deref in x25_disconnect
2020-08-05 10:06:02 +02:00
xdp
xdp: Fix xsk_generic_xmit errno
2020-06-25 15:33:05 +02:00
xfrm
xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
2020-06-30 23:17:10 -04:00
compat.c
net/compat: Add missing sock updates for SCM_RIGHTS
2020-08-21 11:05:32 +02:00
Kconfig
net: remove blank lines at end of file
2018-07-24 14:10:43 -07:00
Makefile
socket.c
net: Set fput_needed iff FDPUT_FPUT is set
2020-08-19 08:15:03 +02:00
sysctl_net.c