diff options
Diffstat (limited to 'pimd')
-rw-r--r-- | pimd/pim_autorp.c | 5 | ||||
-rw-r--r-- | pimd/pim_iface.c | 3 | ||||
-rw-r--r-- | pimd/pim_vty.c | 6 | ||||
-rw-r--r-- | pimd/pimd.c | 2 |
4 files changed, 12 insertions, 4 deletions
diff --git a/pimd/pim_autorp.c b/pimd/pim_autorp.c index df4f809b..a07bd4ab 100644 --- a/pimd/pim_autorp.c +++ b/pimd/pim_autorp.c @@ -1014,12 +1014,13 @@ void pim_autorp_init(struct pim_instance *pim) autorp->announce_interval = DEFAULT_ANNOUNCE_INTERVAL; autorp->announce_holdtime = DEFAULT_ANNOUNCE_HOLDTIME; + pim->autorp = autorp; + if (!pim_autorp_socket_enable(autorp)) { - zlog_err("%s: AutoRP failed to initialize", __func__); + zlog_err("%s: AutoRP failed to initialize, feature will not work correctly", __func__); return; } - pim->autorp = autorp; if (PIM_DEBUG_AUTORP) zlog_debug("%s: AutoRP Initialized", __func__); diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 20e3ba18..19460aa4 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -1464,8 +1464,7 @@ static void pim_if_gm_join_del_all(struct interface *ifp) return; for (ALL_LIST_ELEMENTS(pim_ifp->gm_join_list, node, nextnode, ij)) - pim_if_gm_join_del(ifp, ij->group_addr, ij->source_addr, - GM_JOIN_STATIC); + pim_if_gm_join_del(ifp, ij->group_addr, ij->source_addr, ij->join_type); } ferr_r pim_if_static_group_add(struct interface *ifp, pim_addr group_addr, diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c index b633e81d..bb620b7a 100644 --- a/pimd/pim_vty.c +++ b/pimd/pim_vty.c @@ -325,6 +325,9 @@ static int gm_config_write(struct vty *vty, int writes, struct listnode *node; struct gm_join *ij; for (ALL_LIST_ELEMENTS_RO(pim_ifp->gm_join_list, node, ij)) { + if (ij->join_type == GM_JOIN_PROXY) + continue; + if (pim_addr_is_any(ij->source_addr)) vty_out(vty, " ip igmp join-group %pPAs\n", &ij->group_addr); @@ -395,6 +398,9 @@ static int gm_config_write(struct vty *vty, int writes, struct gm_join *ij; for (ALL_LIST_ELEMENTS_RO(pim_ifp->gm_join_list, node, ij)) { + if (ij->join_type == GM_JOIN_PROXY) + continue; + if (pim_addr_is_any(ij->source_addr)) vty_out(vty, " ipv6 mld join-group %pPAs\n", &ij->group_addr); diff --git a/pimd/pimd.c b/pimd/pimd.c index db619748..1a9ef0ce 100644 --- a/pimd/pimd.c +++ b/pimd/pimd.c @@ -17,6 +17,7 @@ #include "vrf.h" #include "lib_errors.h" #include "bfd.h" +#include "filter.h" #include "pimd.h" #if PIM_IPV == 4 @@ -143,6 +144,7 @@ void pim_terminate(void) prefix_list_add_hook(NULL); prefix_list_delete_hook(NULL); prefix_list_reset(); + access_list_reset(); pim_vxlan_terminate(); pim_vrf_terminate(); |