From: Pavel TvrdĂ­k Date: Tue, 28 Jul 2015 16:18:00 +0000 (+0200) Subject: MRT Table Dump: Skip empty RIB Tables X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45d8f0f0be82318fb297e02b437d71dc45cdb49d;p=thirdparty%2Fbird.git MRT Table Dump: Skip empty RIB Tables --- diff --git a/proto/bgp/mrt.c b/proto/bgp/mrt.c index a9021cd00..d4f8a434f 100644 --- a/proto/bgp/mrt.c +++ b/proto/bgp/mrt.c @@ -66,13 +66,13 @@ bgp_mrt_table_dump_step(struct mrt_table_dump_ctx *state) return; uint max_work_size = 1; + u32 original_rib_sequence_number = state->rib_sequence_number; FIB_ITERATE_START(&state->rtable->fib, &state->fit, f) { if (!max_work_size--) { FIB_ITERATE_PUT(&state->fit, f); - bgp_mrt_rib_table_dump(state); return; } @@ -119,6 +119,11 @@ bgp_mrt_table_dump_step(struct mrt_table_dump_ctx *state) mrt_rib_table_add_entry(&state->rib_table, &entry); } + + if (state->rib_table.entry_count) + bgp_mrt_rib_table_dump(state); + else + state->rib_sequence_number = original_rib_sequence_number; } FIB_ITERATE_END(f); fit_get(&state->rtable->fib, &state->fit);