]> git.ipfire.org Git - thirdparty/bird.git/commit
KRT: Improve syncer code to avoid using temporary data in rtable
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 7 Jan 2020 17:35:03 +0000 (18:35 +0100)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 7 Jan 2020 17:35:03 +0000 (18:35 +0100)
commit7d767c5a3d001a6a1a5c3e800553202fd492190c
tree6a0758ae4bdd2b4cbecefec9ed329b43d038a270
parentef8c45749c82e246d477ea4d7f749668a9c7e9ee
KRT: Improve syncer code to avoid using temporary data in rtable

The old code stored route verdicts and temporary routes directly in
rtable. The new code do not store received routes (it immediately
compares them with exported routes and resolves conflicts) and uses
internal bitmap to keep track of which routes were received and which
needs to be reinstalled.

By not putting 'invalid' temporary routes to rtable, we keep rtable
in consistent state, therefore scan no longer needs to be atomic
operation and could be splitted to multiple events.
nest/route.h
nest/rt-fib.c
nest/rt-table.c
sysdep/unix/krt.c
sysdep/unix/krt.h