summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_iface.c2
-rw-r--r--pimd/pim_mroute.c28
-rw-r--r--pimd/pim_mroute.h2
3 files changed, 16 insertions, 16 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index 5e47bb19b0..817c644406 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -1039,7 +1039,7 @@ int pim_if_del_vif(struct interface *ifp)
return -1;
}
- pim_mroute_del_vif(pim_ifp->mroute_vif_index);
+ pim_mroute_del_vif(ifp);
/*
Update vif_index
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index fb216bcfb3..bb4086972b 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -782,7 +782,7 @@ int pim_mroute_add_vif(struct interface *ifp, struct in_addr ifaddr,
}
#endif
- err = setsockopt(pimg->mroute_socket, IPPROTO_IP, MRT_ADD_VIF,
+ err = setsockopt(pim_ifp->pim->mroute_socket, IPPROTO_IP, MRT_ADD_VIF,
(void *)&vc, sizeof(vc));
if (err) {
char ifaddr_str[INET_ADDRSTRLEN];
@@ -792,37 +792,37 @@ int pim_mroute_add_vif(struct interface *ifp, struct in_addr ifaddr,
zlog_warn(
"%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_ADD_VIF,vif_index=%d,ifaddr=%s,flag=%d): errno=%d: %s",
- __FILE__, __PRETTY_FUNCTION__, pimg->mroute_socket,
- ifp->ifindex, ifaddr_str, flags, errno,
- safe_strerror(errno));
+ __FILE__, __PRETTY_FUNCTION__,
+ pim_ifp->pim->mroute_socket, ifp->ifindex, ifaddr_str,
+ flags, errno, safe_strerror(errno));
return -2;
}
return 0;
}
-int pim_mroute_del_vif(int vif_index)
+int pim_mroute_del_vif(struct interface *ifp)
{
+ struct pim_interface *pim_ifp = ifp->info;
struct vifctl vc;
int err;
- if (PIM_DEBUG_MROUTE) {
- struct interface *ifp = pim_if_find_by_vif_index(vif_index);
+ if (PIM_DEBUG_MROUTE)
zlog_debug("%s %s: Del Vif %d (%s) ", __FILE__,
- __PRETTY_FUNCTION__, vif_index,
- ifp ? ifp->name : "NULL");
- }
+ __PRETTY_FUNCTION__, pim_ifp->mroute_vif_index,
+ ifp->name);
memset(&vc, 0, sizeof(vc));
- vc.vifc_vifi = vif_index;
+ vc.vifc_vifi = pim_ifp->mroute_vif_index;
- err = setsockopt(pimg->mroute_socket, IPPROTO_IP, MRT_DEL_VIF,
+ err = setsockopt(pim_ifp->pim->mroute_socket, IPPROTO_IP, MRT_DEL_VIF,
(void *)&vc, sizeof(vc));
if (err) {
zlog_warn(
"%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_DEL_VIF,vif_index=%d): errno=%d: %s",
- __FILE__, __PRETTY_FUNCTION__, pimg->mroute_socket,
- vif_index, errno, safe_strerror(errno));
+ __FILE__, __PRETTY_FUNCTION__,
+ pim_ifp->pim->mroute_socket, pim_ifp->mroute_vif_index,
+ errno, safe_strerror(errno));
return -2;
}
diff --git a/pimd/pim_mroute.h b/pimd/pim_mroute.h
index 9e12b18702..53d0ed03c5 100644
--- a/pimd/pim_mroute.h
+++ b/pimd/pim_mroute.h
@@ -168,7 +168,7 @@ int pim_mroute_socket_disable(struct pim_instance *pim);
int pim_mroute_add_vif(struct interface *ifp, struct in_addr ifaddr,
unsigned char flags);
-int pim_mroute_del_vif(int vif_index);
+int pim_mroute_del_vif(struct interface *ifp);
int pim_mroute_add(struct channel_oil *c_oil, const char *name);
int pim_mroute_del(struct channel_oil *c_oil, const char *name);