mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +00:00
Move aggregation algorithm to separate function
This commit is contained in:
parent
4e29dd3f95
commit
b572ad323d
@ -906,14 +906,8 @@ calculate_trie(struct aggregator_proto *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
run_aggregation(struct channel *C)
|
run_aggregation(struct aggregator_proto *p)
|
||||||
{
|
{
|
||||||
struct aggregator_proto *p = (void *)C->proto;
|
|
||||||
|
|
||||||
/* Run aggregation only on feed-end from source channel */
|
|
||||||
if (C != p->src)
|
|
||||||
return;
|
|
||||||
|
|
||||||
construct_trie(p);
|
construct_trie(p);
|
||||||
calculate_trie(p);
|
calculate_trie(p);
|
||||||
collect_prefixes(p);
|
collect_prefixes(p);
|
||||||
@ -923,6 +917,16 @@ run_aggregation(struct channel *C)
|
|||||||
log("==== AGGREGATION DONE ====");
|
log("==== AGGREGATION DONE ====");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
aggregate_on_feed_end(struct channel *C)
|
||||||
|
{
|
||||||
|
struct aggregator_proto *p = SKIP_BACK(struct aggregator_proto, p, C);
|
||||||
|
|
||||||
|
/* Run aggregation only on feed end from the source channel */
|
||||||
|
if (C == p->src)
|
||||||
|
run_aggregation(p);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set static attribute in @rta from static attribute in @old according to @sa.
|
* Set static attribute in @rta from static attribute in @old according to @sa.
|
||||||
*/
|
*/
|
||||||
@ -1532,7 +1536,7 @@ aggregator_init(struct proto_config *CF)
|
|||||||
|
|
||||||
P->rt_notify = aggregator_rt_notify;
|
P->rt_notify = aggregator_rt_notify;
|
||||||
P->preexport = aggregator_preexport;
|
P->preexport = aggregator_preexport;
|
||||||
P->feed_end = run_aggregation;
|
P->feed_end = aggregate_on_feed_end;
|
||||||
|
|
||||||
return P;
|
return P;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user