From: Sai Gomathi N Date: Wed, 2 Mar 2022 05:13:01 +0000 (-0800) Subject: pim6d: Adding "show ipv6 pim jp-agg" command X-Git-Tag: pim6-testing-20220430~106^2~3 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=be2232396a046292c28b624899609379f720b785;p=matthieu%2Ffrr.git pim6d: Adding "show ipv6 pim jp-agg" command Adding new show CLI to display pim join prune aggregate information. Signed-off-by: Sai Gomathi N --- diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index 8c9b0329b6..636999c4b7 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -1253,6 +1253,36 @@ DEFPY (show_ipv6_pim_join_vrf_all, return CMD_WARNING; } +DEFPY (show_ipv6_pim_jp_agg, + show_ipv6_pim_jp_agg_cmd, + "show ipv6 pim [vrf NAME] jp-agg", + SHOW_STR + IPV6_STR + PIM_STR + VRF_CMD_HELP_STR + "join prune aggregation list\n") +{ + struct vrf *v; + struct pim_instance *pim; + + v = vrf_lookup_by_name(vrf ? vrf : VRF_DEFAULT_NAME); + + if (!v) { + vty_out(vty, "%% Vrf specified: %s does not exist\n", vrf); + 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_show_jp_agg_list(pim, vty); + + return CMD_SUCCESS; +} + void pim_cmd_init(void) { if_cmd_init(pim_interface_config_write); @@ -1322,4 +1352,5 @@ void pim_cmd_init(void) install_element(VIEW_NODE, &show_ipv6_pim_interface_vrf_all_cmd); install_element(VIEW_NODE, &show_ipv6_pim_join_cmd); install_element(VIEW_NODE, &show_ipv6_pim_join_vrf_all_cmd); + install_element(VIEW_NODE, &show_ipv6_pim_jp_agg_cmd); } diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index 4a92050d5d..b859e4a472 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -1684,17 +1684,9 @@ static void pim_show_jp_agg_helper(struct vty *vty, struct interface *ifp, struct pim_neighbor *neigh, struct pim_upstream *up, int is_join) { - char src_str[INET_ADDRSTRLEN]; - char grp_str[INET_ADDRSTRLEN]; - char rpf_str[INET_ADDRSTRLEN]; - - pim_inet4_dump("", up->sg.src, src_str, sizeof(src_str)); - pim_inet4_dump("", up->sg.grp, grp_str, sizeof(grp_str)); - /* pius->address.s_addr */ - pim_inet4_dump("", neigh->source_addr, rpf_str, sizeof(rpf_str)); - - vty_out(vty, "%-16s %-15s %-15s %-15s %5s\n", ifp->name, rpf_str, - src_str, grp_str, is_join ? "J" : "P"); + vty_out(vty, "%-16s %-15pPAs %-15pPAs %-15pPAs %5s\n", ifp->name, + &neigh->source_addr, &up->sg.src, &up->sg.grp, + is_join ? "J" : "P"); } void pim_show_jp_agg_list(struct pim_instance *pim, struct vty *vty)