Timers: Show sub-second times in some protocol outputs

This commit is contained in:
Ondrej Zajicek (work) 2017-06-13 16:52:21 +02:00
parent 212eda07c4
commit d3fa9e84e9
5 changed files with 24 additions and 38 deletions

View file

@ -1136,7 +1136,7 @@ graceful_restart_show_status(void)
cli_msg(-24, "Graceful restart recovery in progress"); cli_msg(-24, "Graceful restart recovery in progress");
cli_msg(-24, " Waiting for %d channels to recover", graceful_restart_locks); cli_msg(-24, " Waiting for %d channels to recover", graceful_restart_locks);
cli_msg(-24, " Wait timer is %d/%d", tm_remains(gr_wait_timer), config->gr_wait); cli_msg(-24, " Wait timer is %t/%u", tm2_remains(gr_wait_timer), config->gr_wait);
} }
/** /**

View file

@ -1078,7 +1078,7 @@ bfd_show_sessions(struct proto *P)
byte tbuf[TM_DATETIME_BUFFER_SIZE]; byte tbuf[TM_DATETIME_BUFFER_SIZE];
struct bfd_proto *p = (struct bfd_proto *) P; struct bfd_proto *p = (struct bfd_proto *) P;
uint state, diag UNUSED; uint state, diag UNUSED;
u32 tx_int, timeout; btime tx_int, timeout;
const char *ifname; const char *ifname;
if (p->p.proto_state != PS_UP) if (p->p.proto_state != PS_UP)
@ -1099,15 +1099,14 @@ bfd_show_sessions(struct proto *P)
state = s->loc_state; state = s->loc_state;
diag = s->loc_diag; diag = s->loc_diag;
ifname = (s->ifa && s->ifa->iface) ? s->ifa->iface->name : "---"; ifname = (s->ifa && s->ifa->iface) ? s->ifa->iface->name : "---";
tx_int = s->last_tx ? (MAX(s->des_min_tx_int, s->rem_min_rx_int) TO_MS) : 0; tx_int = s->last_tx ? MAX(s->des_min_tx_int, s->rem_min_rx_int) : 0;
timeout = (MAX(s->req_min_rx_int, s->rem_min_tx_int) TO_MS) * s->rem_detect_mult; timeout = (btime) MAX(s->req_min_rx_int, s->rem_min_tx_int) * s->rem_detect_mult;
state = (state < 4) ? state : 0; state = (state < 4) ? state : 0;
tm_format_time(tbuf, &config->tf_proto, s->last_state_change); tm_format_time(tbuf, &config->tf_proto, s->last_state_change);
cli_msg(-1020, "%-25I %-10s %-10s %-10s %3u.%03u %3u.%03u", cli_msg(-1020, "%-25I %-10s %-10s %-10s %7t %7t",
s->addr, ifname, bfd_state_names[state], tbuf, s->addr, ifname, bfd_state_names[state], tbuf, tx_int, timeout);
tx_int / 1000, tx_int % 1000, timeout / 1000, timeout % 1000);
} }
HASH_WALK_END; HASH_WALK_END;

View file

@ -2009,17 +2009,17 @@ bgp_show_proto_info(struct proto *P)
if ((p->start_state < BSS_CONNECT) && if ((p->start_state < BSS_CONNECT) &&
(tm_active(p->startup_timer))) (tm_active(p->startup_timer)))
cli_msg(-1006, " Error wait: %d/%d", cli_msg(-1006, " Error wait: %t/%u",
(int) tm_remains(p->startup_timer), p->startup_delay); tm2_remains(p->startup_timer), p->startup_delay);
if ((oc->state == BS_ACTIVE) && if ((oc->state == BS_ACTIVE) &&
(tm_active(oc->connect_timer))) (tm_active(oc->connect_timer)))
cli_msg(-1006, " Connect delay: %d/%d", cli_msg(-1006, " Connect delay: %t/%u",
(int) tm_remains(oc->connect_timer), p->cf->connect_delay_time); tm2_remains(oc->connect_timer), p->cf->connect_delay_time);
if (p->gr_active_num && tm_active(p->gr_timer)) if (p->gr_active_num && tm_active(p->gr_timer))
cli_msg(-1006, " Restart timer: %d/-", cli_msg(-1006, " Restart timer: %t/-",
(int) tm_remains(p->gr_timer)); tm2_remains(p->gr_timer));
} }
else if (P->proto_state == PS_UP) else if (P->proto_state == PS_UP)
{ {
@ -2040,10 +2040,10 @@ bgp_show_proto_info(struct proto *P)
p->ext_messages ? " ext-messages" : ""); p->ext_messages ? " ext-messages" : "");
*/ */
cli_msg(-1006, " Source address: %I", p->source_addr); cli_msg(-1006, " Source address: %I", p->source_addr);
cli_msg(-1006, " Hold timer: %d/%d", cli_msg(-1006, " Hold timer: %t/%u",
tm_remains(p->conn->hold_timer), p->conn->hold_time); tm2_remains(p->conn->hold_timer), p->conn->hold_time);
cli_msg(-1006, " Keepalive timer: %d/%d", cli_msg(-1006, " Keepalive timer: %t/%u",
tm_remains(p->conn->keepalive_timer), p->conn->keepalive_time); tm2_remains(p->conn->keepalive_timer), p->conn->keepalive_time);
} }
if ((p->last_error_class != BE_NONE) && if ((p->last_error_class != BE_NONE) &&

View file

@ -651,20 +651,6 @@ ospf_sh_neigh_info(struct ospf_neighbor *n)
{ {
struct ospf_iface *ifa = n->ifa; struct ospf_iface *ifa = n->ifa;
char *pos = "PtP "; char *pos = "PtP ";
char etime[6];
int exp, sec, min;
exp = tm_remains(n->inactim);
sec = exp % 60;
min = exp / 60;
if (min > 59)
{
bsprintf(etime, "-Inf-");
}
else
{
bsprintf(etime, "%02u:%02u", min, sec);
}
if ((ifa->type == OSPF_IT_BCAST) || (ifa->type == OSPF_IT_NBMA)) if ((ifa->type == OSPF_IT_BCAST) || (ifa->type == OSPF_IT_NBMA))
{ {
@ -676,6 +662,7 @@ ospf_sh_neigh_info(struct ospf_neighbor *n)
pos = "Other"; pos = "Other";
} }
cli_msg(-1013, "%-1R\t%3u\t%s/%s\t%-5s\t%-10s %-1I", n->rid, n->priority, cli_msg(-1013, "%-1R\t%3u\t%s/%s\t%7t\t%-10s %-1I",
ospf_ns_names[n->state], pos, etime, ifa->ifname, n->ip); n->rid, n->priority, ospf_ns_names[n->state], pos,
tm2_remains(n->inactim), ifa->ifname, n->ip);
} }

View file

@ -790,9 +790,9 @@ static void
rpki_show_proto_info_timer(const char *name, uint num, timer *t) rpki_show_proto_info_timer(const char *name, uint num, timer *t)
{ {
if (tm_active(t)) if (tm_active(t))
cli_msg(-1006, " %-17s %us (remains %ds)", name, num, (int) tm_remains(t)); cli_msg(-1006, " %-16s: %t/%u", name, tm2_remains(t), num);
else else
cli_msg(-1006, " %-17s ---", name); cli_msg(-1006, " %-16s: ---", name);
} }
static void static void
@ -836,9 +836,9 @@ rpki_show_proto_info(struct proto *P)
cli_msg(-1006, " Last update: ---"); cli_msg(-1006, " Last update: ---");
} }
rpki_show_proto_info_timer("Refresh interval:", cache->refresh_interval, cache->refresh_timer); rpki_show_proto_info_timer("Refresh timer", cache->refresh_interval, cache->refresh_timer);
rpki_show_proto_info_timer("Retry interval:", cache->retry_interval, cache->retry_timer); rpki_show_proto_info_timer("Retry timer", cache->retry_interval, cache->retry_timer);
rpki_show_proto_info_timer("Expire interval:", cache->expire_interval, cache->expire_timer); rpki_show_proto_info_timer("Expire timer", cache->expire_interval, cache->expire_timer);
if (p->roa4_channel) if (p->roa4_channel)
channel_show_info(p->roa4_channel); channel_show_info(p->roa4_channel);