diff options
author | ru <ru@FreeBSD.org> | 2001-09-07 12:59:30 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2001-09-07 12:59:30 +0000 |
commit | 14ae92d34d50cfb643b3011f5f2c563b72f3d545 (patch) | |
tree | d39652d6de70c174d4645647ee144e129f0f4376 /usr.bin/netstat | |
parent | b883ee05be33784c01a80c5bc5aaecad8607030d (diff) | |
download | FreeBSD-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')
-rw-r--r-- | usr.bin/netstat/mroute.c | 49 | ||||
-rw-r--r-- | usr.bin/netstat/mroute6.c | 65 |
2 files changed, 48 insertions, 66 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 } diff --git a/usr.bin/netstat/mroute6.c b/usr.bin/netstat/mroute6.c index 712e36a..350a926 100644 --- a/usr.bin/netstat/mroute6.c +++ b/usr.bin/netstat/mroute6.c @@ -199,50 +199,35 @@ mrt6_stats(u_long mstaddr) if (mstaddr == 0) { printf("No IPv6 multicast routing compiled into this" - "system.\n"); + " system.\n"); return; } kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat)); printf("IPv6 multicast forwarding:\n"); - printf(" %10llu multicast forwarding cache lookup%s\n", - (unsigned long long)mrtstat.mrt6s_mfc_lookups, - plural(mrtstat.mrt6s_mfc_lookups)); - printf(" %10llu multicast forwarding cache miss%s\n", - (unsigned long long)mrtstat.mrt6s_mfc_misses, - plurales(mrtstat.mrt6s_mfc_misses)); - printf(" %10llu upcall%s to mrouted\n", - (unsigned long long)mrtstat.mrt6s_upcalls, - plural(mrtstat.mrt6s_upcalls)); - printf(" %10llu upcall llueue overflow%s\n", - (unsigned long long)mrtstat.mrt6s_upq_ovflw, - plural(mrtstat.mrt6s_upq_ovflw)); - printf(" %10llu upcall%s dropped due to full socket buffer\n", - (unsigned long long)mrtstat.mrt6s_upq_sockfull, - plural(mrtstat.mrt6s_upq_sockfull)); - printf(" %10llu cache cleanup%s\n", - (unsigned long long)mrtstat.mrt6s_cache_cleanups, - plural(mrtstat.mrt6s_cache_cleanups)); - printf(" %10llu datagram%s with no route for origin\n", - (unsigned long long)mrtstat.mrt6s_no_route, - plural(mrtstat.mrt6s_no_route)); - printf(" %10llu datagram%s arrived with bad tunneling\n", - (unsigned long long)mrtstat.mrt6s_bad_tunnel, - plural(mrtstat.mrt6s_bad_tunnel)); - printf(" %10llu datagram%s could not be tunneled\n", - (unsigned long long)mrtstat.mrt6s_cant_tunnel, - plural(mrtstat.mrt6s_cant_tunnel)); - printf(" %10llu datagram%s arrived on wrong interface\n", - (unsigned long long)mrtstat.mrt6s_wrong_if, - plural(mrtstat.mrt6s_wrong_if)); - printf(" %10llu datagram%s selectively dropped\n", - (unsigned long long)mrtstat.mrt6s_drop_sel, - plural(mrtstat.mrt6s_drop_sel)); - printf(" %10llu datagram%s dropped due to llueue overflow\n", - (unsigned long long)mrtstat.mrt6s_q_overflow, - plural(mrtstat.mrt6s_q_overflow)); - printf(" %10llu datagram%s dropped for being too large\n", - (unsigned long long)mrtstat.mrt6s_pkt2large, - plural(mrtstat.mrt6s_pkt2large)); + +#define p(f, m) if (mrtstat.f || sflag <= 1) \ + printf(m, (unsigned long long)mrtstat.f, plural(mrtstat.f)) +#define p2(f, m) if (mrtstat.f || sflag <= 1) \ + printf(m, (unsigned long long)mrtstat.f, plurales(mrtstat.f)) + + p(mrt6s_mfc_lookups, "\t%llu multicast forwarding cache lookup%s\n"); + p2(mrt6s_mfc_misses, "\t%llu multicast forwarding cache miss%s\n"); + p(mrt6s_upcalls, "\t%llu upcall%s to mrouted\n"); + p(mrt6s_upq_ovflw, "\t%llu upcall llueue overflow%s\n"); + p(mrt6s_upq_sockfull, + "\t%llu upcall%s dropped due to full socket buffer\n"); + p(mrt6s_cache_cleanups, "\t%llu cache cleanup%s\n"); + p(mrt6s_no_route, "\t%llu datagram%s with no route for origin\n"); + p(mrt6s_bad_tunnel, "\t%llu datagram%s arrived with bad tunneling\n"); + p(mrt6s_cant_tunnel, "\t%llu datagram%s could not be tunneled\n"); + p(mrt6s_wrong_if, "\t%llu datagram%s arrived on wrong interface\n"); + p(mrt6s_drop_sel, "\t%llu datagram%s selectively dropped\n"); + p(mrt6s_q_overflow, + "\t%llu datagram%s dropped due to llueue overflow\n"); + p(mrt6s_pkt2large, "\t%llu datagram%s dropped for being too large\n"); + +#undef p2 +#undef p } #endif /*INET6*/ |