<div dir="ltr"><div><div>Hi All,<br></div><br></div><div>If there is no objection I can modify the syntex to have pim as keyword and make nexthop with ECMP aware. <br><br></div><div>Thanks & Regards,<br></div><div>Chirag Shah<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 4, 2017 at 2:53 PM, Chirag Shah <span dir="ltr"><<a href="mailto:chirag@cumulusnetworks.com" target="_blank">chirag@cumulusnetworks.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>Hello All,<br><br></div>The CLI command 'show ip rib <unicast addr> is in pim_cmd.c which invokes zebra lookup for nexthops and return the first available path to user. <br><br></div>Ideally the command is for PIMd (Zebra Client for nexthop info). <br><br></div>I would like to propose to change to CLI to specific to PIMd  'show ip <b>pim </b>rib <uincat addr>  rather generic than "ip rib" term. <br><br></div>Please share your opinion. <br><br><br></div>Kind Regards,<br></div>Chirag Shah<br><br></div><div>P.S. : <br><br></div>Cli implementation from pim_cli.c <br><div><br>DEFUN (show_ip_rib,<br>       show_ip_rib_cmd,<br>       "<b>show ip rib A.B.C.D</b>",<br>       SHOW_STR<br>       IP_STR<br>       RIB_STR<br>       "Unicast address\n")<br>{<br>  struct in_addr addr;<br>  const char *addr_str;<br>  struct pim_nexthop nexthop;<br>  char nexthop_addr_str[PREFIX_<wbr>STRLEN];<br>  int result;<br><br>  memset (&nexthop, 0, sizeof (nexthop));<br>  addr_str = argv[0];<br>  result = inet_pton(AF_INET, addr_str, &addr);<br>  if (result <= 0) {<br>    vty_out(vty, "Bad unicast address %s: errno=%d: %s%s",<br>            addr_str, errno, safe_strerror(errno), VTY_NEWLINE);<br>    return CMD_WARNING;<br>  }<br><br>  if (<b>pim_nexthop_lookup</b>(&nexthop, addr, 0)) {<br>    vty_out(vty, "Failure querying RIB nexthop for unicast address %s%s",<br>            addr_str, VTY_NEWLINE);<br>    return CMD_WARNING;<br>  }<br><br>  vty_out(vty, "Address         NextHop         Interface Metric Preference%s",<br>          VTY_NEWLINE);<br><br>  pim_addr_dump("<nexthop?>", &nexthop.mrib_nexthop_addr,<br>                nexthop_addr_str, sizeof(nexthop_addr_str));<br><br>  vty_out(vty, "%-15s %-15s %-9s %6d %10d%s",<br>          addr_str,<br>          nexthop_addr_str,<br>          nexthop.interface ? nexthop.interface->name : "<ifname?>",<br>          nexthop.mrib_route_metric,<br>          nexthop.mrib_metric_<wbr>preference,<br>          VTY_NEWLINE);<br><br>  return CMD_SUCCESS;<br>}<br><br></div></div>
</blockquote></div><br></div>