]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pim6d: Adding ipv6 pim keep-alive-timer
authorMobashshera Rasool <mrasool@vmware.com>
Wed, 19 Jan 2022 13:27:24 +0000 (05:27 -0800)
committerMobashshera Rasool <mrasool@vmware.com>
Mon, 28 Feb 2022 09:38:41 +0000 (01:38 -0800)
Adding the below CLI for pim6d daemon:
ipv6 pim keep-alive-timer (1-65535)

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
pimd/pim6_cmd.c
pimd/pim_cmd.c
pimd/pim_cmd_common.c
pimd/pim_cmd_common.h

index c87e92a91f8274871bbd82a07fb3f2e837db1645..5ec8a93a05a220ef49d36488c0ecf3a1ea652efe 100644 (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);
 }
index a20fcaeef72042ed98aca7b11ea352e2cf913586..b5ebdb30a16541fa1fecde98a57be91c79e99732 100644 (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,
index c3385db0c26671f78284b5fba2d855a8e12dcc1e..efa799d3a6ccd56e34309479f277eda7f929e5f2 100644 (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);
+}
index 0905a89d8ab67915453d05646100a2ad6462a116..6a84632da884a0a261c0da386a51d0966a1ddb22 100644 (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 */