0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2025-03-11 17:08:46 +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",
s->imp_routes, s->filt_routes, s->exp_routes);
else
cli_msg(-1006, " Routes: %u imported, %u exported",
s->imp_routes, s->exp_routes);
cli_msg(-1006, " Routes: %u imported, %u exported, %u preferred",
s->imp_routes, s->exp_routes, s->pref_routes);
cli_msg(-1006, " Route change stats: received rejected filtered ignored accepted");
cli_msg(-1006, " Import updates: %10u %10u %10u %10u %10u",

View File

@ -112,6 +112,7 @@ struct proto_stats {
/* Import - from protocol to core */
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 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_invalid; /* Number of route updates rejected as invalid */
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)
return;
if ((type == RA_OPTIMAL) && tab->hostcache)
rt_notify_hostcache(tab, net);
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);
}
struct channel *c; node *n;
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, "");
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;
WALK_LIST2(c, n, tab->channels, table_node)
@ -2567,7 +2575,8 @@ rt_show_table_stats(rtable *tab)
if (c->channel_state == CS_DOWN)
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);
}
cli_msg(-1026, "");