diff options
| author | Mobashshera Rasool <mrasool@vmware.com> | 2023-06-01 01:56:41 -0700 |
|---|---|---|
| committer | Mobashshera Rasool <mrasool@vmware.com> | 2023-06-06 23:59:55 -0700 |
| commit | 692b1f3e97f282362cd57e0e236423fc761a96b9 (patch) | |
| tree | 186026a2024cd455f9124de7b9c8e9293cb63464 /pimd/pim_iface.c | |
| parent | e7356fdba11691483d3e927d74aa50ffc62e900b (diff) | |
pimd, pim6d: Rename and move api pim_cmd_interface_delete
Rename pim_cmd_interface_delete to pim_pim_interface_delete
and move the api to pimd/pim_iface.c
Changed the return type of the api from int to void.
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
Diffstat (limited to 'pimd/pim_iface.c')
| -rw-r--r-- | pimd/pim_iface.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 82548454a5..a83b8af014 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -1775,3 +1775,27 @@ static void pim_if_membership_clear(struct interface *ifp) pim_ifchannel_membership_clear(ifp); } + +void pim_pim_interface_delete(struct interface *ifp) +{ + struct pim_interface *pim_ifp = ifp->info; + + if (!pim_ifp) + return; + + pim_ifp->pim_enable = false; + + pim_if_membership_clear(ifp); + + /* + * pim_sock_delete() removes all neighbors from + * pim_ifp->pim_neighbor_list. + */ + pim_sock_delete(ifp, "pim unconfigured on interface"); + pim_upstream_nh_if_update(pim_ifp->pim, ifp); + + if (!pim_ifp->gm_enable) { + pim_if_addr_del_all(ifp); + pim_if_delete(ifp); + } +} |
