Browse Source

pimd: Change ioctl call failure from vty_out to zlog_warn

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 <sharpd@cumulusnetworks.com>
Donald Sharp 4 years ago
parent
commit
d2c6da209c
1 changed files with 7 additions and 10 deletions
  1. 7 10
      pimd/pim_cmd.c

+ 7 - 10
pimd/pim_cmd.c

@@ -2070,16 +2070,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;