HomeFreeBSD

Add batched update support for the fib algo.

Description

Add batched update support for the fib algo.

Initial fib algo implementation was build on a very simple set of
principles w.r.t updates:

  1. algorithm is ether able to apply the change synchronously (DIR24-8) or requires full rebuild (bsearch, lradix).
  2. framework falls back to rebuild on every error (memory allocation, nhg limit, other internal algo errors, etc).

This changes brings the new "intermediate" concept - batched updates.
Algotirhm can indicate that the particular update has to be handled in
batched fashion (FLM_BATCH).
The framework will write this update and other updates to the temporary
buffer instead of pushing them to the algo callback.
Depending on the update rate, the framework will batch 50..1024 ms of updates
and submit them to a different algo callback.

This functionality is handy for the slow-to-rebuild algorithms like DXR.

Differential Revision: https://reviews.freebsd.org/D29588
Reviewed by: zec
MFC after: 2 weeks

(cherry picked from commit 6b8ef0d428c93c970c1951a52c72f9e99c9e4279)

Details

Provenance
melifaroAuthored on Apr 9 2021, 9:30 PM
Reviewer
zec
Differential Revision
D29588: [FIB algo] Add support for the batched updates.
Parents
rG553c1513a8a5: Fix build with gcc
Branches
Unknown
Tags
Unknown