diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2024-09-24 15:36:09 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-24 15:36:09 -0400 |
| commit | c0ccf381d49c8c0425cd6b47ec6b367043e4b65d (patch) | |
| tree | 7d16685776da44fa28d6ed1771d5a505edf39ac3 /pimd/pim_iface.c | |
| parent | 354f73d6152b5e6e17b1c6e2c6b643735db94ca9 (diff) | |
| parent | dff1db9ef699a768806d1aa752f0166d33339bc9 (diff) | |
Merge pull request #16634 from nabahr/autorp
PIM: Implement AutoRP functionality
Diffstat (limited to 'pimd/pim_iface.c')
| -rw-r--r-- | pimd/pim_iface.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 7f873f45dc..1dc9307e4f 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -1914,6 +1914,12 @@ static int pim_ifp_up(struct interface *ifp) } } +#if PIM_IPV == 4 + if (pim->autorp && pim->autorp->do_discovery && pim_ifp && + pim_ifp->pim_enable) + pim_autorp_add_ifp(ifp); +#endif + pim_cand_addrs_changed(); return 0; } @@ -1951,6 +1957,10 @@ static int pim_ifp_down(struct interface *ifp) pim_ifstat_reset(ifp); } +#if PIM_IPV == 4 + pim_autorp_rm_ifp(ifp); +#endif + pim_cand_addrs_changed(); return 0; } @@ -2023,6 +2033,11 @@ void pim_pim_interface_delete(struct interface *ifp) if (!pim_ifp) return; +#if PIM_IPV == 4 + if (pim_ifp->pim_enable) + pim_autorp_rm_ifp(ifp); +#endif + pim_ifp->pim_enable = false; pim_if_membership_clear(ifp); |
