]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: added no ip msdp mesh-group <word>
authorSarita Patra <saritap@vmware.com>
Mon, 16 Mar 2020 20:41:46 +0000 (13:41 -0700)
committerSarita Patra <saritap@vmware.com>
Mon, 13 Apr 2020 09:40:51 +0000 (02:40 -0700)
Issue: no ip msdp mesh-group <word> source command
deleting the mesh group, which might be used by the member.

Solution: no ip msdp mesh-group <word> source command, deletes
the mesh-group source.
Add a new cli command "no ip msdp mesh-group <word>" to delete
the mesh group.

Signed-off-by: Sarita Patra <saritap@vmware.com>
doc/user/pim.rst
pimd/pim_cmd.c
pimd/pim_msdp.c

index 36c8b44aa4d6917ff1244a1e09aa3c51800706e1..56883384310ce2bbef2e7443f653fef33eb3b508 100644 (file)
@@ -158,6 +158,11 @@ Certain signals have special meanings to *pimd*.
    urib-only
       Lookup in the Unicast Rib only.
 
+.. index:: no ip msdp mesh-group [WORD]
+.. clicmd:: no ip msdp mesh-group [WORD]
+
+   Delete multicast source discovery protocol mesh-group
+
 .. index:: ip igmp generate-query-once [version (2-3)]
 .. clicmd:: ip igmp generate-query-once [version (2-3)]
 
index abc154896731b8375790144ae1eb99b0ab219821..b443cc9919a0d8d978f7a2c39e52bf1d0f993c01 100644 (file)
@@ -9634,11 +9634,25 @@ DEFUN (no_ip_msdp_mesh_group_source,
        "mesh group local address\n")
 {
        PIM_DECLVAR_CONTEXT(vrf, pim);
-       if (argc == 7)
-               return ip_no_msdp_mesh_group_cmd_worker(pim, vty, argv[6]->arg);
+
+       return ip_no_msdp_mesh_group_source_cmd_worker(pim, vty, argv[4]->arg);
+}
+
+DEFUN (no_ip_msdp_mesh_group,
+       no_ip_msdp_mesh_group_cmd,
+       "no ip msdp mesh-group [WORD]",
+       NO_STR
+       IP_STR
+       CFG_MSDP_STR
+       "Delete MSDP mesh-group\n"
+       "mesh group name")
+{
+       PIM_DECLVAR_CONTEXT(vrf, pim);
+
+       if (argc == 5)
+               return ip_no_msdp_mesh_group_cmd_worker(pim, vty, argv[4]->arg);
        else
-               return ip_no_msdp_mesh_group_source_cmd_worker(pim, vty,
-                                                              argv[4]->arg);
+               return ip_no_msdp_mesh_group_cmd_worker(pim, vty, NULL);
 }
 
 static void print_empty_json_obj(struct vty *vty)
@@ -11024,6 +11038,8 @@ void pim_cmd_init(void)
        install_element(VRF_NODE, &ip_msdp_mesh_group_source_cmd);
        install_element(CONFIG_NODE, &no_ip_msdp_mesh_group_source_cmd);
        install_element(VRF_NODE, &no_ip_msdp_mesh_group_source_cmd);
+       install_element(CONFIG_NODE, &no_ip_msdp_mesh_group_cmd);
+       install_element(VRF_NODE, &no_ip_msdp_mesh_group_cmd);
        install_element(VIEW_NODE, &show_ip_msdp_peer_detail_cmd);
        install_element(VIEW_NODE, &show_ip_msdp_peer_detail_vrf_all_cmd);
        install_element(VIEW_NODE, &show_ip_msdp_sa_detail_cmd);
index 63d34e859caa2ab0b291c1c158a29c73177d53e7..52c989e644822558d0bdae0564aee6dac60956ad 100644 (file)
@@ -1286,7 +1286,9 @@ enum pim_msdp_err pim_msdp_mg_del(struct pim_instance *pim,
        struct pim_msdp_mg *mg = pim->msdp.mg;
        struct pim_msdp_mg_mbr *mbr;
 
-       if (!mg || strcmp(mg->mesh_group_name, mesh_group_name)) {
+       if (!mg
+           || (mesh_group_name
+               && strcmp(mg->mesh_group_name, mesh_group_name))) {
                return PIM_MSDP_ERR_NO_MG;
        }