Merge branch 'vxlan-age-fdb-entries-based-on-rx-traffic'
authorJakub Kicinski <kuba@kernel.org>
Thu, 6 Feb 2025 02:53:59 +0000 (18:53 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 6 Feb 2025 02:53:59 +0000 (18:53 -0800)
commit3924fa995cdf3752f2f89f8de72834c4638c5ebf
tree60a494374ccd1938738746600e533354e2694a2f
parent50f37fc2a39c4a8cc4813629b4cf239b71c6097d
parentc467a98e1de0359a0d8b6d881ecc2762c918cfc7
Merge branch 'vxlan-age-fdb-entries-based-on-rx-traffic'

Ido Schimmel says:

====================
vxlan: Age FDB entries based on Rx traffic

tl;dr - This patchset prevents VXLAN FDB entries from lingering if
traffic is only forwarded to a silent host.

The VXLAN driver maintains two timestamps for each FDB entry: 'used' and
'updated'. The first is refreshed by both the Rx and Tx paths and the
second is refreshed upon migration.

The driver ages out entries according to their 'used' time which means
that an entry can linger when traffic is only forwarded to a silent host
that might have migrated to a different remote.

This patchset solves the problem by adjusting the above semantics and
aligning them to those of the bridge driver. That is, 'used' time is
refreshed by the Tx path, 'updated' time is refresh by Rx path or user
space updates and entries are aged out according to their 'updated'
time.

Patches #1-#2 perform small changes in how the 'used' and 'updated'
fields are accessed.

Patches #3-#5 refresh the 'updated' time where needed.

Patch #6 flips the driver to age out FDB entries according to their
'updated' time.

Patch #7 removes unnecessary updates to the 'used' time.

Patch #8 extends a test case to cover aging of FDB entries in the
presence of Tx traffic.
====================

Link: https://patch.msgid.link/20250204145549.1216254-1-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>