]> git.proxmox.com Git - mirror_frr.git/commitdiff
pimd: Move the infinite_assert_metric global to pim_router
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 20 Dec 2018 16:18:14 +0000 (11:18 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 4 Jan 2019 17:23:39 +0000 (12:23 -0500)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_ifchannel.c
pimd/pim_instance.h
pimd/pim_macro.c
pimd/pim_upstream.c
pimd/pimd.c
pimd/pimd.h

index a96404c8dba4f02746f944ae9b9ea308bd4de196..14ce8d7d9f63d9f2da391becf76dd17acae622ba 100644 (file)
@@ -415,7 +415,7 @@ void reset_ifassert_state(struct pim_ifchannel *ch)
        THREAD_OFF(ch->t_ifassert_timer);
 
        pim_ifassert_winner_set(ch, PIM_IFASSERT_NOINFO, any,
-                               qpim_infinite_assert_metric);
+                               router->infinite_assert_metric);
 }
 
 struct pim_ifchannel *pim_ifchannel_find(struct interface *ifp,
index ed8ecdcaa727675d29982b32a67d4dee30a1a1e3..9f36b9c3041625519707998b4324f1526f0c0313 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "pim_str.h"
 #include "pim_msdp.h"
+#include "pim_assert.h"
 
 #if defined(HAVE_LINUX_MROUTE_H)
 #include <linux/mroute.h>
@@ -35,6 +36,7 @@
 #define MAXVIFS (256)
 #endif
 #endif
+
 extern struct pim_instance *pimg; // Pim Global Instance
 
 enum pim_spt_switchover {
@@ -48,6 +50,7 @@ struct pim_router {
        uint32_t debugs;
 
        int t_periodic;
+       struct pim_assert_metric infinite_assert_metric;
 };
 
 /* Per VRF PIM DB */
index 13f4240dbae8b88920af85a223f872f61884c11e..908026ab1419b2d7f27a2a77937a499d9c546ade 100644 (file)
@@ -295,7 +295,7 @@ pim_macro_ch_my_assert_metric_eval(const struct pim_ifchannel *ch)
                }
        }
 
-       return qpim_infinite_assert_metric;
+       return router->infinite_assert_metric;
 }
 
 /*
index 8cb6c0c17486f1ade0bc25acba81d3743bb6cbc2..c6ab8f5a2af117a1f65fc012921f0b20cb041e4b 100644 (file)
@@ -647,9 +647,9 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim,
        up->rpf.source_nexthop.mrib_nexthop_addr.u.prefix4.s_addr =
                PIM_NET_INADDR_ANY;
        up->rpf.source_nexthop.mrib_metric_preference =
-               qpim_infinite_assert_metric.metric_preference;
+               router->infinite_assert_metric.metric_preference;
        up->rpf.source_nexthop.mrib_route_metric =
-               qpim_infinite_assert_metric.route_metric;
+               router->infinite_assert_metric.route_metric;
        up->rpf.rpf_addr.family = AF_INET;
        up->rpf.rpf_addr.u.prefix4.s_addr = PIM_NET_INADDR_ANY;
 
index 33aac5a264409c5400d2753d0ae963df34b3cb71..2a37477fb9d81dd80a4a46a3df50c4af3be8bfdf 100644 (file)
@@ -51,7 +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;
@@ -89,6 +88,21 @@ 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;
 }
 
 void pim_router_terminate(void)
@@ -108,20 +122,6 @@ 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();
 }
 
index 84d3b4021a34f1789539bfdc3d8518d8b0c006ba..2c13b5613d1344e7d487700b1d5863c1963977a4 100644 (file)
@@ -135,7 +135,6 @@ const char *const PIM_ALL_IGMP_ROUTERS;
 extern struct pim_router *router;
 extern struct zebra_privs_t pimd_privs;
 struct in_addr qpim_all_pim_routers_addr;
-struct pim_assert_metric qpim_infinite_assert_metric;
 long qpim_rpf_cache_refresh_delay_msec;
 extern int qpim_packet_process;
 extern uint8_t qpim_ecmp_enable;