From: Abhishek N R Date: Thu, 9 Jun 2022 10:51:41 +0000 (-0700) Subject: pim6d: Moving reusable code to common api for "show ip/ipv6 multicast" command X-Git-Tag: base_8.4~370^2~4 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=8e15c9aa064d92f290ace12d578274a3c575a98e;p=matthieu%2Ffrr.git pim6d: Moving reusable code to common api for "show ip/ipv6 multicast" command Signed-off-by: Abhishek N R --- diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index 0cdbb73c19..e9d90b104d 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -1329,24 +1329,7 @@ DEFPY (show_ipv6_multicast, "Multicast global information\n" VRF_CMD_HELP_STR) { - struct vrf *v; - struct pim_instance *pim; - - v = vrf_lookup_by_name(vrf ? vrf : VRF_DEFAULT_NAME); - - if (!v) - return CMD_WARNING; - - pim = pim_get_pim_instance(v->vrf_id); - - if (!pim) { - vty_out(vty, "%% Unable to find pim instance\n"); - return CMD_WARNING; - } - - pim_cmd_show_ip_multicast_helper(pim, vty); - - return CMD_SUCCESS; + return pim_show_multicast_helper(vrf, vty); } DEFPY (show_ipv6_multicast_vrf_all, @@ -1357,14 +1340,7 @@ DEFPY (show_ipv6_multicast_vrf_all, "Multicast global information\n" VRF_CMD_HELP_STR) { - struct vrf *vrf; - - RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) { - vty_out(vty, "VRF: %s\n", vrf->name); - pim_cmd_show_ip_multicast_helper(vrf->info, vty); - } - - return CMD_SUCCESS; + return pim_show_multicast_vrf_all_helper(vty); } DEFPY (show_ipv6_multicast_count, diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 6cd9e5fbd7..1766bd1fae 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -3317,24 +3317,7 @@ DEFPY (show_ip_multicast, "Multicast global information\n" VRF_CMD_HELP_STR) { - struct vrf *v; - struct pim_instance *pim; - - v = vrf_lookup_by_name(vrf ? vrf : VRF_DEFAULT_NAME); - - if (!v) - return CMD_WARNING; - - pim = pim_get_pim_instance(v->vrf_id); - - if (!pim) { - vty_out(vty, "%% Unable to find pim instance\n"); - return CMD_WARNING; - } - - pim_cmd_show_ip_multicast_helper(pim, vty); - - return CMD_SUCCESS; + return pim_show_multicast_helper(vrf, vty); } DEFPY (show_ip_multicast_vrf_all, @@ -3345,14 +3328,7 @@ DEFPY (show_ip_multicast_vrf_all, "Multicast global information\n" VRF_CMD_HELP_STR) { - struct vrf *vrf; - - RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) { - vty_out(vty, "VRF: %s\n", vrf->name); - pim_cmd_show_ip_multicast_helper(vrf->info, vty); - } - - return CMD_SUCCESS; + return pim_show_multicast_vrf_all_helper(vty); } DEFPY (show_ip_multicast_count, diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index a2a0891779..7a05118677 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -4081,3 +4081,37 @@ int pim_show_state_vrf_all_helper(struct vty *vty, const char *s_or_g_str, return CMD_SUCCESS; } + +int pim_show_multicast_helper(const char *vrf, struct vty *vty) +{ + struct vrf *v; + struct pim_instance *pim; + + v = vrf_lookup_by_name(vrf ? vrf : VRF_DEFAULT_NAME); + + if (!v) + return CMD_WARNING; + + pim = pim_get_pim_instance(v->vrf_id); + + if (!pim) { + vty_out(vty, "%% Unable to find pim instance\n"); + return CMD_WARNING; + } + + pim_cmd_show_ip_multicast_helper(pim, vty); + + return CMD_SUCCESS; +} + +int pim_show_multicast_vrf_all_helper(struct vty *vty) +{ + struct vrf *vrf; + + RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) { + vty_out(vty, "VRF: %s\n", vrf->name); + pim_cmd_show_ip_multicast_helper(vrf->info, vty); + } + + return CMD_SUCCESS; +} diff --git a/pimd/pim_cmd_common.h b/pimd/pim_cmd_common.h index 981e6dc88f..ceba2f2b41 100644 --- a/pimd/pim_cmd_common.h +++ b/pimd/pim_cmd_common.h @@ -150,6 +150,8 @@ int pim_show_state_helper(const char *vrf, struct vty *vty, const char *s_or_g_str, const char *g_str, bool json); int pim_show_state_vrf_all_helper(struct vty *vty, const char *s_or_g_str, const char *g_str, bool json); +int pim_show_multicast_helper(const char *vrf, struct vty *vty); +int pim_show_multicast_vrf_all_helper(struct vty *vty); /* * Special Macro to allow us to get the correct pim_instance;