diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-04-30 13:50:08 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-04-30 13:53:01 +0200 |
commit | 7f432a28e08bef5aaa75a830161f893adb9b3577 (patch) | |
tree | 558c03a41282c7fd2d30f25f1ff998d7a72cfba8 /pimd | |
parent | Merge pull request #2134 from donaldsharp/zzz-top (diff) | |
download | frr-7f432a28e08bef5aaa75a830161f893adb9b3577.tar.xz frr-7f432a28e08bef5aaa75a830161f893adb9b3577.zip |
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>
Diffstat (limited to 'pimd')
-rw-r--r-- | pimd/pim_iface.c | 11 | ||||
-rw-r--r-- | pimd/pim_iface.h | 2 | ||||
-rw-r--r-- | pimd/pim_pim.c | 4 |
3 files changed, 7 insertions, 10 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index ff7238ae9..e58d81591 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -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 (strcmp(ifp->name, pim->vrf->name) == 0) - return 1; + if (if_is_loopback(ifp) || if_is_vrf(ifp)) + return true; - return 0; + return false; } int pim_if_is_vrf_device(struct interface *ifp) diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h index 5ecd07d22..12098fde2 100644 --- a/pimd/pim_iface.h +++ b/pimd/pim_iface.h @@ -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); diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c index ffe5d52a1..de09b070f 100644 --- a/pimd/pim_pim.c +++ b/pimd/pim_pim.c @@ -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; /* |