Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/marvell Count up if_{opackets, oerrors, ierrors, collis...



details:   https://anonhg.NetBSD.org/src/rev/7b06a7331b33
branches:  trunk
changeset: 343541:7b06a7331b33
user:      hikaru <hikaru%NetBSD.org@localhost>
date:      Sat Feb 13 06:33:21 2016 +0000

description:
Count up if_{opackets,oerrors,ierrors,collisions}.
And also "MAC Transmit Error" is tx error, not rx.

diffstat:

 sys/dev/marvell/if_mvxpe.c    |  86 +++++++++++++++++++++++++++----------------
 sys/dev/marvell/if_mvxpereg.h |   4 +-
 2 files changed, 56 insertions(+), 34 deletions(-)

diffs (186 lines):

diff -r f68931136647 -r 7b06a7331b33 sys/dev/marvell/if_mvxpe.c
--- a/sys/dev/marvell/if_mvxpe.c        Sat Feb 13 06:12:46 2016 +0000
+++ b/sys/dev/marvell/if_mvxpe.c        Sat Feb 13 06:33:21 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_mvxpe.c,v 1.9 2016/02/13 06:12:46 hikaru Exp $      */
+/*     $NetBSD: if_mvxpe.c,v 1.10 2016/02/13 06:33:21 hikaru Exp $     */
 /*
  * Copyright (c) 2015 Internet Initiative Japan Inc.
  * All rights reserved.
@@ -25,7 +25,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_mvxpe.c,v 1.9 2016/02/13 06:12:46 hikaru Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_mvxpe.c,v 1.10 2016/02/13 06:33:21 hikaru Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -189,67 +189,71 @@
        int reg64;
        const char *sysctl_name;
        const char *desc;
+       int ext;
+#define MVXPE_MIBEXT_IF_OERRORS        1
+#define MVXPE_MIBEXT_IF_IERRORS        2
+#define MVXPE_MIBEXT_IF_COLLISIONS     3
 } mvxpe_mib_list[] = {
        {MVXPE_MIB_RX_GOOD_OCT, 1,      "rx_good_oct",
-           "Good Octets Rx"},
+           "Good Octets Rx", 0},
        {MVXPE_MIB_RX_BAD_OCT, 0,       "rx_bad_oct",
-           "Bad  Octets Rx"},
-       {MVXPE_MIB_RX_MAC_TRNS_ERR, 0,  "rx_mac_err",
-           "MAC Transmit Error"},
+           "Bad  Octets Rx", 0},
+       {MVXPE_MIB_TX_MAC_TRNS_ERR, 0,  "tx_mac_err",
+           "MAC Transmit Error", MVXPE_MIBEXT_IF_OERRORS},
        {MVXPE_MIB_RX_GOOD_FRAME, 0,    "rx_good_frame",
-           "Good Frames Rx"},
+           "Good Frames Rx", 0},
        {MVXPE_MIB_RX_BAD_FRAME, 0,     "rx_bad_frame",
-           "Bad Frames Rx"},
+           "Bad Frames Rx", 0},
        {MVXPE_MIB_RX_BCAST_FRAME, 0,   "rx_bcast_frame",
-           "Broadcast Frames Rx"},
+           "Broadcast Frames Rx", 0},
        {MVXPE_MIB_RX_MCAST_FRAME, 0,   "rx_mcast_frame",
-           "Multicast Frames Rx"},
+           "Multicast Frames Rx", 0},
        {MVXPE_MIB_RX_FRAME64_OCT, 0,   "rx_frame_1_64",
-           "Frame Size    1 -   64"},
+           "Frame Size    1 -   64", 0},
        {MVXPE_MIB_RX_FRAME127_OCT, 0,  "rx_frame_65_127",
-           "Frame Size   65 -  127"},
+           "Frame Size   65 -  127", 0},
        {MVXPE_MIB_RX_FRAME255_OCT, 0,  "rx_frame_128_255",
-           "Frame Size  128 -  255"},
+           "Frame Size  128 -  255", 0},
        {MVXPE_MIB_RX_FRAME511_OCT, 0,  "rx_frame_256_511",
            "Frame Size  256 -  511"},
        {MVXPE_MIB_RX_FRAME1023_OCT, 0, "rx_frame_512_1023",
-           "Frame Size  512 - 1023"},
+           "Frame Size  512 - 1023", 0},
        {MVXPE_MIB_RX_FRAMEMAX_OCT, 0,  "rx_fame_1024_max",
-           "Frame Size 1024 -  Max"},
+           "Frame Size 1024 -  Max", 0},
        {MVXPE_MIB_TX_GOOD_OCT, 1,      "tx_good_oct",
-           "Good Octets Tx"},
+           "Good Octets Tx", 0},
        {MVXPE_MIB_TX_GOOD_FRAME, 0,    "tx_good_frame",
-           "Good Frames Tx"},
+           "Good Frames Tx", 0},
        {MVXPE_MIB_TX_EXCES_COL, 0,     "tx_exces_collision",
-           "Excessive Collision"},
+           "Excessive Collision", MVXPE_MIBEXT_IF_OERRORS},
        {MVXPE_MIB_TX_MCAST_FRAME, 0,   "tx_mcast_frame",
            "Multicast Frames Tx"},
        {MVXPE_MIB_TX_BCAST_FRAME, 0,   "tx_bcast_frame",
            "Broadcast Frames Tx"},
        {MVXPE_MIB_TX_MAC_CTL_ERR, 0,   "tx_mac_err",
-           "Unknown MAC Control"},
+           "Unknown MAC Control", 0},
        {MVXPE_MIB_FC_SENT, 0,          "fc_tx",
-           "Flow Control Tx"},
+           "Flow Control Tx", 0},
        {MVXPE_MIB_FC_GOOD, 0,          "fc_rx_good",
-           "Good Flow Control Rx"},
+           "Good Flow Control Rx", 0},
        {MVXPE_MIB_FC_BAD, 0,           "fc_rx_bad",
-           "Bad Flow Control Rx"},
+           "Bad Flow Control Rx", 0},
        {MVXPE_MIB_PKT_UNDERSIZE, 0,    "pkt_undersize",
-           "Undersized Packets Rx"},
+           "Undersized Packets Rx", MVXPE_MIBEXT_IF_IERRORS},
        {MVXPE_MIB_PKT_FRAGMENT, 0,     "pkt_fragment",
-           "Fragmented Packets Rx"},
+           "Fragmented Packets Rx", MVXPE_MIBEXT_IF_IERRORS},
        {MVXPE_MIB_PKT_OVERSIZE, 0,     "pkt_oversize",
-           "Oversized Packets Rx"},
+           "Oversized Packets Rx", MVXPE_MIBEXT_IF_IERRORS},
        {MVXPE_MIB_PKT_JABBER, 0,       "pkt_jabber",
-           "Jabber Packets Rx"},
+           "Jabber Packets Rx", MVXPE_MIBEXT_IF_IERRORS},
        {MVXPE_MIB_MAC_RX_ERR, 0,       "mac_rx_err",
-           "MAC Rx Errors"},
+           "MAC Rx Errors", MVXPE_MIBEXT_IF_IERRORS},
        {MVXPE_MIB_MAC_CRC_ERR, 0,      "mac_crc_err",
-           "MAC CRC Errors"},
+           "MAC CRC Errors", MVXPE_MIBEXT_IF_IERRORS},
        {MVXPE_MIB_MAC_COL, 0,          "mac_collision",
-           "MAC Collision"},
+           "MAC Collision", MVXPE_MIBEXT_IF_COLLISIONS},
        {MVXPE_MIB_MAC_LATE_COL, 0,     "mac_late_collision",
-           "MAC Late Collision"},
+           "MAC Late Collision", MVXPE_MIBEXT_IF_OERRORS},
 };
 
 /*
@@ -1690,6 +1694,7 @@
                    sc->sc_tx_ring[q].tx_queue_len);
                DPRINTIFNET(ifp, 1, "a packet is added to tx ring\n");
                sc->sc_tx_pending++;
+               ifp->if_opackets++;
                ifp->if_timer = 1;
                sc->sc_wdogsoft = 1;
                bpf_mtap(ifp, m);
@@ -3207,6 +3212,7 @@
 STATIC void
 mvxpe_update_mib(struct mvxpe_softc *sc)
 {
+       struct ifnet *ifp = &sc->sc_ethercom.ec_if;
        int i;
 
        KASSERT_SC_MTX(sc);
@@ -3214,6 +3220,7 @@
        for (i = 0; i < __arraycount(mvxpe_mib_list); i++) {
                uint32_t val_hi;
                uint32_t val_lo;
+               uint64_t val;
 
                if (mvxpe_mib_list[i].reg64) {
                        /* XXX: implement bus_space_read_8() */
@@ -3229,8 +3236,23 @@
                if ((val_lo | val_hi) == 0)
                        continue;
 
-               sc->sc_sysctl_mib[i].counter +=
-                   ((uint64_t)val_hi << 32) | (uint64_t)val_lo;
+               val = ((uint64_t)val_hi << 32) | (uint64_t)val_lo;
+               sc->sc_sysctl_mib[i].counter += val;
+
+               switch (mvxpe_mib_list[i].ext) {
+               case MVXPE_MIBEXT_IF_OERRORS:
+                       ifp->if_oerrors += val;
+                       break;
+               case MVXPE_MIBEXT_IF_IERRORS:
+                       ifp->if_ierrors += val;
+                       break;
+               case MVXPE_MIBEXT_IF_COLLISIONS:
+                       ifp->if_collisions += val;
+                       break;
+               default:
+                       break;
+               }
+
        }
 }
 
diff -r f68931136647 -r 7b06a7331b33 sys/dev/marvell/if_mvxpereg.h
--- a/sys/dev/marvell/if_mvxpereg.h     Sat Feb 13 06:12:46 2016 +0000
+++ b/sys/dev/marvell/if_mvxpereg.h     Sat Feb 13 06:33:21 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_mvxpereg.h,v 1.3 2016/02/12 09:24:15 hikaru Exp $   */
+/*     $NetBSD: if_mvxpereg.h,v 1.4 2016/02/13 06:33:21 hikaru Exp $   */
 /*
  * Copyright (c) 2015 Internet Initiative Japan Inc.
  * All rights reserved.
@@ -244,7 +244,7 @@
 /* Rx */
 #define MVXPE_MIB_RX_GOOD_OCT          0x00 /* 64bit */
 #define MVXPE_MIB_RX_BAD_OCT           0x08
-#define MVXPE_MIB_RX_MAC_TRNS_ERR      0x0c
+#define MVXPE_MIB_TX_MAC_TRNS_ERR      0x0c
 #define MVXPE_MIB_RX_GOOD_FRAME                0x10
 #define MVXPE_MIB_RX_BAD_FRAME         0x14
 #define MVXPE_MIB_RX_BCAST_FRAME       0x18



Home | Main Index | Thread Index | Old Index