summaryrefslogtreecommitdiff
path: root/nest/route.h
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-07-24 14:11:12 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2013-07-24 14:11:12 +0200
commit9135c1f0ca6322bff9648895b5394b97761b4bcb (patch)
tree5a1a73f1191dc5f808b823a4f34d6f24f0bcf22b /nest/route.h
parent48b15ef10fede35113af71bd0dbb0b27a5fcb8f5 (diff)
Fixes bug in protocol flushing and rtable pruning.
When route was propagated to another rtable through a pipe and then the pipe was reconfigured softly in such a way that any subsequent route updates are filtered, then the source protocol shutdown didn't clean up the route in the second rtable which caused stale routes and potential crashes.
Diffstat (limited to 'nest/route.h')
-rw-r--r--nest/route.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/nest/route.h b/nest/route.h
index 8fd01a66..35b5fa19 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -141,7 +141,7 @@ typedef struct rtable {
int gc_counter; /* Number of operations since last GC */
bird_clock_t gc_time; /* Time of last GC */
byte gc_scheduled; /* GC is scheduled */
- byte prune_state; /* Table prune state, 1 -> prune is running */
+ byte prune_state; /* Table prune state, 1 -> scheduled, 2-> running */
byte hcu_scheduled; /* Hostcache update is scheduled */
byte nhu_state; /* Next Hop Update state */
struct fib_iterator prune_fit; /* Rtable prune FIB iterator */
@@ -265,7 +265,6 @@ void rt_dump(rtable *);
void rt_dump_all(void);
int rt_feed_baby(struct proto *p);
void rt_feed_baby_abort(struct proto *p);
-void rt_schedule_prune_all(void);
int rt_prune_loop(void);
struct rtable_config *rt_new_table(struct symbol *s);