From: Ondrej Zajicek Date: Fri, 2 May 2014 16:25:41 +0000 (+0200) Subject: Merge commit 'c980f8002e0f0578d5e715d48d65d9fb9a0c5a70' into integrated X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=36a16cc8b954f88548f3e667d7934d5ef8202e74;p=thirdparty%2Fbird.git Merge commit 'c980f8002e0f0578d5e715d48d65d9fb9a0c5a70' into integrated Conflicts: sysdep/unix/krt.h --- 36a16cc8b954f88548f3e667d7934d5ef8202e74 diff --cc nest/config.Y index 4315979f8,59d354b82..c8ebd9bcc --- a/nest/config.Y +++ b/nest/config.Y @@@ -104,11 -111,14 +105,16 @@@ listen_opt ; + CF_ADDTO(conf, gr_opts) + + gr_opts: GRACEFUL RESTART WAIT expr ';' { new_config->gr_wait = $4; } ; + + /* Creation of routing tables */ -tab_sorted: +CF_ADDTO(conf, table) + +table_sorted: { $$ = 0; } | SORTED { $$ = 1; } ; diff --cc nest/route.h index 89efddd8a,82d9e2025..762a47547 --- a/nest/route.h +++ b/nest/route.h @@@ -308,11 -274,17 +316,20 @@@ void rt_dump_all(void) int rt_feed_baby(struct proto *p); void rt_feed_baby_abort(struct proto *p); int rt_prune_loop(void); -struct rtable_config *rt_new_table(struct symbol *s); +struct rtable_config *rt_new_table(struct symbol *s, int addr_type); +static inline int rt_match(int rt, u32 rtlist) { return !rtlist || ((1 << rt) & rtlist); } +int rt_addrsize(int addr_type); // XXXX needed? + + static inline void + rt_mark_for_prune(rtable *tab) + { + if (tab->prune_state == RPS_RUNNING) + fit_get(&tab->fib, &tab->prune_fit); + + tab->prune_state = RPS_SCHEDULED; + } + struct rt_show_data { ip_addr prefix; unsigned pxlen; diff --cc sysdep/unix/krt.h index 2ce8d31ff,2cd231656..149599970 --- a/sysdep/unix/krt.h +++ b/sysdep/unix/krt.h @@@ -63,8 -64,8 +64,9 @@@ struct krt_proto #endif node krt_node; /* Node in krt_proto_list */ + int addr_type; /* Kernel table address type */ - int initialized; /* First scan has already been finished */ + byte ready; /* Initial feed has been finished */ + byte initialized; /* First scan has been finished */ }; extern pool *krt_pool;