diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-07 08:57:40 -0500 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-07 10:14:17 -0500 |
| commit | 547dc6429c9c97f2ff18c26ba51d94cc76350c8b (patch) | |
| tree | 7ba7551da88554b07b4328144f364e7b53334383 /sharpd/sharp_zebra.c | |
| parent | d21f1a930fb82114a63c4060d18c12fe48771100 (diff) | |
sharpd: Move route global variables into the global data structure
Clean up the route global variables into a global data structure.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'sharpd/sharp_zebra.c')
| -rw-r--r-- | sharpd/sharp_zebra.c | 49 |
1 files changed, 20 insertions, 29 deletions
diff --git a/sharpd/sharp_zebra.c b/sharpd/sharp_zebra.c index f6de086c06..58ace8c58b 100644 --- a/sharpd/sharp_zebra.c +++ b/sharpd/sharp_zebra.c @@ -36,6 +36,7 @@ #include "nexthop.h" #include "nexthop_group.h" +#include "sharp_globals.h" #include "sharp_zebra.h" /* Zebra structure to hold current status. */ @@ -129,16 +130,6 @@ static int interface_state_down(int command, struct zclient *zclient, return 0; } -static struct timeval t_start; -static struct timeval t_end; -extern uint32_t total_routes; -extern uint32_t installed_routes; -extern uint32_t removed_routes; -extern int32_t repeat; -extern struct prefix orig_prefix; -extern struct nexthop_group nhop_group; -extern uint8_t inst; - void sharp_install_routes_helper(struct prefix *p, uint8_t instance, struct nexthop_group *nhg, uint32_t routes) @@ -154,7 +145,7 @@ void sharp_install_routes_helper(struct prefix *p, uint8_t instance, } else temp = ntohl(p->u.val32[3]); - monotime(&t_start); + monotime(&sg.r.t_start); for (i = 0; i < routes; i++) { route_add(p, (uint8_t)instance, nhg); if (v4) @@ -178,7 +169,7 @@ void sharp_remove_routes_helper(struct prefix *p, uint8_t instance, } else temp = ntohl(p->u.val32[3]); - monotime(&t_start); + monotime(&sg.r.t_start); for (i = 0; i < routes; i++) { route_delete(p, (uint8_t)instance); if (v4) @@ -190,21 +181,21 @@ void sharp_remove_routes_helper(struct prefix *p, uint8_t instance, static void handle_repeated(bool installed) { - struct prefix p = orig_prefix; - repeat--; + struct prefix p = sg.r.orig_prefix; + sg.r.repeat--; - if (repeat <= 0) + if (sg.r.repeat <= 0) return; if (installed) { - removed_routes = 0; - sharp_remove_routes_helper(&p, inst, total_routes); + sg.r.removed_routes = 0; + sharp_remove_routes_helper(&p, sg.r.inst, sg.r.total_routes); } - if (!installed) { - installed_routes = 0; - sharp_install_routes_helper(&p, inst, &nhop_group, - total_routes); + if (installed) { + sg.r.installed_routes = 0; + sharp_install_routes_helper(&p, sg.r.inst, &sg.r.nhop_group, + sg.r.total_routes); } } @@ -221,10 +212,10 @@ static int route_notify_owner(int command, struct zclient *zclient, switch (note) { case ZAPI_ROUTE_INSTALLED: - installed_routes++; - if (total_routes == installed_routes) { - monotime(&t_end); - timersub(&t_end, &t_start, &r); + sg.r.installed_routes++; + if (sg.r.total_routes == sg.r.installed_routes) { + monotime(&sg.r.t_end); + timersub(&sg.r.t_end, &sg.r.t_start, &r); zlog_debug("Installed All Items %ld.%ld", r.tv_sec, r.tv_usec); handle_repeated(true); @@ -237,10 +228,10 @@ static int route_notify_owner(int command, struct zclient *zclient, zlog_debug("Better Admin Distance won over us"); break; case ZAPI_ROUTE_REMOVED: - removed_routes++; - if (total_routes == removed_routes) { - monotime(&t_end); - timersub(&t_end, &t_start, &r); + sg.r.removed_routes++; + if (sg.r.total_routes == sg.r.removed_routes) { + monotime(&sg.r.t_end); + timersub(&sg.r.t_end, &sg.r.t_start, &r); zlog_debug("Removed all Items %ld.%ld", r.tv_sec, r.tv_usec); handle_repeated(false); |
