Re: [PATCH net] net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add

From: DENG Qingfang
Date: Sat Jan 30 2021 - 20:14:06 EST


On Sun, Jan 31, 2021 at 8:39 AM Vladimir Oltean <olteanv@xxxxxxxxx> wrote:
>
> Tobias has a point in a way too, you should get used to adding the
> 'master static' flags to your bridge fdb commands, otherwise weird
> things like this could happen. The faulty code can only be triggered
> when going through dsa_legacy_fdb_add, but it is still faulty
> nonetheless.

This bug is exposed when I try your patch series on kernel 5.4
https://lore.kernel.org/netdev/20210106095136.224739-1-olteanv@xxxxxxxxx/
https://lore.kernel.org/netdev/20210116012515.3152-1-tobias@xxxxxxxxxxxxxx/

Without this patch, DSA will add a new port bit to the existing
portvec when a client moves to the software part of a bridge. When it
moves away, DSA will clear the port bit but the existing one will
remain static. This results in connection issues when the client moves
to a different port of the switch, and the kernel log below.

mv88e6085 f1072004.mdio-mii:00: ATU member violation for
xx:xx:xx:xx:xx:xx portvec dc00 spid 0