summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2011-01-31 00:09:52 +0000
committerbz <bz@FreeBSD.org>2011-01-31 00:09:52 +0000
commit126cbabd2e530d55dd2c3a7871426f0fe8ada608 (patch)
tree780dc6426543d04081ae049086aeb60e9651f6ff
parenta8872fa39a27f509988f87bcab8aa694a0c8e3d6 (diff)
downloadFreeBSD-src-126cbabd2e530d55dd2c3a7871426f0fe8ada608.zip
FreeBSD-src-126cbabd2e530d55dd2c3a7871426f0fe8ada608.tar.gz
Update interface stats counters to match the current format in linux and
try to export as much information as we can match. Requested on: Debian GNU/kFreeBSD list (debian-bsd lists.debian.org) 2010-12 Tested by: Mats Erik Andersson (mats.andersson gisladisker.se) MFC after: 10 days
-rw-r--r--sys/compat/linprocfs/linprocfs.c39
1 files changed, 31 insertions, 8 deletions
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index 2aae07d..3ff9443 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -1215,20 +1215,43 @@ linprocfs_donetdev(PFS_FILL_ARGS)
char ifname[16]; /* XXX LINUX_IFNAMSIZ */
struct ifnet *ifp;
- sbuf_printf(sb, "%6s|%58s|%s\n%6s|%58s|%58s\n",
- "Inter-", " Receive", " Transmit", " face",
- "bytes packets errs drop fifo frame compressed",
- "bytes packets errs drop fifo frame compressed");
+ sbuf_printf(sb, "%6s|%58s|%s\n"
+ "%6s|%58s|%58s\n",
+ "Inter-", " Receive", " Transmit",
+ " face",
+ "bytes packets errs drop fifo frame compressed multicast",
+ "bytes packets errs drop fifo colls carrier compressed");
CURVNET_SET(TD_TO_VNET(curthread));
IFNET_RLOCK();
TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
linux_ifname(ifp, ifname, sizeof ifname);
- sbuf_printf(sb, "%6.6s:", ifname);
- sbuf_printf(sb, "%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu ",
- 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL);
+ sbuf_printf(sb, "%6.6s: ", ifname);
+ sbuf_printf(sb, "%7lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu ",
+ ifp->if_ibytes, /* rx_bytes */
+ ifp->if_ipackets, /* rx_packets */
+ ifp->if_ierrors, /* rx_errors */
+ ifp->if_iqdrops, /* rx_dropped +
+ * rx_missed_errors */
+ 0UL, /* rx_fifo_errors */
+ 0UL, /* rx_length_errors +
+ * rx_over_errors +
+ * rx_crc_errors +
+ * rx_frame_errors */
+ 0UL, /* rx_compressed */
+ ifp->if_imcasts); /* multicast, XXX-BZ rx only? */
sbuf_printf(sb, "%8lu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",
- 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL);
+ ifp->if_obytes, /* tx_bytes */
+ ifp->if_opackets, /* tx_packets */
+ ifp->if_oerrors, /* tx_errors */
+ 0UL, /* tx_dropped */
+ 0UL, /* tx_fifo_errors */
+ ifp->if_collisions, /* collisions */
+ 0UL, /* tx_carrier_errors +
+ * tx_aborted_errors +
+ * tx_window_errors +
+ * tx_heartbeat_errors */
+ 0UL); /* tx_compressed */
}
IFNET_RUNLOCK();
CURVNET_RESTORE();
OpenPOWER on IntegriCloud