]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Allow us to repair missed inherited_olists
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 9 Dec 2016 00:26:41 +0000 (19:26 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:19 +0000 (20:26 -0500)
There exists situations where we have noted that
we need to rescan but have missed the window
of opportunity to actually redo the scan
so for the moment allow the S,G 30 second
scanner notice the missed opportunity and
fix it.  We'll remove this later.

Ticket: CM-13988
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_cmd.c
pimd/pim_upstream.c

index 53bae4d5fd46a94c74ee827d075e94e4819416ed..bc15336bac0d58d7bc80e0a5d59f01b6f28bb7d3 100644 (file)
@@ -2944,6 +2944,7 @@ static void show_mroute(struct vty *vty, u_char uj)
       json_object_int_add(json_source, "installed", c_oil->installed);
       json_object_int_add(json_source, "refCount", c_oil->oil_ref_count);
       json_object_int_add(json_source, "oilSize", c_oil->oil_size);
+      json_object_int_add(json_source, "OilInheritedRescan", c_oil->oil_inherited_rescan);
 
       if (!json_ifp_in) {
         json_ifp_in = json_object_new_object();
index 32bc5f57490cbfdf5616ae6aab9acccb59dd87c1..b0bac7b7d4c04546dbea37117b9b4897ce79b544 100644 (file)
@@ -1452,7 +1452,21 @@ pim_upstream_sg_running (void *arg)
       return;
     }
 
-
+  /*
+   * This is a bit of a hack
+   * We've noted that we should rescan but
+   * we've missed the window for doing so in
+   * pim_zebra.c for some reason.  I am
+   * only doing this at this point in time
+   * to get us up and working for the moment
+   */
+  if (up->channel_oil->oil_inherited_rescan)
+    {
+      if (PIM_DEBUG_TRACE)
+        zlog_debug ("%s: Handling unscanned inherited_olist for %s", __PRETTY_FUNCTION__, up->sg_str);
+      pim_upstream_inherited_olist_decide (up);
+      up->channel_oil->oil_inherited_rescan = 0;
+    }
   pim_mroute_update_counters (up->channel_oil);
 
   // Have we seen packets?