]> git.puffer.fish Git - mirror/frr.git/commitdiff
* isis_adjacency.c: Stop expire timer while deleting adjacency.
authorhasso <hasso>
Sat, 1 Oct 2005 06:03:04 +0000 (06:03 +0000)
committerhasso <hasso>
Sat, 1 Oct 2005 06:03:04 +0000 (06:03 +0000)
* isis_events.c: Stop pseudo LSP thread while resigning circuit from
  level.
* isis_route.c: Fix compiling with EXTREME_DEBUG. Mark route as not
  in sync with zebra if it's changed.
* isis_spf.c: Schedule route validating etc even if tent was empty.
  It's probably because we just don't have any adjacencies.
* isisd.c: Write minimum spf interval into configuration.

isisd/ChangeLog
isisd/isis_adjacency.c
isisd/isis_events.c
isisd/isis_route.c
isisd/isis_spf.c
isisd/isisd.c

index a053ede2b8c4c9ed4bfb207778702c7ad2d22dd9..81b810a8af2f47fbca39b75daebf5edf8d1e108a 100644 (file)
@@ -1,3 +1,14 @@
+2005-10-01 Hasso Tepper <hasso at quagga.net>
+
+       * isis_adjacency.c: Stop expire timer while deleting adjacency.
+       * isis_events.c: Stop pseudo LSP thread while resigning circuit from
+         level.
+       * isis_route.c: Fix compiling with EXTREME_DEBUG. Mark route as not
+         in sync with zebra if it's changed.
+       * isis_spf.c: Schedule route validating etc even if tent was empty.
+         It's probably because we just don't have any adjacencies.
+       * isisd.c: Write minimum spf interval into configuration.
+
 2005-09-30 Vincent Jardin <vincent.jardin@6wind.com>
 
        * isis_route.c: fix EXTREME_DEBUG compilation
index a898f24ba9998a3309553e86400f51a56b022565..a4078d7211b9441f2f6aa8df34b737e3d51afb9b 100644 (file)
@@ -131,6 +131,8 @@ isis_delete_adj (struct isis_adjacency *adj, struct list *adjdb)
   if (adjdb)
     listnode_delete (adjdb, adj);
 
+  THREAD_OFF (adj->t_expire);
+
   if (adj->ipv4_addrs)
     list_delete (adj->ipv4_addrs);
 #ifdef HAVE_IPV6
index 07736fd7e88e41edebc360506f9724fdb1abb5b0..8b37e8c51796b9c9a72734962a2ed3c811f4afa7 100644 (file)
@@ -195,6 +195,7 @@ circuit_resign_level (struct isis_circuit *circuit, int level)
     {
       THREAD_TIMER_OFF (circuit->u.bc.t_send_lan_hello[idx]);
       THREAD_TIMER_OFF (circuit->u.bc.t_run_dr[idx]);
+      THREAD_TIMER_OFF (circuit->u.bc.t_refresh_pseudo_lsp[idx]);
       circuit->u.bc.run_dr_elect[idx] = 0;
     }
 
index d799ea0e1dbc058be3d5aa94436a03541098e49a..7d0239ca9cb982f7d3923845c9317178695910c8 100644 (file)
@@ -129,6 +129,7 @@ static void
 nexthops_print (struct list *nhs)
 {
   struct listnode *node;
+  struct isis_nexthop *nh;
 
   for (ALL_LIST_ELEMENTS_RO (nhs, node, nh))
     nexthop_print (nh);
@@ -139,7 +140,6 @@ nexthops_print (struct list *nhs)
 static struct isis_nexthop6 *
 isis_nexthop6_new (struct in6_addr *ip6, unsigned int ifindex)
 {
-
   struct isis_nexthop6 *nexthop6;
 
   nexthop6 = XCALLOC (MTYPE_ISIS_NEXTHOP6, sizeof (struct isis_nexthop6));
@@ -523,6 +523,7 @@ isis_route_create (struct prefix *prefix, u_int32_t cost, u_int32_t depth,
       isis_route_info_merge (rinfo_new, rinfo_old, family);
       isis_route_info_delete (rinfo_new);
       route_info = rinfo_old;
+      UNSET_FLAG (route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNC);
     }
   else
     {
index d9375496e1cdc49d2f6b99c65035c8169330f565..988ad9b24de1e1a05d71700ea644c5fbba3ae524 100644 (file)
@@ -1027,8 +1027,7 @@ isis_run_spf (struct isis_area *area, int level, int family)
   if (listcount (spftree->tents) == 0)
     {
       zlog_warn ("ISIS-Spf: TENT is empty");
-      spftree->lastrun = time (NULL);
-      return retval;
+      goto out;
     }
 
   while (listcount (spftree->tents) > 0)
@@ -1068,6 +1067,7 @@ isis_run_spf (struct isis_area *area, int level, int family)
        }
     }
 
+out:
   thread_add_event (master, isis_route_validate, area, 0);
   spftree->lastrun = time (NULL);
   spftree->pending = 0;
index 84e1c8894d0625550fc196477f71ad2a134e47ba..c5c2153f2c1560937126bc1907faeff9d3068240 100644 (file)
@@ -1974,6 +1974,31 @@ isis_config_write (struct vty *vty)
                write++;
              }
          }
+       /* Minimum SPF interval. */
+       if (area->min_spf_interval[0] == area->min_spf_interval[1])
+         {
+           if (area->min_spf_interval[0] != MINIMUM_SPF_INTERVAL)
+             {
+               vty_out (vty, " spf-interval %d%s",
+                        area->min_spf_interval[0], VTY_NEWLINE);
+               write++;
+             }
+         }
+       else
+         {
+           if (area->min_spf_interval[0] != MINIMUM_SPF_INTERVAL)
+             {
+               vty_out (vty, " spf-interval level-1 %d%s",
+                        area->min_spf_interval[0], VTY_NEWLINE);
+               write++;
+             }
+           if (area->min_spf_interval[1] != MINIMUM_SPF_INTERVAL)
+             {
+               vty_out (vty, " spf-interval level-2 %d%s",
+                        area->min_spf_interval[1], VTY_NEWLINE);
+               write++;
+             }
+         }
        /* Authentication passwords. */
        if (area->area_passwd.len > 0)
          {