Adding new show CLI to display pim secondary addresses.
Signed-off-by: Abhishek N R <abnr@vmware.com>
return CMD_SUCCESS;
}
+DEFPY (show_ipv6_pim_secondary,
+ show_ipv6_pim_secondary_cmd,
+ "show ipv6 pim [vrf NAME] secondary",
+ SHOW_STR
+ IPV6_STR
+ PIM_STR
+ VRF_CMD_HELP_STR
+ "PIM neighbor addresses\n")
+{
+ struct pim_instance *pim;
+ struct vrf *v;
+
+ 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_show_neighbors_secondary(pim, vty);
+
+ return CMD_SUCCESS;
+}
+
void pim_cmd_init(void)
{
if_cmd_init(pim_interface_config_write);
install_element(VIEW_NODE, &show_ipv6_pim_rp_vrf_all_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_rpf_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_rpf_vrf_all_cmd);
+ install_element(VIEW_NODE, &show_ipv6_pim_secondary_cmd);
}
return CMD_SUCCESS;
}
-DEFUN (show_ip_pim_secondary,
+DEFPY (show_ip_pim_secondary,
show_ip_pim_secondary_cmd,
"show ip pim [vrf NAME] secondary",
SHOW_STR
VRF_CMD_HELP_STR
"PIM neighbor addresses\n")
{
- int idx = 2;
- struct vrf *vrf = pim_cmd_lookup_vrf(vty, argv, argc, &idx);
+ struct pim_instance *pim;
+ struct vrf *v;
- if (!vrf)
+ v = vrf_lookup_by_name(vrf ? vrf : VRF_DEFAULT_NAME);
+
+ if (!v)
return CMD_WARNING;
- pim_show_neighbors_secondary(vrf->info, vty);
+ pim = pim_get_pim_instance(v->vrf_id);
+
+ if (!pim) {
+ vty_out(vty, "%% Unable to find pim instance\n");
+ return CMD_WARNING;
+ }
+
+ pim_show_neighbors_secondary(pim, vty);
return CMD_SUCCESS;
}
FOR_ALL_INTERFACES (pim->vrf, ifp) {
struct pim_interface *pim_ifp;
- struct in_addr ifaddr;
+ pim_addr ifaddr;
struct listnode *neighnode;
struct pim_neighbor *neigh;
- char buf[PREFIX_STRLEN];
pim_ifp = ifp->info;
for (ALL_LIST_ELEMENTS_RO(pim_ifp->pim_neighbor_list, neighnode,
neigh)) {
- char neigh_src_str[INET_ADDRSTRLEN];
struct listnode *prefix_node;
struct prefix *p;
if (!neigh->prefix_list)
continue;
- pim_inet4_dump("<src?>", neigh->source_addr,
- neigh_src_str, sizeof(neigh_src_str));
-
for (ALL_LIST_ELEMENTS_RO(neigh->prefix_list,
prefix_node, p))
- vty_out(vty, "%-16s %-15s %-15s %-15pFX\n",
- ifp->name,
- inet_ntop(AF_INET, &ifaddr, buf,
- sizeof(buf)),
- neigh_src_str, p);
+ vty_out(vty,
+ "%-16s %-15pPAs %-15pPAs %-15pFX\n",
+ ifp->name, &ifaddr, &neigh->source_addr,
+ p);
}
}
}