1. 23 Sep, 2020 1 commit
    • Daniel Mack's avatar
      dsa: Allow forwarding of redirected IGMP traffic · 65e389d8
      Daniel Mack authored
      commit 1ed9ec9b 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: default avatarDaniel Mack <daniel@zonque.org>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Tested-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Cc: DENG Qingfang <dqfext@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      65e389d8
  2. 17 Sep, 2020 39 commits