pimd: Move the infinite_assert_metric global to pim_router

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2018-12-20 11:18:14 -05:00
parent 5b45753eff
commit d17612dd6a
6 changed files with 22 additions and 20 deletions

View 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,

View 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 */

View 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;
}
/*

View 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;

View 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();
}

View 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;