The command 'show ip multicast' when run, iterates over all interfaces
on the router, if you do not have pim configured on that interface
it would generate an error message:

Interface Address         ifi Vif  PktsIn PktsOut    BytesIn   BytesOut
br1       20.0.15.1         7   7       0       0          0          0
swp1      169.254.0.10      3   3       0       0          0          0
swp2      169.254.0.26      4   4       0       0          0          0
ioctl(SIOCGETVIFCNT=35296) failure for interface swp3 vif_index=-1: errno=22: 
Invalid argument
ioctl(SIOCGETVIFCNT=35296) failure for interface swp4 vif_index=-1: errno=22: 
Invalid argument

This fixes the issue to display this instead:

Interface Address         ifi Vif  PktsIn PktsOut    BytesIn   BytesOut
br1       20.0.15.1         7   7       0       0          0          0
swp1      169.254.0.10      3   3       0       0          0          0
swp2      169.254.0.26      4   4       0       0          0          0
swp3      0.0.0.0           5  -1       0       0          0          0
swp4      0.0.0.0           6  -1       0       0          0          0

Signed-off-by: Donald Sharp <[email protected]>
---
 pimd/pim_cmd.c |   17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index f19b212..0f90d1d 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -2031,16 +2031,13 @@ static void show_multicast_interfaces(struct vty *vty)
     vreq.vifi = pim_ifp->mroute_vif_index;
 
     if (ioctl(qpim_mroute_socket_fd, SIOCGETVIFCNT, &vreq)) {
-      int e = errno;
-      vty_out(vty,
-             "ioctl(SIOCGETVIFCNT=%lu) failure for interface %s vif_index=%d: 
errno=%d: %s%s",
-             (unsigned long)SIOCGETVIFCNT,
-             ifp->name,
-             pim_ifp->mroute_vif_index,
-             e,
-             safe_strerror(e),
-             VTY_NEWLINE);           
-      continue;
+      zlog_warn("ioctl(SIOCGETVIFCNT=%lu) failure for interface %s 
vif_index=%d: errno=%d: %s%s",
+               (unsigned long)SIOCGETVIFCNT,
+               ifp->name,
+               pim_ifp->mroute_vif_index,
+               errno,
+               safe_strerror(errno),
+               VTY_NEWLINE);
     }
 
     ifaddr = pim_ifp->primary_address;
-- 
1.7.10.4


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to