Thread (59 messages) 59 messages, 6 authors, 2022-08-19

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

From: Vladimir Oltean <olteanv@gmail.com>
Date: 2022-07-17 14:00:00
Also in: bridge, linux-kselftest, lkml

On Sun, Jul 17, 2022 at 03:09:10PM +0200, netdev@kapio-technology.com wrote:
On 2022-07-17 14:57, Vladimir Oltean wrote:
quoted
On Sun, Jul 17, 2022 at 02:21:47PM +0200, netdev@kapio-technology.com
wrote:
quoted
On 2022-07-13 14:39, Ido Schimmel wrote:
quoted
On Wed, Jul 13, 2022 at 09:09:58AM +0200, netdev@kapio-technology.com
wrote:
quoted
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.
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help