nxge_kstats.c revision 678453a8ed49104d8adad58f3ba591bdc39883e8
6185db853e024a486ff8837e6784dd290d866112dougm * CDDL HEADER START
6185db853e024a486ff8837e6784dd290d866112dougm * The contents of this file are subject to the terms of the
6185db853e024a486ff8837e6784dd290d866112dougm * Common Development and Distribution License (the "License").
6185db853e024a486ff8837e6784dd290d866112dougm * You may not use this file except in compliance with the License.
6185db853e024a486ff8837e6784dd290d866112dougm * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6185db853e024a486ff8837e6784dd290d866112dougm * See the License for the specific language governing permissions
6185db853e024a486ff8837e6784dd290d866112dougm * and limitations under the License.
6185db853e024a486ff8837e6784dd290d866112dougm * When distributing Covered Code, include this CDDL HEADER in each
6185db853e024a486ff8837e6784dd290d866112dougm * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6185db853e024a486ff8837e6784dd290d866112dougm * If applicable, add the following below this CDDL HEADER, with the
6185db853e024a486ff8837e6784dd290d866112dougm * fields enclosed by brackets "[]" replaced with your own identifying
6185db853e024a486ff8837e6784dd290d866112dougm * information: Portions Copyright [yyyy] [name of copyright owner]
6185db853e024a486ff8837e6784dd290d866112dougm * CDDL HEADER END
6185db853e024a486ff8837e6784dd290d866112dougm * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
743a77ed89085d3c232c4a2f65ab4e19576839e2Alan Wright * Use is subject to license terms.
6185db853e024a486ff8837e6784dd290d866112dougm#pragma ident "%Z%%M% %I% %E% SMI"
6185db853e024a486ff8837e6784dd290d866112dougm/* ARGSUSED */
6185db853e024a486ff8837e6784dd290d866112dougm NXGE_DEBUG_MSG((nxgep, KST_CTL, "==> nxge_init_statsp"));
6185db853e024a486ff8837e6784dd290d866112dougm NXGE_DEBUG_MSG((nxgep, KST_CTL, " <== nxge_init_statsp"));
6185db853e024a486ff8837e6784dd290d866112dougmtypedef struct {
6185db853e024a486ff8837e6784dd290d866112dougmtypedef enum {
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RCR_ACK_ERR, KSTAT_DATA_ULONG, "rdc_rcr_ack_err"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RCR_DC_FIFOFLOW_ERR, KSTAT_DATA_ULONG, "rdc_dc_fifoflow_err"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RCR_SHA_PAR_ERR, KSTAT_DATA_ULONG, "rdc_rcr_sha_par_err"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RBR_PRE_PAR_ERR, KSTAT_DATA_ULONG, "rdc_rbr_pre_par_err"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_WRED_DROP, KSTAT_DATA_ULONG, "rdc_wred_drop"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RBR_PRE_EMTY, KSTAT_DATA_ULONG, "rdc_rbr_pre_empty"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RCR_SHADOW_FULL, KSTAT_DATA_ULONG, "rdc_rcr_shadow_full"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_RBR_TMOUT, KSTAT_DATA_ULONG, "rdc_rbr_tmout"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_RSP_CNT_ERR, KSTAT_DATA_ULONG, "rdc_rsp_cnt_err"},
ecd6cf800b63704be73fb264c3f5b6e0dafc068dmarks {RDC_STAT_BYTE_EN_BUS, KSTAT_DATA_ULONG, "rdc_byte_en_bus"},
687915e946710e354e302fa654bf53bf38b57cc6dougm {RDC_STAT_RSP_DAT_ERR, KSTAT_DATA_ULONG, "rdc_rsp_dat_err"},
687915e946710e354e302fa654bf53bf38b57cc6dougm {RDC_STAT_PKT_TOO_LONG_ERR, KSTAT_DATA_ULONG, "rdc_pkt_too_long_err"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_COMPL_L2_ERR, KSTAT_DATA_ULONG, "rdc_compl_l2_err"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_COMPL_L4_CKSUM_ERR, KSTAT_DATA_ULONG, "rdc_compl_l4_cksum"},
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw "rdc_compl_zcp_soft_err"},
6185db853e024a486ff8837e6784dd290d866112dougm "rdc_compl_fflp_soft_err"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_CONFIG_ERR, KSTAT_DATA_ULONG, "rdc_config_err"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_RCRINCON, KSTAT_DATA_ULONG, "rdc_rcrincon"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_RBR_EMPTY, KSTAT_DATA_ULONG, "rdc_rbr_empty"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_RBRLOGPAGE, KSTAT_DATA_ULONG, "rdc_rbrlogpage"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_CFIGLOGPAGE, KSTAT_DATA_ULONG, "rdc_cfiglogpage"},
5b6e0c463149a26dd0aeb4c1f70611c97161ff32dougm {RDC_STAT_PORT_DROP_PKT, KSTAT_DATA_ULONG, "rdc_port_drop_pkt"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_RCRTHRES, KSTAT_DATA_ULONG, "rdc_rcrthres"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_STAT_ID_MIS, KSTAT_DATA_ULONG, "rdc_id_mismatch"},
ecd6cf800b63704be73fb264c3f5b6e0dafc068dmarkstypedef enum {
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_SYS_STAT_PRE_PAR_ERR, KSTAT_DATA_UINT64, "rdc_pre_par_err"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_SYS_STAT_SHA_PAR_ERR, KSTAT_DATA_UINT64, "rdc_sha_par_err"},
549ec3fff108310966327d1dc9004551b63210b7dougm {RDC_SYS_STAT_ID_MISMATCH, KSTAT_DATA_UINT64, "rdc_stat_id_mismatch"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_SYS_STAT_IPP_EOP_ERR, KSTAT_DATA_UINT64, "rdc_ipp_eop_err"},
6185db853e024a486ff8837e6784dd290d866112dougm {RDC_SYS_STAT_ZCP_EOP_ERR, KSTAT_DATA_UINT64, "rdc_zcp_eop_err"},
6185db853e024a486ff8837e6784dd290d866112dougmtypedef enum {
IPP_STAT_EOP_MISS = 0,
TXC_STAT_PKT_STUFFED = 0,
#ifdef NXGE_DEBUG_SYMBOL_ERR
#ifdef NXGE_DEBUG_SYMBOL_ERR
int channel;
int channel;
#ifdef NXGE_DEBUG_SYMBOL_ERR
#ifdef NXGE_DEBUG_SYMBOL_ERR
int ldc_grp;
static uint64_t
return (addr64);
static kstat_t *
return (NULL);
return (ksp);
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
&nxge_rdc_sys_stats[0],
&nxge_ipp_stats[0],
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
#ifdef ACCEPT_JUMBO
#ifdef ACCEPT_JUMBO
#ifdef NXGE_DEBUG_SYMBOL_ERR
#ifdef ACCEPT_JUMBO
#ifdef ACCEPT_JUMBO
#ifdef ACCEPT_JUMBO
#ifdef TX_MBLK_DEST
#ifdef ACCEPT_JUMBO
#ifdef NXGE_DEBUG_SYMBOL_ERR
goto nxge_save_cntrs_exit;
int i, cursor;
for (i = 0; i < cursor; i++) {
switch (stat) {
case MAC_STAT_IERRORS:
case ETHER_STAT_MACRCV_ERRORS:
case MAC_STAT_RBYTES:
case MAC_STAT_IPACKETS:
return (val);
int i, cursor;
for (i = 0; i < cursor; i++) {
switch (stat) {
case MAC_STAT_OERRORS:
case MAC_STAT_OBYTES:
case MAC_STAT_OPACKETS:
return (val);
switch (stat) {
case MAC_STAT_IFSPEED:
case MAC_STAT_MULTIRCV:
case MAC_STAT_BRDCSTRCV:
case MAC_STAT_MULTIXMT:
case MAC_STAT_BRDCSTXMT:
case MAC_STAT_NORCVBUF:
case MAC_STAT_IERRORS:
case ETHER_STAT_MACRCV_ERRORS:
case MAC_STAT_OERRORS:
case MAC_STAT_NOXMTBUF:
case MAC_STAT_COLLISIONS:
val = 0;
case MAC_STAT_RBYTES:
case MAC_STAT_IPACKETS:
case MAC_STAT_OBYTES:
case MAC_STAT_OPACKETS:
case MAC_STAT_LINK_STATE:
case MAC_STAT_LINK_UP:
case MAC_STAT_PROMISC:
case ETHER_STAT_SQE_ERRORS:
val = 0;
case ETHER_STAT_ALIGN_ERRORS:
val = 0;
case ETHER_STAT_FCS_ERRORS:
val = 0;
val = 0;
val = 0;
val = 0;
case ETHER_STAT_EX_COLLISIONS:
val = 0;
case ETHER_STAT_DEFER_XMTS:
val = 0;
case ETHER_STAT_MACXMT_ERRORS:
case ETHER_STAT_XCVR_ADDR:
case ETHER_STAT_XCVR_ID:
case ETHER_STAT_XCVR_INUSE:
case ETHER_STAT_CAP_1000FDX:
case ETHER_STAT_CAP_1000HDX:
case ETHER_STAT_CAP_100FDX:
case ETHER_STAT_CAP_100HDX:
case ETHER_STAT_CAP_10FDX:
case ETHER_STAT_CAP_10HDX:
case ETHER_STAT_CAP_ASMPAUSE:
case ETHER_STAT_CAP_PAUSE:
case ETHER_STAT_CAP_AUTONEG:
case ETHER_STAT_ADV_CAP_10FDX:
case ETHER_STAT_ADV_CAP_10HDX:
case ETHER_STAT_ADV_CAP_PAUSE:
case ETHER_STAT_LP_CAP_100FDX:
case ETHER_STAT_LP_CAP_100HDX:
case ETHER_STAT_LP_CAP_10FDX:
case ETHER_STAT_LP_CAP_10HDX:
case ETHER_STAT_LP_CAP_PAUSE:
case ETHER_STAT_LINK_ASMPAUSE:
case ETHER_STAT_LINK_PAUSE:
case ETHER_STAT_LINK_AUTONEG:
case ETHER_STAT_LINK_DUPLEX:
#ifdef NXGE_DEBUG
stat));
return (ENOTSUP);