summaryrefslogtreecommitdiffstats
path: root/usr.bin/netstat/mroute.c
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2001-09-07 12:59:30 +0000
committerru <ru@FreeBSD.org>2001-09-07 12:59:30 +0000
commit14ae92d34d50cfb643b3011f5f2c563b72f3d545 (patch)
treed39652d6de70c174d4645647ee144e129f0f4376 /usr.bin/netstat/mroute.c
parentb883ee05be33784c01a80c5bc5aaecad8607030d (diff)
downloadFreeBSD-src-14ae92d34d50cfb643b3011f5f2c563b72f3d545.zip
FreeBSD-src-14ae92d34d50cfb643b3011f5f2c563b72f3d545.tar.gz
If -s -s is specified, don't show zero multicast routing statistics.
Diffstat (limited to 'usr.bin/netstat/mroute.c')
-rw-r--r--usr.bin/netstat/mroute.c49
1 files changed, 23 insertions, 26 deletions
diff --git a/usr.bin/netstat/mroute.c b/usr.bin/netstat/mroute.c
index 8e0957a..78e64f2 100644
--- a/usr.bin/netstat/mroute.c
+++ b/usr.bin/netstat/mroute.c
@@ -168,30 +168,27 @@ mrt_stats(u_long mstaddr)
kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat));
}
printf("IPv4 multicast forwarding:\n");
- printf(" %10lu multicast forwarding cache lookup%s\n",
- mrtstat.mrts_mfc_lookups, plural(mrtstat.mrts_mfc_lookups));
- printf(" %10lu multicast forwarding cache miss%s\n",
- mrtstat.mrts_mfc_misses, plurales(mrtstat.mrts_mfc_misses));
- printf(" %10lu upcall%s to mrouted\n",
- mrtstat.mrts_upcalls, plural(mrtstat.mrts_upcalls));
- printf(" %10lu upcall queue overflow%s\n",
- mrtstat.mrts_upq_ovflw, plural(mrtstat.mrts_upq_ovflw));
- printf(" %10lu upcall%s dropped due to full socket buffer\n",
- mrtstat.mrts_upq_sockfull, plural(mrtstat.mrts_upq_sockfull));
- printf(" %10lu cache cleanup%s\n",
- mrtstat.mrts_cache_cleanups, plural(mrtstat.mrts_cache_cleanups));
- printf(" %10lu datagram%s with no route for origin\n",
- mrtstat.mrts_no_route, plural(mrtstat.mrts_no_route));
- printf(" %10lu datagram%s arrived with bad tunneling\n",
- mrtstat.mrts_bad_tunnel, plural(mrtstat.mrts_bad_tunnel));
- printf(" %10lu datagram%s could not be tunneled\n",
- mrtstat.mrts_cant_tunnel, plural(mrtstat.mrts_cant_tunnel));
- printf(" %10lu datagram%s arrived on wrong interface\n",
- mrtstat.mrts_wrong_if, plural(mrtstat.mrts_wrong_if));
- printf(" %10lu datagram%s selectively dropped\n",
- mrtstat.mrts_drop_sel, plural(mrtstat.mrts_drop_sel));
- printf(" %10lu datagram%s dropped due to queue overflow\n",
- mrtstat.mrts_q_overflow, plural(mrtstat.mrts_q_overflow));
- printf(" %10lu datagram%s dropped for being too large\n",
- mrtstat.mrts_pkt2large, plural(mrtstat.mrts_pkt2large));
+
+#define p(f, m) if (mrtstat.f || sflag <= 1) \
+ printf(m, mrtstat.f, plural(mrtstat.f))
+#define p2(f, m) if (mrtstat.f || sflag <= 1) \
+ printf(m, mrtstat.f, plurales(mrtstat.f))
+
+ p(mrts_mfc_lookups, "\t%lu multicast forwarding cache lookup%s\n");
+ p2(mrts_mfc_misses, "\t%lu multicast forwarding cache miss%s\n");
+ p(mrts_upcalls, "\t%lu upcall%s to mrouted\n");
+ p(mrts_upq_ovflw, "\t%lu upcall queue overflow%s\n");
+ p(mrts_upq_sockfull,
+ "\t%lu upcall%s dropped due to full socket buffer\n");
+ p(mrts_cache_cleanups, "\t%lu cache cleanup%s\n");
+ p(mrts_no_route, "\t%lu datagram%s with no route for origin\n");
+ p(mrts_bad_tunnel, "\t%lu datagram%s arrived with bad tunneling\n");
+ p(mrts_cant_tunnel, "\t%lu datagram%s could not be tunneled\n");
+ p(mrts_wrong_if, "\t%lu datagram%s arrived on wrong interface\n");
+ p(mrts_drop_sel, "\t%lu datagram%s selectively dropped\n");
+ p(mrts_q_overflow, "\t%lu datagram%s dropped due to queue overflow\n");
+ p(mrts_pkt2large, "\t%lu datagram%s dropped for being too large\n");
+
+#undef p2
+#undef p
}
OpenPOWER on IntegriCloud