1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Nest: Add preferred counter

This commit is contained in:
Ondrej Zajicek (work)
2019-01-16 15:16:51 +01:00
parent c6faca916a
commit a80055393e
3 changed files with 16 additions and 6 deletions

View File

@@ -1624,8 +1624,8 @@ channel_show_stats(struct channel *c)
cli_msg(-1006, " Routes: %u imported, %u filtered, %u exported", cli_msg(-1006, " Routes: %u imported, %u filtered, %u exported",
s->imp_routes, s->filt_routes, s->exp_routes); s->imp_routes, s->filt_routes, s->exp_routes);
else else
cli_msg(-1006, " Routes: %u imported, %u exported", cli_msg(-1006, " Routes: %u imported, %u exported, %u preferred",
s->imp_routes, s->exp_routes); s->imp_routes, s->exp_routes, s->pref_routes);
cli_msg(-1006, " Route change stats: received rejected filtered ignored accepted"); cli_msg(-1006, " Route change stats: received rejected filtered ignored accepted");
cli_msg(-1006, " Import updates: %10u %10u %10u %10u %10u", cli_msg(-1006, " Import updates: %10u %10u %10u %10u %10u",

View File

@@ -112,6 +112,7 @@ struct proto_stats {
/* Import - from protocol to core */ /* Import - from protocol to core */
u32 imp_routes; /* Number of routes successfully imported to the (adjacent) routing table */ u32 imp_routes; /* Number of routes successfully imported to the (adjacent) routing table */
u32 filt_routes; /* Number of routes rejected in import filter but kept in the routing table */ u32 filt_routes; /* Number of routes rejected in import filter but kept in the routing table */
u32 pref_routes; /* Number of routes that are preferred, sum over all routing tables */
u32 imp_updates_received; /* Number of route updates received */ u32 imp_updates_received; /* Number of route updates received */
u32 imp_updates_invalid; /* Number of route updates rejected as invalid */ u32 imp_updates_invalid; /* Number of route updates rejected as invalid */
u32 imp_updates_filtered; /* Number of route updates rejected by filters */ u32 imp_updates_filtered; /* Number of route updates rejected by filters */

View File

@@ -909,8 +909,16 @@ rte_announce(rtable *tab, unsigned type, net *net, rte *new, rte *old,
if (!old && !new) if (!old && !new)
return; return;
if ((type == RA_OPTIMAL) && tab->hostcache) if (type == RA_OPTIMAL)
{
if (new)
new->sender->stats.pref_routes++;
if (old)
old->sender->stats.pref_routes--;
if (tab->hostcache)
rt_notify_hostcache(tab, net); rt_notify_hostcache(tab, net);
}
struct channel *c; node *n; struct channel *c; node *n;
WALK_LIST2(c, n, tab->channels, table_node) WALK_LIST2(c, n, tab->channels, table_node)
@@ -2559,7 +2567,7 @@ rt_show_table_stats(rtable *tab)
cli_msg(-1026, "Route withdraws:\t%u", tab->route_withdraws); cli_msg(-1026, "Route withdraws:\t%u", tab->route_withdraws);
cli_msg(-1026, ""); cli_msg(-1026, "");
cli_msg(-1026, "%-16s %10s %10s %10s", "Protocol", "Routes", "Updates", "Withdraws"); cli_msg(-1026, "%-16s %10s %10s %10s %10s", "Protocol", "Routes", "Preferred", "Updates", "Withdraws");
struct channel *c; node *n; struct channel *c; node *n;
WALK_LIST2(c, n, tab->channels, table_node) WALK_LIST2(c, n, tab->channels, table_node)
@@ -2567,7 +2575,8 @@ rt_show_table_stats(rtable *tab)
if (c->channel_state == CS_DOWN) if (c->channel_state == CS_DOWN)
continue; continue;
cli_msg(-1026, "%-16s %10u %10u %10u", c->proto->name, c->stats.imp_routes, cli_msg(-1026, "%-16s %10u %10u %10u %10u", c->proto->name,
c->stats.imp_routes, c->stats.pref_routes,
c->stats.imp_updates_accepted, c->stats.imp_withdraws_accepted); c->stats.imp_updates_accepted, c->stats.imp_withdraws_accepted);
} }
cli_msg(-1026, ""); cli_msg(-1026, "");