From 94e334a1fecc30b538d4551c035bf913927b21ae Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 29 Jul 2013 02:11:47 +0200 Subject: Adapt to new gmrf API --- src/babel.h | 48 ++++++++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 28 deletions(-) (limited to 'src/babel.h') diff --git a/src/babel.h b/src/babel.h index b85438b..0d64e9c 100644 --- a/src/babel.h +++ b/src/babel.h @@ -55,16 +55,18 @@ struct gmrf_context { + gmrf_t *gmrf; + gp_babel_node_id_t self; - gp_babel_iface_t *interfaces; + gmrf_iface_state_t *interfaces; gp_babel_neigh_t *neighbours; gp_babel_announce_t *announces; }; -struct gp_babel_iface { - gp_babel_iface_t *next; +struct gmrf_iface_state { + gmrf_iface_state_t *next; gmrf_iface_t *gmrf_iface; @@ -78,7 +80,7 @@ struct gp_babel_neigh { unsigned ref; - gp_babel_iface_t *iface; + gmrf_iface_state_t *iface; gmrf_addr_t addr; uint16_t hello_log; @@ -123,25 +125,25 @@ struct gp_babel_nexthop { }; -void gp_babel_handle_packet(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_iface_t *iface, const gmrf_addr_t *source, const gp_babel_packet_t *packet); +void gp_babel_handle_packet(gmrf_context_t *ctx, gmrf_iface_state_t *iface, const gmrf_addr_t *source, const gp_babel_packet_t *packet); -void gp_babel_send_ack(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_neigh_t *neigh, uint16_t nonce); -void gp_babel_send_hellos(gmrf_t *gmrf, gmrf_context_t *ctx); +void gp_babel_send_ack(gmrf_context_t *ctx, gp_babel_neigh_t *neigh, uint16_t nonce); +void gp_babel_send_hellos(gmrf_context_t *ctx); -void gp_babel_send_update(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_iface_t *iface, gp_babel_neigh_t *neigh, gp_babel_announce_t *announce, bool with_payload); +void gp_babel_send_update(gmrf_context_t *ctx, gmrf_iface_state_t *iface, gp_babel_neigh_t *neigh, gp_babel_announce_t *announce, bool with_payload); -void gp_babel_send_announce_request(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_iface_t *iface, gp_babel_neigh_t *neigh, const gp_babel_node_id_t *node, uint16_t type, uint16_t key, bool with_payload); -void gp_babel_send_seqno_request(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_neigh_t *neigh, gp_babel_announce_t *announce, uint16_t seqno, uint8_t hop_count); +void gp_babel_send_announce_request(gmrf_context_t *ctx, gmrf_iface_state_t *iface, gp_babel_neigh_t *neigh, const gp_babel_node_id_t *node, uint16_t type, uint16_t key, bool with_payload); +void gp_babel_send_seqno_request(gmrf_context_t *ctx, gp_babel_neigh_t *neigh, gp_babel_announce_t *announce, uint16_t seqno, uint8_t hop_count); -gp_babel_announce_t* gp_babel_announce_new(gmrf_t *gmrf, gmrf_context_t *ctx); -gp_babel_announce_t* gp_babel_announce_find(gmrf_t *gmrf, gmrf_context_t *ctx, const gp_babel_node_id_t *node, uint16_t type, uint16_t key); -gp_babel_announce_t* gp_babel_announce_get(gmrf_t *gmrf, gmrf_context_t *ctx, const gp_babel_node_id_t *node, uint16_t type, uint16_t key); -void gp_babel_announce_update(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce); -void gp_babel_announce_free(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce); +gp_babel_announce_t* gp_babel_announce_new(gmrf_context_t *ctx); +gp_babel_announce_t* gp_babel_announce_find(gmrf_context_t *ctx, const gp_babel_node_id_t *node, uint16_t type, uint16_t key); +gp_babel_announce_t* gp_babel_announce_get(gmrf_context_t *ctx, const gp_babel_node_id_t *node, uint16_t type, uint16_t key); +void gp_babel_announce_update(gmrf_context_t *ctx, gp_babel_announce_t *announce); +void gp_babel_announce_free(gmrf_context_t *ctx, gp_babel_announce_t *announce); gp_babel_nexthop_t* gp_babel_announce_nexthop_new(gp_babel_announce_t *announce, gp_babel_neigh_t *neigh); gp_babel_nexthop_t* gp_babel_announce_nexthop_find(const gp_babel_announce_t *announce, gp_babel_neigh_t *neigh); -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); +void gp_babel_announce_update_nexthop(gmrf_context_t *ctx, gp_babel_announce_t *announce, gp_babel_nexthop_t *nexthop, gp_babel_metric_seqno_t ms, uint16_t interval); static inline bool gp_babel_node_id_equal(const gp_babel_node_id_t *id1, const gp_babel_node_id_t *id2) { @@ -152,16 +154,6 @@ static inline bool gp_babel_node_id_is_unspec(const gp_babel_node_id_t *id) { return gp_babel_node_id_equal(id, &gp_babel_node_id_unspec); }; -static inline gp_babel_iface_t* gp_babel_get_iface(gmrf_context_t *ctx, gmrf_iface_t *gmrf_iface) { - gp_babel_iface_t *iface; - for (iface = ctx->interfaces; iface; iface = iface->next) { - if (iface->gmrf_iface == gmrf_iface) - return iface; - } - - return NULL; -} - static inline bool gp_babel_is_metric_better(gp_babel_metric_seqno_t ms1, gp_babel_metric_seqno_t ms2) { if (ms1.metric == GP_BABEL_INFINITY) return false; @@ -186,11 +178,11 @@ static inline bool gp_babel_is_feasible(const gp_babel_announce_t *announce, gp_ return gp_babel_is_metric_better(ms, announce->feasibility_distance); } -static inline void gp_babel_send_seqno_request_for(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_neigh_t *neigh, gp_babel_announce_t *announce) { +static inline void gp_babel_send_seqno_request_for(gmrf_context_t *ctx, gp_babel_neigh_t *neigh, gp_babel_announce_t *announce) { if (announce->feasibility_distance.metric == GP_BABEL_INFINITY) return; - gp_babel_send_seqno_request(gmrf, ctx, neigh, announce, announce->feasibility_distance.seqno+1, GP_BABEL_SEQNO_REQ_HOP_LIMIT); + gp_babel_send_seqno_request(ctx, neigh, announce, announce->feasibility_distance.seqno+1, GP_BABEL_SEQNO_REQ_HOP_LIMIT); } #endif /* _GMRF_PROTO_BABEL_BABEL_H_ */ -- cgit v1.2.3