nxge_kstats.c revision 58324dfc74e5ac9f5d025d52114b796582c8991c
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * CDDL HEADER START
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * The contents of this file are subject to the terms of the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Common Development and Distribution License (the "License").
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * You may not use this file except in compliance with the License.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * See the License for the specific language governing permissions
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * and limitations under the License.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * When distributing Covered Code, include this CDDL HEADER in each
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * If applicable, add the following below this CDDL HEADER, with the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * fields enclosed by brackets "[]" replaced with your own identifying
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * information: Portions Copyright [yyyy] [name of copyright owner]
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * CDDL HEADER END
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Use is subject to license terms.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#pragma ident "%Z%%M% %I% %E% SMI"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid nxge_mac_init_kstats(p_nxge_t, struct kstat *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/* ARGSUSED */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync NXGE_DEBUG_MSG((nxgep, KST_CTL, "==> nxge_init_statsp"));
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync NXGE_DEBUG_MSG((nxgep, KST_CTL, " <== nxge_init_statsp"));
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef enum {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_PACKETS, KSTAT_DATA_UINT64, "rdc_packets"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_DCF_ERR, KSTAT_DATA_ULONG, "rdc_dcf_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCR_ACK_ERR, KSTAT_DATA_ULONG, "rdc_rcr_ack_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCR_DC_FIFOFLOW_ERR, KSTAT_DATA_ULONG, "rdc_dc_fifoflow_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCR_SHA_PAR_ERR, KSTAT_DATA_ULONG, "rdc_rcr_sha_par_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RBR_PRE_PAR_ERR, KSTAT_DATA_ULONG, "rdc_rbr_pre_par_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_WRED_DROP, KSTAT_DATA_ULONG, "rdc_wred_drop"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RBR_PRE_EMTY, KSTAT_DATA_ULONG, "rdc_rbr_pre_empty"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCR_SHADOW_FULL, KSTAT_DATA_ULONG, "rdc_rcr_shadow_full"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RBR_TMOUT, KSTAT_DATA_ULONG, "rdc_rbr_tmout"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RSP_CNT_ERR, KSTAT_DATA_ULONG, "rdc_rsp_cnt_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_BYTE_EN_BUS, KSTAT_DATA_ULONG, "rdc_byte_en_bus"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RSP_DAT_ERR, KSTAT_DATA_ULONG, "rdc_rsp_dat_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_COMPL_L2_ERR, KSTAT_DATA_ULONG, "rdc_compl_l2_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_COMPL_L4_CKSUM_ERR, KSTAT_DATA_ULONG, "rdc_compl_l4_cksum"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync "rdc_compl_zcp_soft_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync "rdc_compl_fflp_soft_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_CONFIG_ERR, KSTAT_DATA_ULONG, "rdc_config_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCRINCON, KSTAT_DATA_ULONG, "rdc_rcrincon"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCRFULL, KSTAT_DATA_ULONG, "rdc_rcrfull"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RBR_EMPTY, KSTAT_DATA_ULONG, "rdc_rbr_empty"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RBR_FULL, KSTAT_DATA_ULONG, "rdc_rbrfull"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RBRLOGPAGE, KSTAT_DATA_ULONG, "rdc_rbrlogpage"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_CFIGLOGPAGE, KSTAT_DATA_ULONG, "rdc_cfiglogpage"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_PORT_DROP_PKT, KSTAT_DATA_ULONG, "rdc_port_drop_pkt"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_RCRTHRES, KSTAT_DATA_ULONG, "rdc_rcrthres"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_ID_MIS, KSTAT_DATA_ULONG, "rdc_id_mismatch"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_ZCP_EOP, KSTAT_DATA_ULONG, "rdc_zcp_eop"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_STAT_IPP_EOP, KSTAT_DATA_ULONG, "rdc_ipp_eop"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef enum {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_SYS_STAT_PRE_PAR_ERR, KSTAT_DATA_UINT64, "rdc_pre_par_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_SYS_STAT_SHA_PAR_ERR, KSTAT_DATA_UINT64, "rdc_sha_par_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_SYS_STAT_ID_MISMATCH, KSTAT_DATA_UINT64, "rdc_stat_id_mismatch"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_SYS_STAT_IPP_EOP_ERR, KSTAT_DATA_UINT64, "rdc_ipp_eop_err"},
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync {RDC_SYS_STAT_ZCP_EOP_ERR, KSTAT_DATA_UINT64, "rdc_zcp_eop_err"},
TDC_STAT_PACKETS = 0,
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);
RDC_NAME_FORMAT1, i);
#ifdef NXGE_DEBUG_ERROR
&nxge_rdc_sys_stats[0],
&nxge_ipp_stats[0],
#ifdef NXGE_DEBUG_ERROR
TDC_NAME_FORMAT1, i);
&nxge_tdc_stats[0],
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
#ifdef NXGE_DEBUG_ERROR
#ifdef ACNXGEPT_JUMBO
#ifdef ACNXGEPT_JUMBO
#ifdef NXGE_DEBUG_SYMBOL_ERR
int channel;
#ifdef ACCEPT_JUMBO
#ifdef ACNXGEPT_JUMBO
#ifdef ACCEPT_JUMBO
#ifdef TX_MBLK_DEST
#ifdef ACCEPT_JUMBO
#ifdef NXGE_DEBUG_SYMBOL_ERR
int channel;
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:
val = 0;
case MAC_STAT_NOXMTBUF:
case MAC_STAT_OERRORS:
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);