1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

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.
This commit is contained in:
Ondrej Zajicek (work)
2020-01-07 18:35:03 +01:00
parent ef8c45749c
commit 7d767c5a3d
5 changed files with 77 additions and 112 deletions

View File

@@ -37,7 +37,6 @@ struct cli;
struct fib_node {
struct fib_node *next; /* Next in hash chain */
struct fib_iterator *readers; /* List of readers of this node */
byte flags; /* User-defined, will be removed */
net_addr addr[0];
};