pim6d: Adding ipv6 pim keep-alive-timer

Adding the below CLI for pim6d daemon:
ipv6 pim keep-alive-timer (1-65535)

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
This commit is contained in:
Mobashshera Rasool 2022-01-19 05:27:24 -08:00
parent 0da72f1f59
commit 28e32366e3
4 changed files with 68 additions and 31 deletions

View File

@ -139,6 +139,29 @@ DEFPY (no_ipv6_pim_packets,
return pim_process_no_pim_packet_cmd(vty);
}
DEFPY (ipv6_pim_keep_alive,
ipv6_pim_keep_alive_cmd,
"ipv6 pim keep-alive-timer (1-65535)$kat",
IPV6_STR
PIM_STR
"Keep alive Timer\n"
"Seconds\n")
{
return pim_process_keepalivetimer_cmd(vty, kat_str);
}
DEFPY (no_ipv6_pim_keep_alive,
no_ipv6_pim_keep_alive_cmd,
"no ipv6 pim keep-alive-timer [(1-65535)]",
NO_STR
IPV6_STR
PIM_STR
"Keep alive Timer\n"
IGNORED_IN_NO_STR)
{
return pim_process_no_keepalivetimer_cmd(vty);
}
void pim_cmd_init(void)
{
if_cmd_init(pim_interface_config_write);
@ -151,4 +174,6 @@ void pim_cmd_init(void)
install_element(CONFIG_NODE, &no_ipv6_pim_spt_switchover_infinity_plist_cmd);
install_element(CONFIG_NODE, &ipv6_pim_packets_cmd);
install_element(CONFIG_NODE, &no_ipv6_pim_packets_cmd);
install_element(CONFIG_NODE, &ipv6_pim_keep_alive_cmd);
install_element(CONFIG_NODE, &no_ipv6_pim_keep_alive_cmd);
}

View File

@ -6933,29 +6933,15 @@ DEFUN (no_ip_pim_rp_keep_alive,
return nb_cli_apply_changes(vty, NULL);
}
DEFUN (ip_pim_keep_alive,
DEFPY (ip_pim_keep_alive,
ip_pim_keep_alive_cmd,
"ip pim keep-alive-timer (1-65535)",
"ip pim keep-alive-timer (1-65535)$kat",
IP_STR
"pim multicast routing\n"
"Keep alive Timer\n"
"Seconds\n")
{
const char *vrfname;
char ka_timer_xpath[XPATH_MAXLEN];
vrfname = pim_cli_get_vrf_name(vty);
if (vrfname == NULL)
return CMD_WARNING_CONFIG_FAILED;
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_MODIFY,
argv[3]->arg);
return nb_cli_apply_changes(vty, NULL);
return pim_process_keepalivetimer_cmd(vty, kat_str);
}
DEFUN (no_ip_pim_keep_alive,
@ -6967,20 +6953,7 @@ DEFUN (no_ip_pim_keep_alive,
"Keep alive Timer\n"
IGNORED_IN_NO_STR)
{
const char *vrfname;
char ka_timer_xpath[XPATH_MAXLEN];
vrfname = pim_cli_get_vrf_name(vty);
if (vrfname == NULL)
return CMD_WARNING_CONFIG_FAILED;
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_DESTROY, NULL);
return nb_cli_apply_changes(vty, NULL);
return pim_process_no_keepalivetimer_cmd(vty);
}
DEFPY (ip_pim_packets,

View File

@ -205,3 +205,40 @@ int pim_process_no_pim_packet_cmd(struct vty *vty)
return nb_cli_apply_changes(vty, NULL);
}
int pim_process_keepalivetimer_cmd(struct vty *vty, const char *kat)
{
const char *vrfname;
char ka_timer_xpath[XPATH_MAXLEN];
vrfname = pim_cli_get_vrf_name(vty);
if (vrfname == NULL)
return CMD_WARNING_CONFIG_FAILED;
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
"frr-pim:pimd", "pim", vrfname, FRR_PIM_AF_XPATH_VAL);
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_MODIFY,
kat);
return nb_cli_apply_changes(vty, NULL);
}
int pim_process_no_keepalivetimer_cmd(struct vty *vty)
{
const char *vrfname;
char ka_timer_xpath[XPATH_MAXLEN];
vrfname = pim_cli_get_vrf_name(vty);
if (vrfname == NULL)
return CMD_WARNING_CONFIG_FAILED;
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
"frr-pim:pimd", "pim", vrfname, FRR_PIM_AF_XPATH_VAL);
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_DESTROY, NULL);
return nb_cli_apply_changes(vty, NULL);
}

View File

@ -29,5 +29,7 @@ int pim_process_spt_switchover_prefixlist_cmd(struct vty *vty,
int pim_process_no_spt_switchover_cmd(struct vty *vty);
int pim_process_pim_packet_cmd(struct vty *vty, const char *packet);
int pim_process_no_pim_packet_cmd(struct vty *vty);
int pim_process_keepalivetimer_cmd(struct vty *vty, const char *kat);
int pim_process_no_keepalivetimer_cmd(struct vty *vty);
#endif /* PIM_CMD_COMMON_H */