Thread (36 messages) 36 messages, 5 authors, 2022-03-28

Re: [PATCH v2 net-next 2/4] net: switchdev: add support for offloading of fdb locked flag

From: Hans Schultz <hidden>
Date: 2022-03-25 09:24:27
Also in: bridge, linux-kselftest, lkml

On tor, mar 24, 2022 at 16:27, Vladimir Oltean [off-list ref] wrote:
On Thu, Mar 24, 2022 at 12:23:39PM +0100, Hans Schultz wrote:
quoted
On tor, mar 24, 2022 at 13:09, Vladimir Oltean [off-list ref] wrote:
quoted
On Thu, Mar 24, 2022 at 11:32:08AM +0100, Hans Schultz wrote:
quoted
On ons, mar 23, 2022 at 16:43, Vladimir Oltean [off-list ref] wrote:
quoted
On Wed, Mar 23, 2022 at 01:49:32PM +0100, Hans Schultz wrote:
quoted
quoted
quoted
Does someone have an idea why there at this point is no option to add a
dynamic fdb entry?

The fdb added entries here do not age out, while the ATU entries do
(after 5 min), resulting in unsynced ATU vs fdb.
I think the expectation is to use br_fdb_external_learn_del() if the
externally learned entry expires. The bridge should not age by itself
FDB entries learned externally.
It seems to me that something is missing then?
My tests using trafgen that I gave a report on to Lunn generated massive
amounts of fdb entries, but after a while the ATU was clean and the fdb
was still full of random entries...
I'm no longer sure where you are, sorry..
I think we discussed that you need to enable ATU age interrupts in order
to keep the ATU in sync with the bridge FDB? Which means either to
delete the locked FDB entries from the bridge when they age out in the
ATU, or to keep refreshing locked ATU entries.
So it seems that you're doing neither of those 2 things if you end up
with bridge FDB entries which are no longer in the ATU.
Any idea why G2 offset 5 ATUAgeIntEn (bit 10) is set? There is no define
for it, so I assume it is something default?
No idea, but I can confirm that the out-of-reset value I see for
MV88E6XXX_G2_SWITCH_MGMT on 6190 and 6390 is 0x400. It's best not to
rely on any reset defaults though.
I see no age out interrupts, even though the ports Age Out Int is on
(PAV bit 14) on the locked port, and the ATU entries do age out (HoldAt1
is off). Any idea why that can be?

I combination with this I think it would be nice to have an ability to
set the AgeOut time even though it is not per port but global.
Sorry, I just don't know. Looking at the documentation for IntOnAgeOut,
I see it says that for an ATU entry to trigger an age out interrupt, the
port it's associated with must have IntOnAgeOut set.
But your locked ATU entries aren't associated with any port, they have
DPV=0, right? So will they never trigger any age out interrupt according
to this? I'm not clear.
If it could be possible to add a dynamic entry to the bridge module from
the driver, that would be a solution, and since in the ATU in this case
ages out entries learned, I don't see why __br_fdb_add() insists that an
external learned entry must be permanent?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help