Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
return 0;
}
+
+int pim_if_is_loopback(struct pim_instance *pim, struct interface *ifp)
+{
+ if (if_is_loopback(ifp))
+ return 1;
+
+ if (strcmp(ifp->name, pim->vrf->name) == 0)
+ return 1;
+
+ return 0;
+}
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);
#endif /* PIM_IFACE_H */
static int pim_hello_send(struct interface *ifp, uint16_t holdtime)
{
- struct pim_interface *pim_ifp;
-
- zassert(ifp);
- pim_ifp = ifp->info;
- zassert(pim_ifp);
+ struct pim_interface *pim_ifp = ifp->info;
- if (if_is_loopback(ifp))
+ if (pim_if_is_loopback(pim_ifp->pim, ifp))
return 0;
if (hello_send(ifp, holdtime)) {