]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: Add [no] ipv6 pim unicast-bsm" command
authorSarita Patra <saritap@vmware.com>
Tue, 12 Jul 2022 10:49:48 +0000 (03:49 -0700)
committerSarita Patra <saritap@vmware.com>
Thu, 20 Oct 2022 08:07:46 +0000 (01:07 -0700)
Introduced common api pim_process_unicast_bsm_cmd,
pim_process_no_unicast_bsm_cmd which will process
both "[no] ip pim unicast-bsm" command and "[no] ipv6 pim
unicast-bsm" command.

Signed-off-by: Sarita Patra <saritap@vmware.com>
pimd/pim6_cmd.c
pimd/pim_cmd.c
pimd/pim_cmd_common.c
pimd/pim_cmd_common.h

index e7c20c1f37adab487d066bfcf0a483cdccd0263f..a2a7e7c01e5729ecdc18995ce83c8fdd60c29dc9 100644 (file)
@@ -497,6 +497,27 @@ DEFPY (no_ipv6_pim_bsm,
        return pim_process_no_bsm_cmd(vty);
 }
 
+DEFPY (ipv6_pim_ucast_bsm,
+       ipv6_pim_ucast_bsm_cmd,
+       "ipv6 pim unicast-bsm",
+       IPV6_STR
+       PIM_STR
+       "Accept/Send unicast BSM on the interface\n")
+{
+       return pim_process_unicast_bsm_cmd(vty);
+}
+
+DEFPY (no_ipv6_pim_ucast_bsm,
+       no_ipv6_pim_ucast_bsm_cmd,
+       "no ipv6 pim unicast-bsm",
+       NO_STR
+       IPV6_STR
+       PIM_STR
+       "Accept/Send unicast BSM on the interface\n")
+{
+       return pim_process_no_unicast_bsm_cmd(vty);
+}
+
 DEFPY (ipv6_ssmpingd,
       ipv6_ssmpingd_cmd,
       "ipv6 ssmpingd [X:X::X:X]$source",
@@ -1708,6 +1729,8 @@ void pim_cmd_init(void)
        /* Install BSM command */
        install_element(INTERFACE_NODE, &ipv6_pim_bsm_cmd);
        install_element(INTERFACE_NODE, &no_ipv6_pim_bsm_cmd);
+       install_element(INTERFACE_NODE, &ipv6_pim_ucast_bsm_cmd);
+       install_element(INTERFACE_NODE, &no_ipv6_pim_ucast_bsm_cmd);
        install_element(CONFIG_NODE, &ipv6_pim_rp_cmd);
        install_element(VRF_NODE, &ipv6_pim_rp_cmd);
        install_element(CONFIG_NODE, &no_ipv6_pim_rp_cmd);
index c5c098774c503990e2a6b418d1637216be0769c7..c6f2e8dbde093ac5fd13502599a181caf2a350f9 100644 (file)
@@ -5014,7 +5014,6 @@ DEFUN (ip_pim_bsm,
 {
        return pim_process_bsm_cmd(vty);
 }
-
 DEFUN (no_ip_pim_bsm,
        no_ip_pim_bsm_cmd,
        "no ip pim bsm",
@@ -5033,26 +5032,7 @@ DEFUN (ip_pim_ucast_bsm,
        PIM_STR
        "Accept/Send unicast BSM on the interface\n")
 {
-       const struct lyd_node *igmp_enable_dnode;
-
-       igmp_enable_dnode =
-               yang_dnode_getf(vty->candidate_config->dnode,
-                               FRR_GMP_ENABLE_XPATH, VTY_CURR_XPATH,
-                               "frr-routing:ipv4");
-       if (!igmp_enable_dnode)
-               nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY,
-                                     "true");
-       else {
-               if (!yang_dnode_get_bool(igmp_enable_dnode, "."))
-                       nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY,
-                                             "true");
-       }
-
-       nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "true");
-
-       return nb_cli_apply_changes(vty,
-                       FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
-
+       return pim_process_unicast_bsm_cmd(vty);
 }
 
 DEFUN (no_ip_pim_ucast_bsm,
@@ -5061,12 +5041,9 @@ DEFUN (no_ip_pim_ucast_bsm,
        NO_STR
        IP_STR
        PIM_STR
-       "Block send/receive unicast BSM on this interface\n")
+       "Accept/Send unicast BSM on the interface\n")
 {
-       nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "false");
-
-       return nb_cli_apply_changes(vty,
-                       FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
+       return pim_process_no_unicast_bsm_cmd(vty);
 }
 
 #if HAVE_BFDD > 0
index 6fa4d8eddbbd4b33fee75ff8c4f3a26ac9e7308e..4b17d0bafd71090a4a8ee28cdbec1a6b8ab01e33 100644 (file)
@@ -3446,6 +3446,36 @@ int pim_process_no_bsm_cmd(struct vty *vty)
                                    FRR_PIM_AF_XPATH_VAL);
 }
 
+int pim_process_unicast_bsm_cmd(struct vty *vty)
+{
+       const struct lyd_node *gm_enable_dnode;
+
+       gm_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode,
+                                         FRR_GMP_ENABLE_XPATH, VTY_CURR_XPATH,
+                                         FRR_PIM_AF_XPATH_VAL);
+       if (!gm_enable_dnode)
+               nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY,
+                                     "true");
+       else {
+               if (!yang_dnode_get_bool(gm_enable_dnode, "."))
+                       nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY,
+                                             "true");
+       }
+
+       nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "true");
+
+       return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH,
+                                   FRR_PIM_AF_XPATH_VAL);
+}
+
+int pim_process_no_unicast_bsm_cmd(struct vty *vty)
+{
+       nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "false");
+
+       return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH,
+                                   FRR_PIM_AF_XPATH_VAL);
+}
+
 static void show_scan_oil_stats(struct pim_instance *pim, struct vty *vty,
                                time_t now)
 {
index f2ce292f03744669ce39f6a5bb299bc4b4adcfe5..6a72664a5560709146d737b8eee525ec4156979e 100644 (file)
@@ -64,6 +64,8 @@ int pim_process_no_ip_mroute_cmd(struct vty *vty, const char *interface,
                                 const char *group_str, const char *src_str);
 int pim_process_bsm_cmd(struct vty *vty);
 int pim_process_no_bsm_cmd(struct vty *vty);
+int pim_process_unicast_bsm_cmd(struct vty *vty);
+int pim_process_no_unicast_bsm_cmd(struct vty *vty);
 void json_object_pim_upstream_add(json_object *json, struct pim_upstream *up);
 void pim_show_rpf(struct pim_instance *pim, struct vty *vty, json_object *json);
 void pim_show_neighbors_secondary(struct pim_instance *pim, struct vty *vty);