summaryrefslogtreecommitdiffstats
path: root/sys/dev/msk/if_mskreg.h
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2009-01-16 08:06:55 +0000
committeryongari <yongari@FreeBSD.org>2009-01-16 08:06:55 +0000
commite981a85b8907682b2c7e33cfb4e958a6a986480a (patch)
tree39c64db319754a5a04306b75c144603d34e964b5 /sys/dev/msk/if_mskreg.h
parent5acbdb14cf274bf22b8cf5c4f886b64ad77f831a (diff)
downloadFreeBSD-src-e981a85b8907682b2c7e33cfb4e958a6a986480a.zip
FreeBSD-src-e981a85b8907682b2c7e33cfb4e958a6a986480a.tar.gz
Add hardware MAC statistics support. Also added some reserved
statistics register definition. Users can get current MAC statistics from dev.msk.%d.stats sysctl node(%d is unit number of a device).
Diffstat (limited to 'sys/dev/msk/if_mskreg.h')
-rw-r--r--sys/dev/msk/if_mskreg.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/sys/dev/msk/if_mskreg.h b/sys/dev/msk/if_mskreg.h
index 20d2c33..09b0d0c 100644
--- a/sys/dev/msk/if_mskreg.h
+++ b/sys/dev/msk/if_mskreg.h
@@ -1614,6 +1614,8 @@
(GM_MIB_CNT_BASE + 24) /* Multicast Frames Received OK */
#define GM_RXF_FCS_ERR \
(GM_MIB_CNT_BASE + 32) /* Rx Frame Check Seq. Error */
+#define GM_RXF_SPARE1 \
+ (GM_MIB_CNT_BASE + 40) /* Rx spare 1 */
#define GM_RXO_OK_LO \
(GM_MIB_CNT_BASE + 48) /* Octets Received OK Low */
#define GM_RXO_OK_HI \
@@ -1644,8 +1646,12 @@
(GM_MIB_CNT_BASE + 152) /* Rx Frame too Long Error */
#define GM_RXF_JAB_PKT \
(GM_MIB_CNT_BASE + 160) /* Rx Jabber Packet Frame */
+#define GM_RXF_SPARE2 \
+ (GM_MIB_CNT_BASE + 168) /* Rx spare 2 */
#define GM_RXE_FIFO_OV \
(GM_MIB_CNT_BASE + 176) /* Rx FIFO overflow Event */
+#define GM_RXF_SPARE3 \
+ (GM_MIB_CNT_BASE + 184) /* Rx spare 3 */
#define GM_TXF_UC_OK \
(GM_MIB_CNT_BASE + 192) /* Unicast Frames Xmitted OK */
#define GM_TXF_BC_OK \
@@ -1672,6 +1678,8 @@
(GM_MIB_CNT_BASE + 280) /* 1024-1518 Byte Tx Frame */
#define GM_TXF_MAX_SZ \
(GM_MIB_CNT_BASE + 288) /* 1519-MaxSize Byte Tx Frame */
+#define GM_TXF_SPARE1 \
+ (GM_MIB_CNT_BASE + 296) /* Tx spare 1 */
#define GM_TXF_COL \
(GM_MIB_CNT_BASE + 304) /* Tx Collision */
#define GM_TXF_LAT_COL \
@@ -2270,6 +2278,52 @@ struct msk_ring_data {
/* Forward decl. */
struct msk_if_softc;
+struct msk_hw_stats {
+ /* Rx stats. */
+ uint32_t rx_ucast_frames;
+ uint32_t rx_bcast_frames;
+ uint32_t rx_pause_frames;
+ uint32_t rx_mcast_frames;
+ uint32_t rx_crc_errs;
+ uint32_t rx_spare1;
+ uint64_t rx_good_octets;
+ uint64_t rx_bad_octets;
+ uint32_t rx_runts;
+ uint32_t rx_runt_errs;
+ uint32_t rx_pkts_64;
+ uint32_t rx_pkts_65_127;
+ uint32_t rx_pkts_128_255;
+ uint32_t rx_pkts_256_511;
+ uint32_t rx_pkts_512_1023;
+ uint32_t rx_pkts_1024_1518;
+ uint32_t rx_pkts_1519_max;
+ uint32_t rx_pkts_too_long;
+ uint32_t rx_pkts_jabbers;
+ uint32_t rx_spare2;
+ uint32_t rx_fifo_oflows;
+ uint32_t rx_spare3;
+ /* Tx stats. */
+ uint32_t tx_ucast_frames;
+ uint32_t tx_bcast_frames;
+ uint32_t tx_pause_frames;
+ uint32_t tx_mcast_frames;
+ uint64_t tx_octets;
+ uint32_t tx_pkts_64;
+ uint32_t tx_pkts_65_127;
+ uint32_t tx_pkts_128_255;
+ uint32_t tx_pkts_256_511;
+ uint32_t tx_pkts_512_1023;
+ uint32_t tx_pkts_1024_1518;
+ uint32_t tx_pkts_1519_max;
+ uint32_t tx_spare1;
+ uint32_t tx_colls;
+ uint32_t tx_late_colls;
+ uint32_t tx_excess_colls;
+ uint32_t tx_multi_colls;
+ uint32_t tx_single_colls;
+ uint32_t tx_underflows;
+};
+
/* Softc for the Marvell Yukon II controller. */
struct msk_softc {
struct resource *msk_res[1]; /* I/O resource */
@@ -2340,6 +2394,7 @@ struct msk_if_softc {
struct msk_chain_data msk_cdata;
struct msk_ring_data msk_rdata;
struct msk_softc *msk_softc; /* parent controller */
+ struct msk_hw_stats msk_stats;
struct task msk_link_task;
struct task msk_tx_task;
int msk_if_flags;
OpenPOWER on IntegriCloud