summaryrefslogtreecommitdiff
path: root/nest
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2023-04-17 11:37:29 +0200
committerMaria Matejka <mq@ucw.cz>2023-04-17 13:30:14 +0200
commit787fb56da37bfe9da4ea8d1a5a0d0cab02c9523a (patch)
tree76e93b20df24ca8cd84e665872d9819b0b05bf6d /nest
parent61e64d6a4119c32e0fa1b03285f805e21a00f6ab (diff)
IO: added a specific loop pickup group for BFD; to be done better in future
Diffstat (limited to 'nest')
-rw-r--r--nest/proto.c2
-rw-r--r--nest/protocol.h1
-rw-r--r--nest/rt-table.c2
3 files changed, 3 insertions, 2 deletions
diff --git a/nest/proto.c b/nest/proto.c
index 21460e56..cd6a3faa 100644
--- a/nest/proto.c
+++ b/nest/proto.c
@@ -1220,7 +1220,7 @@ proto_start(struct proto *p)
p->gr_recovery = 1;
if (p->cf->loop_order != DOMAIN_ORDER(the_bird))
- p->loop = birdloop_new(p->pool, p->cf->loop_order, p->pool->name);
+ p->loop = birdloop_new(p->pool, p->cf->loop_order, p->pool->name, p->cf->loop_max_latency);
p->iface_sub.target = proto_event_list(p);
diff --git a/nest/protocol.h b/nest/protocol.h
index fe987d17..01153162 100644
--- a/nest/protocol.h
+++ b/nest/protocol.h
@@ -106,6 +106,7 @@ struct proto_config {
u32 debug, mrtdump; /* Debugging bitfields, both use D_* constants */
u32 router_id; /* Protocol specific router ID */
uint loop_order; /* Launch a birdloop on this locking level; use DOMAIN_ORDER(the_bird) for mainloop */
+ btime loop_max_latency; /* Request this specific maximum latency of loop; zero to default */
list channels; /* List of channel configs (struct channel_config) */
struct iface *vrf; /* Related VRF instance, NULL if global */
diff --git a/nest/rt-table.c b/nest/rt-table.c
index 54aa90a6..b18727b1 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -2907,7 +2907,7 @@ rt_setup(pool *pp, struct rtable_config *cf)
}
/* Start the service thread */
- t->loop = birdloop_new(p, DOMAIN_ORDER(service), mb_sprintf(p, "Routing table %s", t->name));
+ t->loop = birdloop_new(p, DOMAIN_ORDER(service), mb_sprintf(p, "Routing table %s", t->name), 0);
birdloop_enter(t->loop);
birdloop_flag_set_handler(t->loop, &t->fh);
birdloop_leave(t->loop);