summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authorSarita Patra <saritap@vmware.com>2019-02-08 08:50:12 +0100
committerSarita Patra <saritap@vmware.com>2019-02-08 08:50:12 +0100
commitd23756e938cd3cb3c0bfd2b286370282d0fb1c2d (patch)
treebb950ab1e4819dce7a5a33622a093162f3aca1c6 /pimd
parentMerge pull request #3752 from mjstapp/fix_wq_static_func (diff)
downloadfrr-d23756e938cd3cb3c0bfd2b286370282d0fb1c2d.tar.xz
frr-d23756e938cd3cb3c0bfd2b286370282d0fb1c2d.zip
pimd: Don't refersh the oif_creation timer if S,G already present
Issue: Shut the RP interface in the router RP. LHR will get to know RP becomes not-reachable, so it send a prune towards the RP. On receiving the prune, RP clear the (*, G) entry, but (S, G) should not get removed if present. Now no-shut the RP interface in the router RP. LHR will send a (*, G) join towards the RP. On receiving join FRR create the (*, G) entry. Along with this, it also add the interface(join received) in the OIL of (S, G) and also refresh the (S, G) timer. Fix: Dont refresh the timer for S, G or (*, G), if the flag for the channel OIL is PIM_OIF_FLAG_PROTO_ANY. Signed-off-by: Sarita Patra <saritap@vmware.com>
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim_oil.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pimd/pim_oil.c b/pimd/pim_oil.c
index 1290bfe56..2e12d728c 100644
--- a/pimd/pim_oil.c
+++ b/pimd/pim_oil.c
@@ -392,8 +392,10 @@ int pim_channel_add_oif(struct channel_oil *channel_oil, struct interface *oif,
if (channel_oil->oif_flags[pim_ifp->mroute_vif_index]
& PIM_OIF_FLAG_PROTO_ANY) {
- channel_oil->oif_creation[pim_ifp->mroute_vif_index] =
- pim_time_monotonic_sec();
+ /* Updating time here is not required as this time has to
+ * indicate when the interface is added
+ */
+
channel_oil->oif_flags[pim_ifp->mroute_vif_index] |= proto_mask;
/* Check the OIF really exists before returning, and only log
warning otherwise */