summaryrefslogtreecommitdiff
path: root/pimd/pim_cmd.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-06-21 19:44:20 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2017-07-24 13:51:40 -0400
commitb283a4ca38128b40af8f5aac3013dba2553cd608 (patch)
treeb06c12ec01feb629f686de90b72647a282dbf47a /pimd/pim_cmd.c
parent0885a9f1f4352996d95766b69fc29e464adee01c (diff)
pimd: Add 'show ip mroute vrf all [json]' command
Add the ability to dump all the vrf's associated with pim. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_cmd.c')
-rw-r--r--pimd/pim_cmd.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index 9c792c2a43..a3f57e33c4 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -4322,6 +4322,38 @@ DEFUN (show_ip_mroute,
return CMD_SUCCESS;
}
+DEFUN (show_ip_mroute_vrf_all,
+ show_ip_mroute_vrf_all_cmd,
+ "show ip mroute vrf all [json]",
+ SHOW_STR
+ IP_STR
+ MROUTE_STR
+ VRF_CMD_HELP_STR
+ JSON_STR)
+{
+ u_char uj = use_json(argc, argv);
+ struct vrf *vrf;
+ bool first = true;
+
+ if (uj)
+ vty_out(vty, "{ ");
+ RB_FOREACH(vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if (uj) {
+ if (!first)
+ vty_out(vty, ", ");
+ vty_out(vty, " \"%s\": ", vrf->name);
+ first = false;
+ } else
+ vty_out(vty, "VRF: %s\n", vrf->name);
+ show_mroute(vty, vrf->info, uj);
+ }
+ if (uj)
+ vty_out(vty, "}");
+
+ return CMD_SUCCESS;
+}
+
static void show_mroute_count(struct vty *vty, struct pim_instance *pim)
{
struct listnode *node;
@@ -7803,6 +7835,7 @@ void pim_cmd_init(void)
install_element(VIEW_NODE, &show_ip_pim_rp_cmd);
install_element(VIEW_NODE, &show_ip_multicast_cmd);
install_element(VIEW_NODE, &show_ip_mroute_cmd);
+ install_element(VIEW_NODE, &show_ip_mroute_vrf_all_cmd);
install_element(VIEW_NODE, &show_ip_mroute_count_cmd);
install_element(VIEW_NODE, &show_ip_rib_cmd);
install_element(VIEW_NODE, &show_ip_ssmpingd_cmd);