Thread (4 messages) flat view 4 messages, 3 authors, 2014-11-27

RE: [patch net-next v3 09/17] bridge: add API to notify bridge driver of learned FBD on offloaded device

From: Arad, Ronen <hidden>
Date: 2014-11-27 07:37:23

-----Original Message-----
From: Scott Feldman [mailto:sfeldma@gmail.com]
Sent: Wednesday, November 26, 2014 11:04 PM
To: Arad, Ronen
Cc: netdev@vger.kernel.org
Subject: Re: [patch net-next v3 09/17] bridge: add API to notify bridge driver
of learned FBD on offloaded device

On Tue, Nov 25, 2014 at 9:37 PM, Arad, Ronen [off-list ref]
wrote:
quoted
quoted
quoted
quoted
quoted
Is there any case where this fdb entry gets re-used and is no
longer added by an external learning? Should we clear this flag
somewhere?
quoted
quoted
quoted
quoted
Once the FDB entry is marked "added_by_external_learn" it stays
marked as such until removed by aging cleanup process (or flushed
due to interface down, etc).  If aged out (and now deleted), the
FDB entry may come back either by SW learn or by HW learn.  If SW
learn comes first, and then HW learn, HW learn will override and
mark the existing FDB entry "added_by_external_learn".  So there
is take-over by HW but no give-back to SW.  And there is no
explicit clearing of the mark short of deleting the FDB entry.
The mark is mostly for letting user's know which FDB entries where
learned by HW and synced to the bridge's FDB.
Thanks, makes sense now. This is probably obvious in this context,
but maybe it would not hurt to come up with a documentation that
describe the offload API, FDB entry lifetime and HW/SW ownership etc...
I have an updated Documentation/networking/switchdev.txt that covers
the swdev APIs and usage and notes, but Jiri is being stingy with it.
Will get this out, either in v4 or follow-on patches.  There is
enough going on just with L2 offload that we're going to need some
good documentation to guide implementers.
--
To control the lifetime of an externally learned FDB entry, the bridge shall
provide an API for the switch driver to update the freshness of externally
learned entries. Otherwise, the bridge aging will age entries which are
currently or frequently used by the HW.
quoted
Is this covered in the updated document?
Is this functionality planned for v4?
Hi Ronen,

It's already there: driver calls br_fdb_external_learn_add() to refresh FBD
entry, which updates the fdb->updated and fdb->used timestamps,
preventing bridge from prematurely aging out the entry.
We'll make sure that detail gets in the doc.  It's up to the driver on how
frequently it calls br_fdb_external_learn_add().  Maybe it just blindly makes
the call every 1s.  That's what rocker driver does (as long as the FDB entry
continues to get hits).  From the user's perspective, 1s update is nice when
looking at the stats dump for fdbs, since the timestamps are in secs.

-scott
Hi Scott,

Thanks. This should work. I overlooked that but now I see it in the code with a clear comment.

-ronen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help