diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-03-26 05:39:11 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-03-26 05:39:11 +0100 |
commit | a6fa92d1c8774a704fd4a869fc5d7799528b084f (patch) | |
tree | e5f0f28b7c76f268627adee037f1ec040824b051 /src/announce.c | |
parent | 79c6fd3f14b51d37c45b78d2a4f511927b9eac94 (diff) | |
download | babel-a6fa92d1c8774a704fd4a869fc5d7799528b084f.tar babel-a6fa92d1c8774a704fd4a869fc5d7799528b084f.zip |
Send announce and seqno requests
Diffstat (limited to 'src/announce.c')
-rw-r--r-- | src/announce.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/announce.c b/src/announce.c index 1d17a02..4d55f42 100644 --- a/src/announce.c +++ b/src/announce.c @@ -92,7 +92,7 @@ gp_babel_nexthop_t* gp_babel_announce_nexthop_new(gp_babel_announce_t *announce, return nexthop; } -static void maintain_nexthops(gmrf_t *gmrf, gp_babel_announce_t *announce) { +static void maintain_nexthops(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce) { gp_babel_nexthop_t **cur, **next; for (cur = &announce->nexthops; *cur; cur = next) { gp_babel_nexthop_t *nexthop = *cur; @@ -131,7 +131,7 @@ static void maintain_nexthops(gmrf_t *gmrf, gp_babel_announce_t *announce) { else if (gmrf_now(gmrf) > nexthop->last_update+GP_BABEL_UPDATE_REQUEST_TIMEOUT(nexthop->interval)*10 && announce->selected == nexthop) { if (!nexthop->requested_update) { gmrf_logf(gmrf, LOG_INFO, "announce about to expire, requesting update"); - // gp_babel_send_announce_request(nexthop->neigh->iface, nexthop->neigh, announce->node, announce->type, announce->key, false); + gp_babel_send_announce_request(gmrf, ctx, NULL, nexthop->neigh, &announce->node, announce->type, announce->key, false); nexthop->requested_update = true; } } @@ -172,14 +172,14 @@ gp_babel_metric_seqno_t get_metric(gmrf_t *gmrf, const gp_babel_announce_t *anno return (gp_babel_metric_seqno_t){GP_BABEL_INFINITY, 0}; } -void gp_babel_announce_update(gmrf_t *gmrf, gp_babel_announce_t *announce) { - maintain_nexthops(gmrf, announce); +void gp_babel_announce_update(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce) { + maintain_nexthops(gmrf, ctx, announce); announce->selected = select_nexthop(gmrf, announce); announce->metric = get_metric(gmrf, announce); - //if (!announce->selected) - // gp_babel_send_seqno_request_for(NULL, announce); + if (!announce->selected) + gp_babel_send_seqno_request_for(gmrf, ctx, NULL, announce); /* triggered updates */ /*int diff = announce->metric.metric - announce->last_metric; @@ -191,7 +191,7 @@ void gp_babel_announce_update(gmrf_t *gmrf, gp_babel_announce_t *announce) { } */ } -void gp_babel_announce_update_nexthop(gmrf_t *gmrf, gp_babel_announce_t *announce, gp_babel_nexthop_t *nexthop, gp_babel_metric_seqno_t ms, uint16_t interval) { +void gp_babel_announce_update_nexthop(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce, gp_babel_nexthop_t *nexthop, gp_babel_metric_seqno_t ms, uint16_t interval) { nexthop->metric_seqno = ms; nexthop->interval = interval; nexthop->requested_update = false; @@ -199,5 +199,5 @@ void gp_babel_announce_update_nexthop(gmrf_t *gmrf, gp_babel_announce_t *announc if (ms.metric != GP_BABEL_INFINITY) nexthop->last_update = gmrf_now(gmrf); - gp_babel_announce_update(gmrf, announce); + gp_babel_announce_update(gmrf, ctx, announce); } |