pimd: Cleanup pim_if_is_loopback

The interface itself knows if it is a vrf device or
not, so let's just use a check for that in the decision
if a interface is a loopback or not.

Additionally modify function to return a bool.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2018-04-30 07:50:08 -04:00
parent 397123370b
commit 7f432a28e0
3 changed files with 7 additions and 10 deletions

View File

@ -1547,15 +1547,12 @@ int pim_if_connected_to_source(struct interface *ifp, struct in_addr src)
return 0;
}
int pim_if_is_loopback(struct pim_instance *pim, struct interface *ifp)
bool pim_if_is_loopback(struct interface *ifp)
{
if (if_is_loopback(ifp))
return 1;
if (if_is_loopback(ifp) || if_is_vrf(ifp))
return true;
if (strcmp(ifp->name, pim->vrf->name) == 0)
return 1;
return 0;
return false;
}
int pim_if_is_vrf_device(struct interface *ifp)

View File

@ -207,7 +207,7 @@ void pim_if_create_pimreg(struct pim_instance *pim);
int pim_if_connected_to_source(struct interface *ifp, struct in_addr src);
int pim_update_source_set(struct interface *ifp, struct in_addr source);
int pim_if_is_loopback(struct pim_instance *pim, struct interface *ifp);
bool pim_if_is_loopback(struct interface *ifp);
int pim_if_is_vrf_device(struct interface *ifp);

View File

@ -653,7 +653,7 @@ static int pim_hello_send(struct interface *ifp, uint16_t holdtime)
{
struct pim_interface *pim_ifp = ifp->info;
if (pim_if_is_loopback(pim_ifp->pim, ifp))
if (pim_if_is_loopback(ifp))
return 0;
if (hello_send(ifp, holdtime)) {
@ -755,7 +755,7 @@ void pim_hello_restart_triggered(struct interface *ifp)
/*
* No need to ever start loopback or vrf device hello's
*/
if (pim_if_is_loopback(pim_ifp->pim, ifp))
if (pim_if_is_loopback(ifp))
return;
/*