aboutsummaryrefslogtreecommitdiffstats
path: root/sysdep
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2019-09-09 02:55:32 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2019-11-26 18:39:25 +0100
commit5ea39eaa96625ec8274703b1eb2c8f59042a8a32 (patch)
tree0ef3675d3818b86b2ee2c9edaf6663cdf153bbe9 /sysdep
parentaf02b83b888c693c292960072195f0e1caf1d2a1 (diff)
downloadbird-5ea39eaa96625ec8274703b1eb2c8f59042a8a32.tar.gz
Nest: Use bitmaps to keep track of exported routes
Use a hierarchical bitmap in a routing table to assign ids to routes, and then use bitmaps (indexed by route id) in channels to keep track whether routes were exported. This avoids unreliable and inefficient re-evaluation of filters for old routes in order to determine whether they were exported.
Diffstat (limited to 'sysdep')
-rw-r--r--sysdep/unix/krt.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c
index 27868fab..691efb44 100644
--- a/sysdep/unix/krt.c
+++ b/sysdep/unix/krt.c
@@ -736,11 +736,8 @@ krt_prune(struct krt_proto *p)
switch (verdict)
{
case KRF_CREATE:
- if (new && (n->n.flags & KRF_INSTALLED))
- {
- krt_trace_in(p, new, "reinstalling");
- krt_replace_rte(p, n, new, NULL);
- }
+ krt_trace_in(p, new, "reinstalling");
+ krt_replace_rte(p, n, new, NULL);
break;
case KRF_SEEN:
case KRF_IGNORE: