summaryrefslogtreecommitdiff
path: root/ospfd/ospf_vty.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_vty.c')
-rw-r--r--ospfd/ospf_vty.c46
1 files changed, 37 insertions, 9 deletions
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 64d3b7a028..bbb458d8ef 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -1878,7 +1878,7 @@ DEFUN (no_ospf_area_import_list,
DEFUN (ospf_area_filter_list,
ospf_area_filter_list_cmd,
- "area <A.B.C.D|(0-4294967295)> filter-list prefix WORD <in|out>",
+ "area <A.B.C.D|(0-4294967295)> filter-list prefix PREFIXLIST_NAME <in|out>",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
"OSPF area ID as a decimal value\n"
@@ -1923,7 +1923,7 @@ DEFUN (ospf_area_filter_list,
DEFUN (no_ospf_area_filter_list,
no_ospf_area_filter_list_cmd,
- "no area <A.B.C.D|(0-4294967295)> filter-list prefix WORD <in|out>",
+ "no area <A.B.C.D|(0-4294967295)> filter-list prefix PREFIXLIST_NAME <in|out>",
NO_STR
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -4335,9 +4335,9 @@ DEFUN (show_ip_ospf_interface_traffic,
static void show_ip_ospf_neighbour_header(struct vty *vty)
{
- vty_out(vty, "\n%-15s %3s %-15s %9s %-15s %-32s %5s %5s %5s\n",
- "Neighbor ID", "Pri", "State", "Dead Time", "Address",
- "Interface", "RXmtL", "RqstL", "DBsmL");
+ vty_out(vty, "\n%-15s %-3s %-15s %-15s %-9s %-15s %-32s %5s %5s %5s\n",
+ "Neighbor ID", "Pri", "State", "Up Time", "Dead Time",
+ "Address", "Interface", "RXmtL", "RqstL", "DBsmL");
}
static void show_ip_ospf_neighbor_sub(struct vty *vty,
@@ -4350,6 +4350,9 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,
char buf[PREFIX_STRLEN];
char timebuf[OSPF_TIME_DUMP_SIZE];
json_object *json_neighbor = NULL, *json_neigh_array = NULL;
+ struct timeval res;
+ long time_val = 0;
+ char uptime[OSPF_TIME_DUMP_SIZE];
for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) {
if ((nbr = rn->info)) {
@@ -4359,6 +4362,13 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,
/* Down state is not shown. */
if (nbr->state == NSM_Down)
continue;
+
+ if (nbr->ts_last_progress.tv_sec
+ || nbr->ts_last_progress.tv_usec)
+ time_val = monotime_since(
+ &nbr->ts_last_progress, &res)
+ / 1000LL;
+
if (use_json) {
char neigh_str[INET_ADDRSTRLEN];
@@ -4390,7 +4400,7 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,
json_neighbor = json_object_new_object();
- ospf_nbr_state_message(nbr, msgbuf, 16);
+ ospf_nbr_ism_state_message(nbr, msgbuf, 16);
json_object_int_add(json_neighbor, "priority",
nbr->priority);
@@ -4416,8 +4426,22 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,
NULL)
/ 1000LL;
json_object_int_add(json_neighbor,
+ "upTimeInMsec",
+ time_val);
+ json_object_int_add(json_neighbor,
"deadTimeMsecs",
time_store);
+ json_object_string_add(
+ json_neighbor, "upTime",
+ ospf_timeval_dump(
+ &res, uptime,
+ sizeof(uptime)));
+ json_object_string_add(
+ json_neighbor, "deadTime",
+ ospf_timer_dump(
+ nbr->t_inactivity,
+ timebuf,
+ sizeof(timebuf)));
} else {
json_object_string_add(json_neighbor,
"deadTimeMsecs",
@@ -4443,7 +4467,7 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,
json_object_array_add(json_neigh_array,
json_neighbor);
} else {
- ospf_nbr_state_message(nbr, msgbuf, 16);
+ ospf_nbr_ism_state_message(nbr, msgbuf, 16);
if (nbr->state == NSM_Attempt
&& nbr->router_id.s_addr == INADDR_ANY)
@@ -4451,8 +4475,12 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,
nbr->priority, msgbuf);
else
vty_out(vty, "%-15pI4 %3d %-15s ",
- &nbr->router_id,
- nbr->priority, msgbuf);
+ &nbr->router_id, nbr->priority,
+ msgbuf);
+
+ vty_out(vty, "%-15s ",
+ ospf_timeval_dump(&res, uptime,
+ sizeof(uptime)));
vty_out(vty, "%9s ",
ospf_timer_dump(nbr->t_inactivity,