mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Channel: Refeeding by an auxiliary request if needed.
If the protocol supports route refresh on export, we keep the stop-start method of route refeed. This applies for BGP with ERR or with export table on, for OSPF, Babel, RIP or Pipe. For BGP without ERR or for future selective ROA reloads, we're adding an auxiliary export request, doing the refeed while the main export request is running, somehow resembling the original method of BIRD 2 refeed. There is also a refeed request queue to keep track of different refeed requests.
This commit is contained in:
@@ -217,7 +217,7 @@ perf_rt_notify(struct proto *P, struct channel *c UNUSED, const net_addr *net UN
|
||||
}
|
||||
|
||||
static void
|
||||
perf_feed_begin(struct channel *c, int initial UNUSED)
|
||||
perf_feed_begin(struct channel *c)
|
||||
{
|
||||
struct perf_proto *p = (struct perf_proto *) c->proto;
|
||||
|
||||
@@ -232,6 +232,7 @@ static void
|
||||
perf_feed_end(struct channel *c)
|
||||
{
|
||||
struct perf_proto *p = (struct perf_proto *) c->proto;
|
||||
|
||||
struct timespec ts_end;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts_end);
|
||||
|
||||
@@ -243,7 +244,7 @@ perf_feed_end(struct channel *c)
|
||||
p->feed_begin = NULL;
|
||||
|
||||
if (p->run < p->repeat)
|
||||
channel_request_feeding(c);
|
||||
channel_request_feeding_dynamic(c, CFRT_DIRECT);
|
||||
else
|
||||
PLOG("feed done");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user