summaryrefslogtreecommitdiff
path: root/pimd/pim_instance.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_instance.c')
-rw-r--r--pimd/pim_instance.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c
index 4e4e5a6ce8..3945c5923d 100644
--- a/pimd/pim_instance.c
+++ b/pimd/pim_instance.c
@@ -15,6 +15,7 @@
#include "pim_ssm.h"
#include "pim_rpf.h"
#include "pim_rp.h"
+#include "pim_nht.h"
#include "pim_mroute.h"
#include "pim_oil.h"
#include "pim_static.h"
@@ -46,14 +47,15 @@ static void pim_instance_terminate(struct pim_instance *pim)
pim_bsm_proc_free(pim);
- /* Traverse and cleanup rpf_hash */
- hash_clean_and_free(&pim->rpf_hash, (void *)pim_rp_list_hash_clean);
+ pim_nht_terminate(pim);
pim_if_terminate(pim);
pim_oil_terminate(pim);
+#if PIM_IPV == 4
pim_msdp_exit(pim);
+#endif /* PIM_IPV == 4 */
close(pim->reg_sock);
@@ -73,7 +75,6 @@ static void pim_instance_terminate(struct pim_instance *pim)
static struct pim_instance *pim_instance_init(struct vrf *vrf)
{
struct pim_instance *pim;
- char hash_name[64];
pim = XCALLOC(MTYPE_PIM_PIM_INSTANCE, sizeof(struct pim_instance));
@@ -91,15 +92,12 @@ static struct pim_instance *pim_instance_init(struct vrf *vrf)
pim->spt.switchover = PIM_SPT_IMMEDIATE;
pim->spt.plist = NULL;
+#if PIM_IPV == 4
pim_msdp_init(pim, router->master);
+#endif /* PIM_IPV == 4 */
pim_vxlan_init(pim);
- snprintf(hash_name, sizeof(hash_name), "PIM %s RPF Hash", vrf->name);
- pim->rpf_hash = hash_create_size(256, pim_rpf_hash_key, pim_rpf_equal,
- hash_name);
-
- if (PIM_DEBUG_ZEBRA)
- zlog_debug("%s: NHT rpf hash init ", __func__);
+ pim_nht_init(pim);
pim->ssm_info = pim_ssm_init();
@@ -126,11 +124,6 @@ static struct pim_instance *pim_instance_init(struct vrf *vrf)
if (pim->reg_sock < 0)
assert(0);
- /* MSDP global timer defaults. */
- pim->msdp.hold_time = PIM_MSDP_PEER_HOLD_TIME;
- pim->msdp.keep_alive = PIM_MSDP_PEER_KA_TIME;
- pim->msdp.connection_retry = PIM_MSDP_PEER_CONNECT_RETRY_TIME;
-
#if PIM_IPV == 4
pim_autorp_init(pim);
#endif