]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pimd.c
Merge pull request #5288 from SumitAgarwal123/bfd_docs
[mirror_frr.git] / pimd / pimd.c
index 33aac5a264409c5400d2753d0ae963df34b3cb71..889a83a136bdaec25bc9bf9214c2e3f34b368f18 100644 (file)
@@ -51,14 +51,6 @@ DEFINE_MTYPE_STATIC(PIMD, ROUTER, "PIM Router information");
 
 struct pim_router *router = NULL;
 
-struct pim_assert_metric qpim_infinite_assert_metric;
-long qpim_rpf_cache_refresh_delay_msec = 50;
-int qpim_packet_process = PIM_DEFAULT_PACKET_PROCESS;
-struct pim_instance *pimg = NULL;
-
-int32_t qpim_register_suppress_time = PIM_REGISTER_SUPPRESSION_TIME_DEFAULT;
-int32_t qpim_register_probe_time = PIM_REGISTER_PROBE_TIME_DEFAULT;
-
 void pim_prefix_list_update(struct prefix_list *plist)
 {
        struct pim_instance *pim;
@@ -75,7 +67,7 @@ void pim_prefix_list_update(struct prefix_list *plist)
        }
 }
 
-static void pim_free()
+static void pim_free(void)
 {
        pim_route_map_terminate();
 
@@ -89,6 +81,26 @@ void pim_router_init(void)
        router->debugs = 0;
        router->master = frr_init();
        router->t_periodic = PIM_DEFAULT_T_PERIODIC;
+
+       /*
+         RFC 4601: 4.6.3.  Assert Metrics
+
+         assert_metric
+         infinite_assert_metric() {
+         return {1,infinity,infinity,0}
+         }
+       */
+       router->infinite_assert_metric.rpt_bit_flag = 1;
+       router->infinite_assert_metric.metric_preference =
+               PIM_ASSERT_METRIC_PREFERENCE_MAX;
+       router->infinite_assert_metric.route_metric =
+               PIM_ASSERT_ROUTE_METRIC_MAX;
+       router->infinite_assert_metric.ip_address.s_addr = INADDR_ANY;
+       router->rpf_cache_refresh_delay_msec = 50;
+       router->register_suppress_time = PIM_REGISTER_SUPPRESSION_TIME_DEFAULT;
+       router->packet_process = PIM_DEFAULT_PACKET_PROCESS;
+       router->register_probe_time = PIM_REGISTER_PROBE_TIME_DEFAULT;
+       router->vrf_id = VRF_DEFAULT;
 }
 
 void pim_router_terminate(void)
@@ -108,29 +120,13 @@ void pim_init(void)
                return;
        }
 
-       /*
-         RFC 4601: 4.6.3.  Assert Metrics
-
-         assert_metric
-         infinite_assert_metric() {
-         return {1,infinity,infinity,0}
-         }
-       */
-       qpim_infinite_assert_metric.rpt_bit_flag = 1;
-       qpim_infinite_assert_metric.metric_preference =
-               PIM_ASSERT_METRIC_PREFERENCE_MAX;
-       qpim_infinite_assert_metric.route_metric = PIM_ASSERT_ROUTE_METRIC_MAX;
-       qpim_infinite_assert_metric.ip_address.s_addr = INADDR_ANY;
-
        pim_cmd_init();
 }
 
-void pim_terminate()
+void pim_terminate(void)
 {
        struct zclient *zclient;
 
-       pim_free();
-
        /* reverse prefix_list_init */
        prefix_list_add_hook(NULL);
        prefix_list_delete_hook(NULL);
@@ -144,6 +140,8 @@ void pim_terminate()
                zclient_free(zclient);
        }
 
+       pim_free();
        pim_router_terminate();
+
        frr_fini();
 }