diff options
| author | Sarita Patra <saritap@vmware.com> | 2020-03-16 13:41:46 -0700 |
|---|---|---|
| committer | Sarita Patra <saritap@vmware.com> | 2020-04-13 02:40:51 -0700 |
| commit | 34d86eff8efb5a25010ecae21d930e74896e2ab3 (patch) | |
| tree | 026d07a6f88b2c7032b494d28a4ac588e4ae2db6 | |
| parent | f61182b9317274f7b8b0fe9b20aeb10205d103be (diff) | |
pimd: added no ip msdp mesh-group <word>
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>
| -rw-r--r-- | doc/user/pim.rst | 5 | ||||
| -rw-r--r-- | pimd/pim_cmd.c | 24 | ||||
| -rw-r--r-- | pimd/pim_msdp.c | 4 |
3 files changed, 28 insertions, 5 deletions
diff --git a/doc/user/pim.rst b/doc/user/pim.rst index 36c8b44aa4..5688338431 100644 --- a/doc/user/pim.rst +++ b/doc/user/pim.rst @@ -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)] diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index abc1548967..b443cc9919 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -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); diff --git a/pimd/pim_msdp.c b/pimd/pim_msdp.c index 63d34e859c..52c989e644 100644 --- a/pimd/pim_msdp.c +++ b/pimd/pim_msdp.c @@ -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; } |
