Re: [PATCH v4 net-next 3/6] drivers: net: dsa: add locked fdb entry flag to drivers

From: netdev
Date: Sun Jul 17 2022 - 10:58:05 EST


On 2022-07-17 15:59, Vladimir Oltean wrote:
On Sun, Jul 17, 2022 at 03:09:10PM +0200, netdev@xxxxxxxxxxxxxxxxxxxx wrote:
On 2022-07-17 14:57, Vladimir Oltean wrote:
> On Sun, Jul 17, 2022 at 02:21:47PM +0200, netdev@xxxxxxxxxxxxxxxxxxxx
> wrote:
> > On 2022-07-13 14:39, Ido Schimmel wrote:
> > > On Wed, Jul 13, 2022 at 09:09:58AM +0200, netdev@xxxxxxxxxxxxxxxxxxxx
> > > wrote:
> >
> > >
> > > What are "Storm Prevention" and "zero-DPV" FDB entries?
> >
> > They are both FDB entries that at the HW level drops all packets
> > having a
> > specific SA, thus using minimum resources.
> > (thus the name "Storm Prevention" aka, protection against DOS
> > attacks. We
> > must remember that we operate with CPU based learning.)
>
> DPV means Destination Port Vector, and an ATU entry with a DPV of 0
> essentially means a FDB entry pointing nowhere, so it will drop the
> packet. That's a slight problem with Hans' implementation, the bridge
> thinks that the locked FDB entry belongs to port X, but in reality it
> matches on all bridged ports (since it matches by FID). FID allocation
> in mv88e6xxx is slightly strange, all VLAN-unaware bridge ports,
> belonging to any bridge, share the same FID, so the FDB databases are
> not exactly isolated from each other.

But if the locked port is vlan aware and has a pvid, it should not block
other ports.

I don't understand what you want to say by that. It will block all other
packets with the same MAC SA that are classified to the same FID.
In case of VLAN-aware bridges, the mv88e6xxx driver allocates a new FID
for each VID (see mv88e6xxx_atu_new). In other words, if a locked port
is VLAN-aware and has a pvid, then whatever the PVID may be, all ports
in that same VLAN are still blocked in the same way.

Maybe I am just trying to understand the problem you are posing, so afaics MAC addresses should be unique and having the same MAC address behind a locked port and a not-locked port seems like a mis-configuration regardless of vlan setup? As the zero-DPV entry only blocks the specific SA MAC on a specific vlan, which is behind a locked port, there shouldn't be any problem...?

If the host behind a locked port starts sending on another vlan than where it got the first locked entry, another locked entry will occur, as the locked entries are MAC + vlan.


Besides the fid will be zero with vlan unaware afaik, and all with
zero fid do not create locked entries.

If by 0 you mean 1 (MV88E6XXX_FID_BRIDGED), then you are correct: ports
with FID 0 (MV88E6XXX_FID_STANDALONE) should not create locked FDB
entries, because they are, well, standalone and not bridged.
Again I don't exactly see the relevance though.