return CMD_SUCCESS;
}
+DEFUN (ip_pim_keep_alive,
+ ip_pim_keep_alive_cmd,
+ "ip pim keep-alive-timer <31-600>",
+ IP_STR
+ "pim multicast routing\n"
+ "Keep alive Timer"
+ "Seconds")
+{
+ qpim_keep_alive_time = atoi (argv[3]->arg);
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_ip_pim_keep_alive,
+ no_ip_pim_keep_alive_cmd,
+ "no ip pim keep-alive-timer <31-600>",
+ NO_STR
+ IP_STR
+ "pim multicast routing\n"
+ "Keep alive Timer"
+ "Seconds")
+{
+ qpim_keep_alive_time = PIM_KEEPALIVE_PERIOD;
+ return CMD_SUCCESS;
+}
+
DEFUN (ip_pim_rp,
ip_pim_rp_cmd,
"ip pim rp A.B.C.D [A.B.C.D/M]",
install_element (CONFIG_NODE, &no_ip_multicast_routing_cmd);
install_element (CONFIG_NODE, &ip_pim_rp_cmd);
install_element (CONFIG_NODE, &no_ip_pim_rp_cmd);
+ install_element (CONFIG_NODE, &ip_pim_keep_alive_cmd);
+ install_element (CONFIG_NODE, &no_ip_pim_keep_alive_cmd);
install_element (CONFIG_NODE, &ip_ssmpingd_cmd);
install_element (CONFIG_NODE, &no_ip_ssmpingd_cmd);
return 0;
}
- pim_upstream_keep_alive_timer_start (up, PIM_KEEPALIVE_PERIOD);
+ pim_upstream_keep_alive_timer_start (up, qpim_keep_alive_time);
up->channel_oil = pim_channel_oil_add(&sg,
pim_ifp->mroute_vif_index);
up->fhr = 1;
pim_ifp = ifp->info;
- pim_upstream_keep_alive_timer_start (up, PIM_KEEPALIVE_PERIOD);
+ pim_upstream_keep_alive_timer_start (up, qpim_keep_alive_time);
up->channel_oil = pim_channel_oil_add (&sg, pim_ifp->mroute_vif_index);
up->channel_oil->cc.pktcnt++;
pim_channel_add_oif (up->channel_oil, pim_regiface, PIM_OIF_FLAG_PROTO_PIM);
if (sentRegisterStop) {
pim_upstream_keep_alive_timer_start (upstream, PIM_RP_KEEPALIVE_PERIOD);
} else {
- pim_upstream_keep_alive_timer_start (upstream, PIM_KEEPALIVE_PERIOD);
+ pim_upstream_keep_alive_timer_start (upstream, qpim_keep_alive_time);
}
}
else
{
up->t_ka_timer = NULL;
- pim_upstream_keep_alive_timer_start (up, PIM_KEEPALIVE_PERIOD);
+ pim_upstream_keep_alive_timer_start (up, qpim_keep_alive_time);
}
return 1;
writes += pim_rp_config_write (vty);
+ if (qpim_keep_alive_time != PIM_KEEPALIVE_PERIOD)
+ {
+ vty_out (vty, "ip pim keep-alive-timer %d%s",
+ qpim_keep_alive_time, VTY_NEWLINE);
+ ++writes;
+ }
if (qpim_ssmpingd_list) {
struct listnode *node;
struct ssmpingd_sock *ss;
int64_t qpim_mroute_del_events = 0;
int64_t qpim_mroute_del_last = 0;
struct list *qpim_static_route_list = NULL;
+unsigned int qpim_keep_alive_time = PIM_KEEPALIVE_PERIOD;
int32_t qpim_register_suppress_time = PIM_REGISTER_SUPPRESSION_TIME_DEFAULT;
int32_t qpim_register_probe_time = PIM_REGISTER_PROBE_TIME_DEFAULT;
int64_t qpim_mroute_del_events;
int64_t qpim_mroute_del_last;
struct list *qpim_static_route_list; /* list of routes added statically */
+extern unsigned int qpim_keep_alive_time;
#define PIM_JP_HOLDTIME (qpim_t_periodic * 7 / 2)