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);
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);
}
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("<src?>", up->sg.src, src_str, sizeof(src_str));
- pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
- /* pius->address.s_addr */
- pim_inet4_dump("<rpf?>", 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)