diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-06-21 19:44:20 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-07-24 13:51:40 -0400 |
| commit | b283a4ca38128b40af8f5aac3013dba2553cd608 (patch) | |
| tree | b06c12ec01feb629f686de90b72647a282dbf47a /pimd/pim_cmd.c | |
| parent | 0885a9f1f4352996d95766b69fc29e464adee01c (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.c | 33 |
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); |
