Merge svn revisions 924 and 925 from Zebra CVS. Also remove useless
ospf6_lsdb prototype declaration from ospf6_lsa.h. Report sent to Yasuhiro
Ohara as well.
diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c
index d3c0f81..63bc10a 100644
--- a/ospf6d/ospf6_spf.c
+++ b/ospf6d/ospf6_spf.c
@@ -151,7 +151,7 @@
 
   lsa = ospf6_lsdb_lookup (type, id, adv_router, v->area->lsdb);
 
-  if (IS_OSPF6_DEBUG_SPF (DETAIL))
+  if (IS_OSPF6_DEBUG_SPF (PROCESS))
     {
       char ibuf[16], abuf[16];
       inet_ntop (AF_INET, &id, ibuf, sizeof (ibuf));
@@ -212,7 +212,7 @@
         }
     }
 
-  if (IS_OSPF6_DEBUG_SPF (DETAIL))
+  if (IS_OSPF6_DEBUG_SPF (PROCESS))
     zlog_info ("  Backlink %s", (found ? "OK" : "FAIL"));
 
   return found;
@@ -236,7 +236,7 @@
   oi = ospf6_interface_lookup_by_ifindex (ifindex);
   if (oi == NULL)
     {
-      if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+      if (IS_OSPF6_DEBUG_SPF (PROCESS))
         zlog_warn ("Can't find interface in SPF: ifindex %d", ifindex);
       return;
     }
@@ -255,7 +255,7 @@
         continue;
 
       link_lsa = (struct ospf6_link_lsa *) OSPF6_LSA_HEADER_END (lsa->header);
-      if (IS_OSPF6_DEBUG_SPF (DETAIL))
+      if (IS_OSPF6_DEBUG_SPF (PROCESS))
         {
           inet_ntop (AF_INET6, &link_lsa->linklocal_addr, buf, sizeof (buf));
           zlog_info ("  nexthop %s from %s", buf, lsa->name);
@@ -270,7 +270,7 @@
         }
     }
 
-  if (i == 0 && IS_OSPF6_DEBUG_SPF (SUMMARY))
+  if (i == 0 && IS_OSPF6_DEBUG_SPF (PROCESS))
     zlog_info ("No nexthop for %s found", w->name);
 }
 
@@ -283,14 +283,14 @@
   struct ospf6_vertex *prev, *w;
   listnode node;
 
-  if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+  if (IS_OSPF6_DEBUG_SPF (PROCESS))
     zlog_info ("SPF install %s hops %d cost %d",
                v->name, v->hops, v->cost);
 
   route = ospf6_route_lookup (&v->vertex_id, result_table);
   if (route && route->path.cost < v->cost)
     {
-      if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+      if (IS_OSPF6_DEBUG_SPF (PROCESS))
         zlog_info ("  already installed with lower cost (%d), ignore",
                    route->path.cost);
       ospf6_vertex_delete (v);
@@ -298,7 +298,7 @@
     }
   else if (route && route->path.cost == v->cost)
     {
-      if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+      if (IS_OSPF6_DEBUG_SPF (PROCESS))
         zlog_info ("  another path found, merge");
 
       for (i = 0; ospf6_nexthop_is_set (&v->nexthop[i]) &&
@@ -477,7 +477,7 @@
             }
 
           /* add new candidate to the candidate_list */
-          if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+          if (IS_OSPF6_DEBUG_SPF (PROCESS))
             zlog_info ("  New candidate: %s hops %d cost %d",
                        w->name, w->hops, w->cost);
           pqueue_enqueue (w, candidate_list);
@@ -496,7 +496,7 @@
   oa = (struct ospf6_area *) THREAD_ARG (t);
   oa->thread_spf_calculation = NULL;
 
-  if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+  if (IS_OSPF6_DEBUG_SPF (PROCESS) || IS_OSPF6_DEBUG_SPF (TIME))
     zlog_info ("SPF calculation for area %s", oa->name);
 
   /* execute SPF calculation */
@@ -504,7 +504,7 @@
   ospf6_spf_calculation (oa->ospf6->router_id, oa->spf_table, oa);
   gettimeofday (&end, (struct timezone *) NULL);
 
-  if (IS_OSPF6_DEBUG_SPF (SUMMARY))
+  if (IS_OSPF6_DEBUG_SPF (PROCESS) || IS_OSPF6_DEBUG_SPF (TIME))
     {
       timersub (&end, &start, &runtime);
       zlog_info ("SPF calculation for area %s: runtime %ld sec %ld usec",
@@ -558,62 +558,64 @@
   free (next_prefix);
 }
 
-DEFUN (debug_ospf6_spf_detail,
-       debug_ospf6_spf_detail_cmd,
-       "debug ospf6 spf detail",
+DEFUN (debug_ospf6_spf_process,
+       debug_ospf6_spf_process_cmd,
+       "debug ospf6 spf process",
        DEBUG_STR
        OSPF6_STR
        "Debug SPF Calculation\n"
-       "Debug Detailed SPF\n"
+       "Debug Detailed SPF Process\n"
       )
 {
   unsigned char level = 0;
-  level = OSPF6_DEBUG_SPF_SUMMARY | OSPF6_DEBUG_SPF_DETAIL;
+  level = OSPF6_DEBUG_SPF_PROCESS;
   OSPF6_DEBUG_SPF_ON (level);
   return CMD_SUCCESS;
 }
 
-DEFUN (debug_ospf6_spf,
-       debug_ospf6_spf_cmd,
-       "debug ospf6 spf",
+DEFUN (debug_ospf6_spf_time,
+       debug_ospf6_spf_time_cmd,
+       "debug ospf6 spf time",
        DEBUG_STR
        OSPF6_STR
        "Debug SPF Calculation\n"
+       "Measure time taken by SPF Calculation\n"
       )
 {
   unsigned char level = 0;
-  level = OSPF6_DEBUG_SPF_SUMMARY;
+  level = OSPF6_DEBUG_SPF_TIME;
   OSPF6_DEBUG_SPF_ON (level);
   return CMD_SUCCESS;
 }
 
-DEFUN (no_debug_ospf6_spf_detail,
-       no_debug_ospf6_spf_detail_cmd,
-       "no debug ospf6 spf detail",
+DEFUN (no_debug_ospf6_spf_process,
+       no_debug_ospf6_spf_process_cmd,
+       "no debug ospf6 spf process",
        NO_STR
        DEBUG_STR
        OSPF6_STR
        "Quit Debugging SPF Calculation\n"
-       "Quit Debugging Detailed SPF (change to debug summary)\n"
+       "Quit Debugging Detailed SPF Process\n"
       )
 {
   unsigned char level = 0;
-  level = OSPF6_DEBUG_SPF_DETAIL;
+  level = OSPF6_DEBUG_SPF_PROCESS;
   OSPF6_DEBUG_SPF_OFF (level);
   return CMD_SUCCESS;
 }
 
-DEFUN (no_debug_ospf6_spf,
-       no_debug_ospf6_spf_cmd,
-       "no debug ospf6 spf",
+DEFUN (no_debug_ospf6_spf_time,
+       no_debug_ospf6_spf_time_cmd,
+       "no debug ospf6 spf time",
        NO_STR
        DEBUG_STR
        OSPF6_STR
        "Quit Debugging SPF Calculation\n"
+       "Quit Measuring time taken by SPF Calculation\n"
       )
 {
   unsigned char level = 0;
-  level = OSPF6_DEBUG_SPF_SUMMARY | OSPF6_DEBUG_SPF_DETAIL;
+  level = OSPF6_DEBUG_SPF_TIME;
   OSPF6_DEBUG_SPF_OFF (level);
   return CMD_SUCCESS;
 }
@@ -621,24 +623,24 @@
 int
 config_write_ospf6_debug_spf (struct vty *vty)
 {
-  if (IS_OSPF6_DEBUG_SPF (DETAIL))
-    vty_out (vty, "debug ospf6 spf detail%s", VNL);
-  else if (IS_OSPF6_DEBUG_SPF (SUMMARY))
-    vty_out (vty, "debug ospf6 spf%s", VNL);
+  if (IS_OSPF6_DEBUG_SPF (PROCESS))
+    vty_out (vty, "debug ospf6 spf process%s", VNL);
+  if (IS_OSPF6_DEBUG_SPF (TIME))
+    vty_out (vty, "debug ospf6 spf time%s", VNL);
   return 0;
 }
 
 void
 install_element_ospf6_debug_spf ()
 {
-  install_element (ENABLE_NODE, &debug_ospf6_spf_cmd);
-  install_element (ENABLE_NODE, &debug_ospf6_spf_detail_cmd);
-  install_element (ENABLE_NODE, &no_debug_ospf6_spf_cmd);
-  install_element (ENABLE_NODE, &no_debug_ospf6_spf_detail_cmd);
-  install_element (CONFIG_NODE, &debug_ospf6_spf_cmd);
-  install_element (CONFIG_NODE, &debug_ospf6_spf_detail_cmd);
-  install_element (CONFIG_NODE, &no_debug_ospf6_spf_cmd);
-  install_element (CONFIG_NODE, &no_debug_ospf6_spf_detail_cmd);
+  install_element (ENABLE_NODE, &debug_ospf6_spf_process_cmd);
+  install_element (ENABLE_NODE, &debug_ospf6_spf_time_cmd);
+  install_element (ENABLE_NODE, &no_debug_ospf6_spf_process_cmd);
+  install_element (ENABLE_NODE, &no_debug_ospf6_spf_time_cmd);
+  install_element (CONFIG_NODE, &debug_ospf6_spf_process_cmd);
+  install_element (CONFIG_NODE, &debug_ospf6_spf_time_cmd);
+  install_element (CONFIG_NODE, &no_debug_ospf6_spf_process_cmd);
+  install_element (CONFIG_NODE, &no_debug_ospf6_spf_time_cmd);
 }
 
 void