From: Donald Sharp Date: Fri, 9 Dec 2016 00:26:41 +0000 (-0500) Subject: pimd: Allow us to repair missed inherited_olists X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~18 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=bfdf409644f37429933eafef2af21c0f63ef43ff;p=mirror%2Ffrr.git pimd: Allow us to repair missed inherited_olists 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 --- diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 53bae4d5fd..bc15336bac 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -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(); diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 32bc5f5749..b0bac7b7d4 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -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?