pimd: When we are initializing a pim socket limit hellos

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>
This commit is contained in:
Donald Sharp 2017-06-14 10:54:41 -04:00
parent 1f9666a1db
commit 2aa1ca8418

View 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