forked from Mirror/frr
pimd: Move the infinite_assert_metric global to pim_router
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
5b45753eff
commit
d17612dd6a
|
@ -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,
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
30
pimd/pimd.c
30
pimd/pimd.c
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue