Allow the keepalive period to be per vrf.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
"Seconds\n")
{
PIM_DECLVAR_CONTEXT(vrf, pim);
- qpim_keep_alive_time = atoi(argv[3]->arg);
+ pim->keep_alive_time = atoi(argv[3]->arg);
return CMD_SUCCESS;
}
"Seconds\n")
{
PIM_DECLVAR_CONTEXT(vrf, pim);
- qpim_keep_alive_time = PIM_KEEPALIVE_PERIOD;
+ pim->keep_alive_time = PIM_KEEPALIVE_PERIOD;
return CMD_SUCCESS;
}
PIM_UPSTREAM_FLAG_MASK_SRC_LHR,
__PRETTY_FUNCTION__);
pim_upstream_keep_alive_timer_start(
- ch->upstream, qpim_keep_alive_time);
+ ch->upstream, pim_ifp->pim->keep_alive_time);
}
break;
case PIM_IFJOIN_JOIN:
pim_if_init(pim);
+ pim->keep_alive_time = PIM_KEEPALIVE_PERIOD;
+ pim->rp_keep_alive_time = PIM_RP_KEEPALIVE_PERIOD;
+
+
pim->vrf_id = vrf->vrf_id;
pim->vrf = vrf;
struct list *ssmpingd_list;
struct in_addr ssmpingd_group_addr;
+
+ unsigned int keep_alive_time;
+ unsigned int rp_keep_alive_time;
};
void pim_vrf_init(void);
}
PIM_UPSTREAM_FLAG_SET_SRC_STREAM(up->flags);
- pim_upstream_keep_alive_timer_start(up, qpim_keep_alive_time);
+ pim_upstream_keep_alive_timer_start(up, pim_ifp->pim->keep_alive_time);
up->channel_oil->cc.pktcnt++;
PIM_UPSTREAM_FLAG_SET_FHR(up->flags);
return 0;
}
pim_upstream_keep_alive_timer_start(
- up, qpim_keep_alive_time);
+ up, pim_ifp->pim->keep_alive_time);
pim_upstream_inherited_olist(pim_ifp->pim, up);
pim_upstream_switch(pim_ifp->pim, up,
PIM_UPSTREAM_JOINED);
up->sptbit = PIM_UPSTREAM_SPTBIT_TRUE;
}
pim_upstream_keep_alive_timer_start(
- up, qpim_keep_alive_time);
+ up, pim_ifp->pim->keep_alive_time);
pim_upstream_inherited_olist(pim_ifp->pim, up);
pim_mroute_msg_wholepkt(fd, ifp, buf);
}
return -2;
}
PIM_UPSTREAM_FLAG_SET_SRC_STREAM(up->flags);
- pim_upstream_keep_alive_timer_start(up, qpim_keep_alive_time);
+ pim_upstream_keep_alive_timer_start(up, pim_ifp->pim->keep_alive_time);
up->channel_oil = oil;
up->channel_oil->cc.pktcnt++;
pim_register_join(up);
c_oil->cc.oldwrong_if = c_oil->cc.wrong_if;
if (!c_oil->installed) {
- c_oil->cc.lastused = 100 * qpim_keep_alive_time;
+ c_oil->cc.lastused = 100 * pim->keep_alive_time;
if (PIM_DEBUG_MROUTE) {
struct prefix_sg sg;
|| (SwitchToSptDesired(pim_ifp->pim, &sg))) {
if (sentRegisterStop) {
pim_upstream_keep_alive_timer_start(
- upstream, qpim_rp_keep_alive_time);
+ upstream, pim_ifp->pim->rp_keep_alive_time);
} else {
pim_upstream_keep_alive_timer_start(
- upstream, qpim_keep_alive_time);
+ upstream, pim_ifp->pim->keep_alive_time);
}
}
&& PIM_UPSTREAM_FLAG_TEST_SRC_STREAM(
up->flags)) {
pim_upstream_keep_alive_timer_start(
- up, qpim_keep_alive_time);
+ up, pim->keep_alive_time);
pim_register_join(up);
}
} else {
PIM_UPSTREAM_FLAG_SET_SRC_STREAM(up->flags);
pim_upstream_fhr_kat_start(up);
}
- pim_upstream_keep_alive_timer_start(up, qpim_keep_alive_time);
+ pim_upstream_keep_alive_timer_start(up, pim->keep_alive_time);
} else if (PIM_UPSTREAM_FLAG_TEST_SRC_LHR(up->flags))
- pim_upstream_keep_alive_timer_start(up, qpim_keep_alive_time);
+ pim_upstream_keep_alive_timer_start(up, pim->keep_alive_time);
if (up->sptbit != PIM_UPSTREAM_SPTBIT_TRUE) {
pim_upstream_set_sptbit(up, up->rpf.source_nexthop.interface);
qpim_t_periodic);
++writes;
}
- if (qpim_keep_alive_time != PIM_KEEPALIVE_PERIOD) {
+ if (pim->keep_alive_time != PIM_KEEPALIVE_PERIOD) {
vty_out(vty, "%sip pim keep-alive-timer %d\n", spaces,
- qpim_keep_alive_time);
+ pim->keep_alive_time);
++writes;
}
if (qpim_packet_process != PIM_DEFAULT_PACKET_PROCESS) {
int64_t qpim_rpf_cache_refresh_last = 0;
int64_t qpim_scan_oil_events = 0;
int64_t qpim_scan_oil_last = 0;
-unsigned int qpim_keep_alive_time = PIM_KEEPALIVE_PERIOD;
-signed int qpim_rp_keep_alive_time = 0;
int64_t qpim_nexthop_lookups = 0;
int qpim_packet_process = PIM_DEFAULT_PACKET_PROCESS;
uint8_t qpim_ecmp_enable = 0;
void pim_init()
{
- qpim_rp_keep_alive_time = PIM_RP_KEEPALIVE_PERIOD;
-
if (!inet_aton(PIM_ALL_PIM_ROUTERS, &qpim_all_pim_routers_addr)) {
zlog_err(
"%s %s: could not solve %s to group address: errno=%d: %s",
int64_t qpim_scan_oil_events;
int64_t qpim_scan_oil_last;
int64_t qpim_nexthop_lookups;
-extern unsigned int qpim_keep_alive_time;
-extern signed int qpim_rp_keep_alive_time;
extern int qpim_packet_process;
extern uint8_t qpim_ecmp_enable;
extern uint8_t qpim_ecmp_rebalance_enable;