]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: When we are initializing a pim socket limit hellos
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 14 Jun 2017 14:54:41 +0000 (10:54 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 24 Jul 2017 17:51:39 +0000 (13:51 -0400)
When we are initializing a pim socket for vrf or loopback
interfaces do not schedule a hello to go out at all.

I'm currently leaving the check on is a vrf / loopback
device on the actual send as that we have several paths
to get there.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_pim.c

index 5b9d6effc8b1cfda5118b6d5f0ef5210b372b9dd..5bfe9c4f1f63d4a37fdb5b2280ed0368d9e445cc 100644 (file)
@@ -675,9 +675,7 @@ static void hello_resched(struct interface *ifp)
 {
        struct pim_interface *pim_ifp;
 
-       zassert(ifp);
        pim_ifp = ifp->info;
-       zassert(pim_ifp);
 
        if (PIM_DEBUG_PIM_HELLO) {
                zlog_debug("Rescheduling %d sec hello on interface %s",
@@ -698,7 +696,6 @@ static int on_pim_hello_send(struct thread *t)
        struct interface *ifp;
 
        ifp = THREAD_ARG(t);
-
        pim_ifp = ifp->info;
 
        /*
@@ -725,9 +722,7 @@ void pim_hello_restart_now(struct interface *ifp)
 {
        struct pim_interface *pim_ifp;
 
-       zassert(ifp);
        pim_ifp = ifp->info;
-       zassert(pim_ifp);
 
        /*
         * Reset next hello timer
@@ -755,9 +750,13 @@ void pim_hello_restart_triggered(struct interface *ifp)
        int triggered_hello_delay_msec;
        int random_msec;
 
-       zassert(ifp);
        pim_ifp = ifp->info;
-       zassert(pim_ifp);
+
+       /*
+        * No need to ever start loopback or vrf device hello's
+        */
+       if (pim_if_is_loopback(pim_ifp->pim, ifp))
+               return;
 
        /*
         * There exists situations where we have the a RPF out this