On Tue, 19 Jan 2021 16:46:01 +0000 Vladimir Oltean wrote: > On Tue, Jan 19, 2021 at 03:06:38PM +0100, Alban Bedel wrote: > > Multicast entries in the MAC table use the high bits of the MAC > > address to encode the ports that should get the packets. But this port > > mask does not work for the CPU port, to receive these packets on the > > CPU port the MAC_CPU_COPY flag must be set. > > > > Because of this IPv6 was effectively not working because neighbor > > solicitations were never received. This was not apparent before commit > > 9403c158 (net: mscc: ocelot: support IPv4, IPv6 and plain Ethernet mdb > > entries) as the IPv6 entries were broken so all incoming IPv6 > > multicast was then treated as unknown and flooded on all ports. > > > > To fix this problem rework the ocelot_mact_learn() to set the > > MAC_CPU_COPY flag when a multicast entry that target the CPU port is > > added. For this we have to read back the ports endcoded in the pseudo > > MAC address by the caller. It is not a very nice design but that avoid > > changing the callers and should make backporting easier. > > > > Signed-off-by: Alban Bedel <alban.be...@aerq.com> > > Fixes: 9403c158b872 ("net: mscc: ocelot: support IPv4, IPv6 and plain > > Ethernet mdb entries") > > > > --- > > Reviewed-by: Vladimir Oltean <vladimir.olt...@nxp.com> > Tested-by: Vladimir Oltean <vladimir.olt...@nxp.com>
Applied, thanks!