Commit 64e2d24f authored by Maria Matejka's avatar Maria Matejka
Browse files

Pipe delay scaffolding

parent b9deced2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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
+4 −0
Original line number Diff line number Diff line
@@ -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);
}

+2 −0
Original line number Diff line number Diff line
@@ -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