Print this page
4431 igb support for I354
4616 igb has uninitialized kstats

@@ -23,10 +23,11 @@
  * Copyright(c) 2007-2010 Intel Corporation. All rights reserved.
  */
 
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2014 Pluribus Networks Inc. 
  */
 
 #ifndef _IGB_SW_H
 #define _IGB_SW_H
 

@@ -646,10 +647,38 @@
         /*
          * Kstat definitions
          */
         kstat_t                 *igb_ks;
 
+        /*
+         * Backing store for MAC stats.  These are reported via GLDv3, instead of
+         * via our private kstat structure.
+         */
+        uint64_t                stat_tor;       /* rbytes */
+        uint64_t                stat_tpr;       /* rpackets */
+        uint64_t                stat_tot;       /* obytes */
+        uint64_t                stat_tpt;       /* opackets */
+        uint64_t                stat_colc;      /* collisions */
+        uint64_t                stat_mcc;       /* multi colls */
+        uint64_t                stat_scc;       /* single colls */
+        uint64_t                stat_ecol;      /* excessive colls */
+        uint64_t                stat_latecol;   /* late colls */
+        uint64_t                stat_bptc;      /* xmit bcast */
+        uint64_t                stat_mptc;      /* xmit bcast */
+        uint64_t                stat_bprc;      /* recv bcast */
+        uint64_t                stat_mprc;      /* recv mcast */
+        uint64_t                stat_rnbc;      /* recv nobuf */
+        uint64_t                stat_roc;       /* recv toolong */
+        uint64_t                stat_sec;       /* sqe errors */
+        uint64_t                stat_dc;        /* defer */
+        uint64_t                stat_algnerrc;  /* align errors */
+        uint64_t                stat_crcerrs;   /* crc errors */
+        uint64_t                stat_cexterr;   /* carrier extension errors */
+        uint64_t                stat_ruc;       /* recv tooshort */
+        uint64_t                stat_rjc;       /* recv jabber */
+        uint64_t                stat_rxerrc;    /* recv errors */
+
         uint32_t                param_en_1000fdx_cap:1,
                                 param_en_1000hdx_cap:1,
                                 param_en_100t4_cap:1,
                                 param_en_100fdx_cap:1,
                                 param_en_100hdx_cap:1,

@@ -699,11 +728,10 @@
         ulong_t                 page_size;
 } igb_t;
 
 typedef struct igb_stat {
 
-        kstat_named_t link_speed;       /* Link Speed */
         kstat_named_t reset_count;      /* Reset Count */
         kstat_named_t dout_sync;        /* DMA out of sync */
 #ifdef IGB_DEBUG
         kstat_named_t rx_frame_error;   /* Rx Error in Packet */
         kstat_named_t rx_cksum_error;   /* Rx Checksum Error */

@@ -730,43 +758,20 @@
         kstat_named_t ptc255;   /* Packets Xmitted (128-255b) */
         kstat_named_t ptc511;   /* Packets Xmitted (255-511b) */
         kstat_named_t ptc1023;  /* Packets Xmitted (512-1023b) */
         kstat_named_t ptc1522;  /* Packets Xmitted (1024-1522b */
 #endif
-        kstat_named_t crcerrs;  /* CRC Error Count */
         kstat_named_t symerrs;  /* Symbol Error Count */
         kstat_named_t mpc;      /* Missed Packet Count */
-        kstat_named_t scc;      /* Single Collision Count */
-        kstat_named_t ecol;     /* Excessive Collision Count */
-        kstat_named_t mcc;      /* Multiple Collision Count */
-        kstat_named_t latecol;  /* Late Collision Count */
-        kstat_named_t colc;     /* Collision Count */
-        kstat_named_t dc;       /* Defer Count */
-        kstat_named_t sec;      /* Sequence Error Count */
         kstat_named_t rlec;     /* Receive Length Error Count */
         kstat_named_t xonrxc;   /* XON Received Count */
         kstat_named_t xontxc;   /* XON Xmitted Count */
         kstat_named_t xoffrxc;  /* XOFF Received Count */
         kstat_named_t xofftxc;  /* Xoff Xmitted Count */
         kstat_named_t fcruc;    /* Unknown Flow Conrol Packet Rcvd Count */
-        kstat_named_t bprc;     /* Broadcasts Pkts Received Count */
-        kstat_named_t mprc;     /* Multicast Pkts Received Count */
-        kstat_named_t rnbc;     /* Receive No Buffers Count */
-        kstat_named_t ruc;      /* Receive Undersize Count */
         kstat_named_t rfc;      /* Receive Frag Count */
-        kstat_named_t roc;      /* Receive Oversize Count */
-        kstat_named_t rjc;      /* Receive Jabber Count */
-        kstat_named_t tor;      /* Total Octets Recvd Count */
-        kstat_named_t tot;      /* Total Octets Xmted Count */
-        kstat_named_t tpr;      /* Total Packets Received */
-        kstat_named_t tpt;      /* Total Packets Xmitted */
-        kstat_named_t mptc;     /* Multicast Packets Xmited Count */
-        kstat_named_t bptc;     /* Broadcast Packets Xmited Count */
-        kstat_named_t algnerrc; /* Alignment Error count */
-        kstat_named_t rxerrc;   /* Rx Error Count */
         kstat_named_t tncrs;    /* Transmit with no CRS */
-        kstat_named_t cexterr;  /* Carrier Extension Error count */
         kstat_named_t tsctc;    /* TCP seg contexts xmit count */
         kstat_named_t tsctfc;   /* TCP seg contexts xmit fail count */
 } igb_stat_t;
 
 /*