summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_spf.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_spf.c')
-rw-r--r--ospf6d/ospf6_spf.c48
1 files changed, 16 insertions, 32 deletions
diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c
index 7e977499cf..333ce5588e 100644
--- a/ospf6d/ospf6_spf.c
+++ b/ospf6d/ospf6_spf.c
@@ -603,7 +603,7 @@ ospf6_spf_calculation_thread (struct thread *t)
ospf6->t_spf_calc = NULL;
/* execute SPF calculation */
- quagga_gettime (QUAGGA_CLK_MONOTONIC, &start);
+ monotime(&start);
if (ospf6_is_router_abr (ospf6))
ospf6_abr_range_reset_cost (ospf6);
@@ -644,7 +644,7 @@ ospf6_spf_calculation_thread (struct thread *t)
if (ospf6_is_router_abr (ospf6))
ospf6_abr_defaults_to_stub (ospf6);
- quagga_gettime (QUAGGA_CLK_MONOTONIC, &end);
+ monotime(&end);
timersub (&end, &start, &runtime);
ospf6->ts_spf_duration = runtime;
@@ -670,7 +670,6 @@ void
ospf6_spf_schedule (struct ospf6 *ospf6, unsigned int reason)
{
unsigned long delay, elapsed, ht;
- struct timeval now, result;
ospf6_set_spf_reason(ospf6, reason);
@@ -694,11 +693,7 @@ ospf6_spf_schedule (struct ospf6 *ospf6, unsigned int reason)
return;
}
- /* XXX Monotic timers: we only care about relative time here. */
- now = recent_relative_time ();
- timersub (&now, &ospf6->ts_spf, &result);
-
- elapsed = (result.tv_sec * 1000) + (result.tv_usec / 1000);
+ elapsed = monotime_since(&ospf6->ts_spf, NULL) / 1000LL;
ht = ospf6->spf_holdtime * ospf6->spf_hold_multiplier;
if (ht > ospf6->spf_max_holdtime)
@@ -866,7 +861,7 @@ ospf6_timers_spf_set (struct vty *vty, unsigned int delay,
unsigned int hold,
unsigned int max)
{
- struct ospf6 *ospf = vty->index;
+ VTY_DECLVAR_CONTEXT(ospf6, ospf);
ospf->spf_delay = delay;
ospf->spf_holdtime = hold;
@@ -877,7 +872,7 @@ ospf6_timers_spf_set (struct vty *vty, unsigned int delay,
DEFUN (ospf6_timers_throttle_spf,
ospf6_timers_throttle_spf_cmd,
- "timers throttle spf <0-600000> <0-600000> <0-600000>",
+ "timers throttle spf (0-600000) (0-600000) (0-600000)",
"Adjust routing timers\n"
"Throttling adaptive timer\n"
"OSPF6 SPF timers\n"
@@ -885,28 +880,28 @@ DEFUN (ospf6_timers_throttle_spf,
"Initial hold time (msec) between consecutive SPF calculations\n"
"Maximum hold time (msec)\n")
{
+ int idx_number = 3;
+ int idx_number_2 = 4;
+ int idx_number_3 = 5;
unsigned int delay, hold, max;
- if (argc != 3)
- {
- vty_out (vty, "Insufficient arguments%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- VTY_GET_INTEGER_RANGE ("SPF delay timer", delay, argv[0], 0, 600000);
- VTY_GET_INTEGER_RANGE ("SPF hold timer", hold, argv[1], 0, 600000);
- VTY_GET_INTEGER_RANGE ("SPF max-hold timer", max, argv[2], 0, 600000);
+ VTY_GET_INTEGER_RANGE ("SPF delay timer", delay, argv[idx_number]->arg, 0, 600000);
+ VTY_GET_INTEGER_RANGE ("SPF hold timer", hold, argv[idx_number_2]->arg, 0, 600000);
+ VTY_GET_INTEGER_RANGE ("SPF max-hold timer", max, argv[idx_number_3]->arg, 0, 600000);
return ospf6_timers_spf_set (vty, delay, hold, max);
}
DEFUN (no_ospf6_timers_throttle_spf,
no_ospf6_timers_throttle_spf_cmd,
- "no timers throttle spf",
+ "no timers throttle spf [(0-600000) (0-600000) (0-600000)]",
NO_STR
"Adjust routing timers\n"
"Throttling adaptive timer\n"
- "OSPF6 SPF timers\n")
+ "OSPF6 SPF timers\n"
+ "Delay (msec) from first change received till SPF calculation\n"
+ "Initial hold time (msec) between consecutive SPF calculations\n"
+ "Maximum hold time (msec)\n")
{
return ospf6_timers_spf_set (vty,
OSPF_SPF_DELAY_DEFAULT,
@@ -914,16 +909,6 @@ DEFUN (no_ospf6_timers_throttle_spf,
OSPF_SPF_MAX_HOLDTIME_DEFAULT);
}
-ALIAS (no_ospf6_timers_throttle_spf,
- no_ospf6_timers_throttle_spf_val_cmd,
- "no timers throttle spf <0-600000> <0-600000> <0-600000>",
- NO_STR
- "Adjust routing timers\n"
- "Throttling adaptive timer\n"
- "OSPF6 SPF timers\n"
- "Delay (msec) from first change received till SPF calculation\n"
- "Initial hold time (msec) between consecutive SPF calculations\n"
- "Maximum hold time (msec)\n")
int
config_write_ospf6_debug_spf (struct vty *vty)
@@ -972,5 +957,4 @@ ospf6_spf_init (void)
{
install_element (OSPF6_NODE, &ospf6_timers_throttle_spf_cmd);
install_element (OSPF6_NODE, &no_ospf6_timers_throttle_spf_cmd);
- install_element (OSPF6_NODE, &no_ospf6_timers_throttle_spf_val_cmd);
}