mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Pipe delay scaffolding
This commit is contained in:
parent
b9deced219
commit
64e2d24f6f
@ -16,7 +16,7 @@ CF_DEFINES
|
||||
|
||||
CF_DECLS
|
||||
|
||||
CF_KEYWORDS(PIPE, PEER, TABLE)
|
||||
CF_KEYWORDS(PIPE, PEER, TABLE, DELAY)
|
||||
|
||||
CF_GRAMMAR
|
||||
|
||||
@ -41,6 +41,7 @@ pipe_proto:
|
||||
| pipe_proto proto_item ';'
|
||||
| pipe_proto channel_item ';'
|
||||
| pipe_proto PEER TABLE rtable ';' { PIPE_CFG->peer = $4; }
|
||||
| pipe_proto DELAY expr_us ';' { PIPE_CFG->delay = $3; }
|
||||
;
|
||||
|
||||
CF_CODE
|
||||
|
@ -182,6 +182,7 @@ pipe_init(struct proto_config *CF)
|
||||
P->preexport = pipe_preexport;
|
||||
P->reload_routes = pipe_reload_routes;
|
||||
|
||||
p->delay = cf->delay;
|
||||
pipe_configure_channels(p, cf);
|
||||
|
||||
return P;
|
||||
@ -193,6 +194,9 @@ pipe_reconfigure(struct proto *P, struct proto_config *CF)
|
||||
struct pipe_proto *p = (void *) P;
|
||||
struct pipe_config *cf = (void *) CF;
|
||||
|
||||
if (p->delay != cf->delay)
|
||||
return 0;
|
||||
|
||||
return pipe_configure_channels(p, cf);
|
||||
}
|
||||
|
||||
|
@ -12,12 +12,14 @@
|
||||
struct pipe_config {
|
||||
struct proto_config c;
|
||||
struct rtable_config *peer; /* Table we're connected to */
|
||||
btime delay;
|
||||
};
|
||||
|
||||
struct pipe_proto {
|
||||
struct proto p;
|
||||
struct channel *pri;
|
||||
struct channel *sec;
|
||||
btime delay;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user