[PATCH] Nest: "Last route change" timestamp for routing tables
I¹ve written a patch which adds a ³last route change² timestamp to the routing table statistics. This diff is against the Œmaarten¹ branch, where the code adding the ³show table statistics² command is currently located. diff --git a/nest/route.h b/nest/route.h index c7c44ecc..8472b432 100644 --- a/nest/route.h +++ b/nest/route.h @@ -166,6 +166,7 @@ typedef struct rtable { uint route_count; /* Number of routes in the table */ uint route_updates; /* Number of accepted route updates */ uint route_withdraws; /* Number of accepted route withdraws */ + btime last_route_change; /* Time of last route change */ struct hostcache *hostcache; struct rtable_config *config; /* Configuration of this table */ struct config *deleted; /* Table doesn't exist in current configuration, diff --git a/nest/rt-table.c b/nest/rt-table.c index efc1f1d7..116e8756 100644 --- a/nest/rt-table.c +++ b/nest/rt-table.c @@ -1143,9 +1143,9 @@ rte_recalculate(struct channel *c, net *net, rte *new, struct rte_src *src) skip_stats1: if (new_ok) - table->route_count++; + { table->route_count++; table->last_route_change = current_time(); } if (old_ok) - table->route_count--; + { table->route_count--; table->last_route_change = current_time(); } if (new) rte_is_filtered(new) ? stats->filt_routes++ : stats->imp_routes++; @@ -1668,6 +1668,7 @@ rt_setup(pool *p, rtable *t, struct rtable_config *cf) t->rt_event->hook = rt_event; t->rt_event->data = t; t->gc_time = current_time(); + t->last_route_change = current_time(); } /** @@ -2299,7 +2300,7 @@ rte_update_in(struct channel *c, const net_addr *n, rte *new, struct rte_src *sr *pos = old->next; rte_free_quick(old); tab->route_count--; - + tab->last_route_change = current_time(); break; } @@ -2333,6 +2334,7 @@ rte_update_in(struct channel *c, const net_addr *n, rte *new, struct rte_src *sr e->next = *pos; *pos = e; tab->route_count++; + tab->last_route_change = current_time(); return 1; drop_update: @@ -2406,6 +2408,7 @@ rt_prune_sync(rtable *t, int all) *ee = e->next; rte_free_quick(e); t->route_count--; + t->last_route_change = current_time(); } else ee = &e->next; @@ -2711,6 +2714,9 @@ rt_get_hostentry(rtable *tab, ip_addr a, ip_addr ll, rtable *dep) static void rt_show_table_stats(rtable *tab) { + byte tm[TM_DATETIME_BUFFER_SIZE]; + tm_format_time(tm, &config->tf_route, tab->last_route_change); + cli_msg(-1026, "%s:", tab->name); cli_msg(-1026, "Table type:\t\t%s", net_label[tab->addr_type]); cli_msg(-1026, "Hash table size:\t%u", tab->fib.hash_size); @@ -2718,6 +2724,7 @@ rt_show_table_stats(rtable *tab) cli_msg(-1026, "Total route count:\t%u", tab->route_count); cli_msg(-1026, "Route updates:\t\t%u", tab->route_updates); cli_msg(-1026, "Route withdraws:\t%u", tab->route_withdraws); + cli_msg(-1026, "Last route update:\t%s", tm); cli_msg(-1026, ""); cli_msg(-1026, "%-16s %10s %10s %10s %10s", "Protocol", "Routes", "Preferred", "Updates", "Withdraws"); Thanks, Tom P
On Mon, Apr 29, 2019 at 10:54:34AM +0000, Tom Petty wrote:
I¹ve written a patch which adds a ³last route change² timestamp to the routing table statistics. This diff is against the Œmaarten¹ branch, where the code adding the ³show table statistics² command is currently located.
Hi Seems like the patch was mangled by e-mail client, could you send it as attachment? -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
Hi, Right you are, I have attached the patch. Tom P On 30/04/2019, 13:15, "Ondrej Zajicek" <santiago@crfreenet.org> wrote:
On Mon, Apr 29, 2019 at 10:54:34AM +0000, Tom Petty wrote:
I¹ve written a patch which adds a ³last route change² timestamp to the routing table statistics. This diff is against the Œmaarten¹ branch, where the code adding the ³show table statistics² command is currently located.
Hi
Seems like the patch was mangled by e-mail client, could you send it as attachment?
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Ondrej Zajicek -
Tom Petty