]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: Don't refersh the oif_creation timer if S,G already present
authorSarita Patra <saritap@vmware.com>
Fri, 8 Feb 2019 07:50:12 +0000 (23:50 -0800)
committerSarita Patra <saritap@vmware.com>
Fri, 8 Feb 2019 07:50:12 +0000 (23:50 -0800)
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>
pimd/pim_oil.c

index 1290bfe56b153d4ec3e658bbf56cd20c05f0ee70..2e12d728cfd4d68927ffc2420d0e0d296ec0d7ef 100644 (file)
@@ -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 */