From: Mobashshera Rasool Date: Wed, 19 Jan 2022 13:27:24 +0000 (-0800) Subject: pim6d: Adding ipv6 pim keep-alive-timer X-Git-Tag: pim6-testing-20220430~290^2~2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=28e32366e3b0e3365f98f705c95e8b22075e537e;p=mirror%2Ffrr.git 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 --- diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index c87e92a91f..5ec8a93a05 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -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); } diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index a20fcaeef7..b5ebdb30a1 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -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, diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index c3385db0c2..efa799d3a6 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -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); +} diff --git a/pimd/pim_cmd_common.h b/pimd/pim_cmd_common.h index 0905a89d8a..6a84632da8 100644 --- a/pimd/pim_cmd_common.h +++ b/pimd/pim_cmd_common.h @@ -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 */