hxge_kstats.c revision 1c29f7e382074ff2792b7f30c9be898ead487a30
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * CDDL HEADER START
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * The contents of this file are subject to the terms of the
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Common Development and Distribution License (the "License").
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * You may not use this file except in compliance with the License.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * See the License for the specific language governing permissions
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * and limitations under the License.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * When distributing Covered Code, include this CDDL HEADER in each
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * If applicable, add the following below this CDDL HEADER, with the
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * fields enclosed by brackets "[]" replaced with your own identifying
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * information: Portions Copyright [yyyy] [name of copyright owner]
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * CDDL HEADER END
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Use is subject to license terms.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_init_statsp"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, " <== hxge_init_statsp"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef struct {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
1c29f7e382074ff2792b7f30c9be898ead487a30Qiyan Sun - Sun Microsystems - San Diego United States RDC_STAT_RBR_EMPTY_RESTORE,
fd9489cef0e9b7d8a708339e560d453f230af2cfQiyan Sun - Sun Microsystems - San Diego United States RDC_STAT_PKT_DROP,
a512c5d1f2908d965887ad5494954ba2cf904bd2Qiyan Sun - Sun Microsystems - San Diego United States {RDC_STAT_ERRORS, KSTAT_DATA_ULONG, "rdc_errors"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_JUMBO_PKTS, KSTAT_DATA_ULONG, "rdc_jumbo_pkts"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_RCR_UNKNOWN_ERR, KSTAT_DATA_ULONG, "rdc_rcr_unknown_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_RCR_SHA_PAR_ERR, KSTAT_DATA_ULONG, "rdc_rcr_sha_par_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_RBR_PRE_PAR_ERR, KSTAT_DATA_ULONG, "rdc_rbr_pre_par_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_RBR_PRE_EMTY, KSTAT_DATA_ULONG, "rdc_rbr_pre_empty"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_RCR_SHADOW_FULL, KSTAT_DATA_ULONG, "rdc_rcr_shadow_full"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_PEU_RESP_ERR, KSTAT_DATA_ULONG, "peu_resp_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_CTRL_FIFO_ECC_ERR, KSTAT_DATA_ULONG, "ctrl_fifo_ecc_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_STAT_DATA_FIFO_ECC_ERR, KSTAT_DATA_ULONG, "data_fifo_ecc_err"},
b83cd2c35abe58abb09c73f2ef35426f1384ad46Michael Speer {RDC_STAT_RBR_EMPTY_FAIL, KSTAT_DATA_ULONG, "rdc_rbr_empty_fail"},
1c29f7e382074ff2792b7f30c9be898ead487a30Qiyan Sun - Sun Microsystems - San Diego United States {RDC_STAT_RBR_EMPTY_FAIL, KSTAT_DATA_ULONG, "rdc_rbr_empty_restore"},
8ad8db65d4781f61f1fd519144f555e6045100e1Michael Speer {RDC_STAT_RCR_INVALIDS, KSTAT_DATA_ULONG, "rdc_rcr_invalids"},
fd9489cef0e9b7d8a708339e560d453f230af2cfQiyan Sun - Sun Microsystems - San Diego United States {RDC_STAT_PKT_DROP, KSTAT_DATA_ULONG, "rdc_pkt_drop"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_SYS_STAT_CTRL_FIFO_SEC, KSTAT_DATA_UINT64, "rdc_ctrl_fifo_sec"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_SYS_STAT_CTRL_FIFO_DED, KSTAT_DATA_UINT64, "rdc_ctrl_fifo_ded"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_SYS_STAT_DATA_FIFO_SEC, KSTAT_DATA_UINT64, "rdc_data_fifo_sec"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RDC_SYS_STAT_DATA_FIFO_DED, KSTAT_DATA_UINT64, "tdc_data_fifo_ded"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_BYTES_WITH_PAD, KSTAT_DATA_UINT64, "tdc_bytes_with_pad"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_PEU_RESP_ERR, KSTAT_DATA_ULONG, "tdc_peu_resp_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_PKT_SIZE_ERR, KSTAT_DATA_ULONG, "tdc_pkt_size_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_RNG_OFLOW, KSTAT_DATA_ULONG, "tdc_tx_rng_oflow"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_PKT_SIZE_HDR_ERR, KSTAT_DATA_ULONG, "tdc_pkt_size_hdr_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_RUNT_PKT_DROP_ERR, KSTAT_DATA_ULONG, "tdc_runt_pkt_drop_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_PREF_PAR_ERR, KSTAT_DATA_ULONG, "tdc_pref_par_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TDR_PREF_CPL_TO, KSTAT_DATA_ULONG, "tdc_tdr_pref_cpl_to"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_PKT_CPL_TO, KSTAT_DATA_ULONG, "tdc_pkt_cpl_to"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_INVALID_SOP, KSTAT_DATA_ULONG, "tdc_invalid_sop"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_UNEXPECTED_SOP, KSTAT_DATA_ULONG, "tdc_unexpected_sop"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "tdc_count_hdr_size_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_COUNT_RUNT, KSTAT_DATA_ULONG, "tdc_count_runt"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_COUNT_ABORT, KSTAT_DATA_ULONG, "tdc_count_abort"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_NO_DESC, KSTAT_DATA_ULONG, "tdc_tx_no_desc"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_DMA_BIND_FAIL, KSTAT_DATA_ULONG, "tdc_tx_dma_bind_fail"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_HDR_PKTS, KSTAT_DATA_ULONG, "tdc_tx_hdr_pkts"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_DDI_PKTS, KSTAT_DATA_ULONG, "tdc_tx_ddi_pkts"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_JUMBO_PKTS, KSTAT_DATA_ULONG, "tdc_tx_jumbo_pkts"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {TDC_STAT_TX_MAX_PEND, KSTAT_DATA_ULONG, "tdc_tx_max_pend"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {REORD_TBL_PAR_ERR, KSTAT_DATA_UINT64, "reord_tbl_par_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {REORD_BUF_DED_ERR, KSTAT_DATA_UINT64, "reord_buf_ded_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {REORD_BUF_SEC_ERR, KSTAT_DATA_UINT64, "reord_buf_sec_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs VMAC_STAT_RX_DROP_BYTE_CNT, /* vmac_rx_drop_byte_cnt_t */
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_TX_FRAME_CNT, KSTAT_DATA_UINT64, "vmac_tx_frame_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_TX_BYTE_CNT, KSTAT_DATA_UINT64, "vmac_tx_byte_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_RX_FRAME_CNT, KSTAT_DATA_UINT64, "vmac_rx_frame_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_RX_BYTE_CNT, KSTAT_DATA_UINT64, "vmac_rx_byte_cnt"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "vmac_rx_drop_frame_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs "vmac_rx_drop_byte_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_RX_CRC_CNT, KSTAT_DATA_UINT64, "vmac_rx_crc_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_RX_PAUSE_CNT, KSTAT_DATA_UINT64, "vmac_rx_pause_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_RX_BCAST_FR_CNT, KSTAT_DATA_UINT64, "vmac_rx_bcast_fr_cnt"},
fe930412c257f961ae67039de3b164b83717976aqs {VMAC_STAT_RX_MCAST_FR_CNT, KSTAT_DATA_UINT64, "vmac_rx_mcast_fr_cnt"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_TCAM_PARITY_ERR, KSTAT_DATA_ULONG, "pfc_tcam_parity_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_VLAN_PARITY_ERR, KSTAT_DATA_ULONG, "pfc_vlan_parity_err"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_BAD_CS_COUNT, KSTAT_DATA_ULONG, "pfc_bad_cs_count"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_DROP_COUNT, KSTAT_DATA_ULONG, "pfc_drop_count"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_TCP_CTRL_DROP, KSTAT_DATA_ULONG, " pfc_pkt_drop_tcp_ctrl"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_L2_ADDR_DROP, KSTAT_DATA_ULONG, " pfc_pkt_drop_l2_addr"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs " pfc_pkt_drop_class_code"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_TCAM_DROP, KSTAT_DATA_ULONG, " pfc_pkt_drop_tcam"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {PFC_STAT_VLAN_DROP, KSTAT_DATA_ULONG, " pfc_pkt_drop_vlan"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qstypedef enum {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {CPL_DATAQ_PARERR, KSTAT_DATA_UINT64, "cpl_dataq_parerr"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RETRYRAM_XDLH_PARERR, KSTAT_DATA_UINT64, "retryram_xdlh_parerr"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs {RETRYSOTRAM_XDLH_PARERR, KSTAT_DATA_UINT64, "retrysotram_xdlh_parerr"},
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_rxstat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_tx_ring_stats_t)&hxgep->statsp->tdc_stats[channel];
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "hxge_tdc_stat_update data $%p statsp $%p channel %d",
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->obytes_with_pad.value.ull = statsp->obytes_with_pad;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tx_hdr_pkts.value.ull = statsp->tx_hdr_pkts;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tx_ddi_pkts.value.ull = statsp->tx_ddi_pkts;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tx_jumbo_pkts.value.ull = statsp->tx_jumbo_pkts;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tx_max_pend.value.ull = statsp->tx_max_pend;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->peu_resp_err.value.ul = statsp->peu_resp_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->pkt_size_err.value.ul = statsp->pkt_size_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tx_rng_oflow.value.ul = statsp->tx_rng_oflow;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->pkt_size_hdr_err.value.ul = statsp->pkt_size_hdr_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->runt_pkt_drop_err.value.ul = statsp->runt_pkt_drop_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->pref_par_err.value.ul = statsp->pref_par_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tdr_pref_cpl_to.value.ul = statsp->tdr_pref_cpl_to;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->unexpected_sop.value.ul = statsp->unexpected_sop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs tdc_kstatsp->tx_dma_bind_fail.value.ul = statsp->tx_dma_bind_fail;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, " <== hxge_tdc_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_tdc_sys_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_tdc_sys_stats_t)&hxgep->statsp->tdc_sys_stats;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "hxge_tdc_sys_stat_update %llx",
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, " <== hxge_tdc_sys_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_rdc_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_rx_ring_stats_t)&hxgep->statsp->rdc_stats[channel];
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "hxge_rdc_stat_update $%p statsp $%p channel %d",
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->rcr_unknown_err.value.ul = statsp->rcr_unknown_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->rcr_sha_par_err.value.ul = statsp->rcr_sha_par;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->rbr_pre_par_err.value.ul = statsp->rbr_pre_par;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->rbr_pre_emty.value.ul = statsp->rbr_pre_empty;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->rcr_shadow_full.value.ul = statsp->rcr_shadow_full;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->peu_resp_err.value.ul = statsp->peu_resp_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->ctrl_fifo_ecc_err.value.ul = statsp->ctrl_fifo_ecc_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_kstatsp->data_fifo_ecc_err.value.ul = statsp->data_fifo_ecc_err;
b83cd2c35abe58abb09c73f2ef35426f1384ad46Michael Speer rdc_kstatsp->rbr_empty_fail.value.ul = statsp->rbr_empty_fail;
1c29f7e382074ff2792b7f30c9be898ead487a30Qiyan Sun - Sun Microsystems - San Diego United States rdc_kstatsp->rbr_empty_restore.value.ul = statsp->rbr_empty_restore;
8ad8db65d4781f61f1fd519144f555e6045100e1Michael Speer rdc_kstatsp->rcr_invalids.value.ul = statsp->rcr_invalids;
fd9489cef0e9b7d8a708339e560d453f230af2cfQiyan Sun - Sun Microsystems - San Diego United States rdc_kstatsp->pkt_drop.value.ul = statsp->pkt_drop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, " <== hxge_rdc_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_rdc_sys_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_rdc_sys_stats_t)&hxgep->statsp->rdc_sys_stats;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "hxge_rdc_sys_stat_update %llx",
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_sys_kstatsp->ctrl_fifo_sec.value.ul = statsp->ctrl_fifo_sec;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_sys_kstatsp->ctrl_fifo_ded.value.ul = statsp->ctrl_fifo_ded;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_sys_kstatsp->data_fifo_sec.value.ul = statsp->data_fifo_sec;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs rdc_sys_kstatsp->data_fifo_ded.value.ul = statsp->data_fifo_ded;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, " <== hxge_rdc_sys_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_vmac_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_vmac_stats_t)&hxgep->statsp->vmac_stats;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->tx_frame_cnt.value.ul = statsp->tx_frame_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->tx_byte_cnt.value.ul = statsp->tx_byte_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_frame_cnt.value.ul = statsp->rx_frame_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_byte_cnt.value.ul = statsp->rx_byte_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_drop_frame_cnt.value.ul = statsp->rx_drop_frame_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_drop_byte_cnt.value.ul = statsp->rx_drop_byte_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_pause_cnt.value.ul = statsp->rx_pause_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_bcast_fr_cnt.value.ul = statsp->rx_bcast_fr_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs vmac_kstatsp->rx_mcast_fr_cnt.value.ul = statsp->rx_mcast_fr_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_vmac_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_pfc_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_tcam_parity_err.value.ul = statsp->tcam_parity_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_vlan_parity_err.value.ul = statsp->vlan_parity_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_bad_cs_count.value.ul = statsp->bad_cs_count;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_tcp_ctrl_drop.value.ul = statsp->errlog.tcp_ctrl_drop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_l2_addr_drop.value.ul = statsp->errlog.l2_addr_drop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_class_code_drop.value.ul = statsp->errlog.class_code_drop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_tcam_drop.value.ul = statsp->errlog.tcam_drop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstatsp->pfc_vlan_drop.value.ul = statsp->errlog.vlan_drop;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_pfc_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_mmac_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_mmac_stats_t)&hxgep->statsp->mmac_stats;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs mmac_kstatsp->mmac_max_addr_cnt.value.ul = statsp->mmac_max_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs mmac_kstatsp->mmac_avail_addr_cnt.value.ul = statsp->mmac_avail_cnt;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_mmac_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_peu_sys_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs statsp = (p_hxge_peu_sys_stats_t)&hxgep->statsp->peu_sys_stats;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->tdc_pioacc_err.value.ul = statsp->tdc_pioacc_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->rdc_pioacc_err.value.ul = statsp->rdc_pioacc_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->pfc_pioacc_err.value.ul = statsp->pfc_pioacc_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->vmac_pioacc_err.value.ul = statsp->vmac_pioacc_err;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->cpl_hdrq_parerr.value.ul = statsp->cpl_hdrq_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->cpl_dataq_parerr.value.ul = statsp->cpl_dataq_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->p_hdrq_parerr.value.ul = statsp->p_hdrq_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->p_dataq_parerr.value.ul = statsp->p_dataq_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->np_hdrq_parerr.value.ul = statsp->np_hdrq_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->np_dataq_parerr.value.ul = statsp->np_dataq_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs peu_kstatsp->eic_msix_parerr.value.ul = statsp->eic_msix_parerr;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_peu_sys_stat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qshxge_setup_local_kstat(p_hxge_t hxgep, int instance, char *name,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs ksp = kstat_create(HXGE_DRIVER_NAME, instance, name, "net",
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_setup_kstats"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup RDC statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgep->statsp->rdc_ksp[i] = hxge_setup_local_kstat(hxgep,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "kstat_create failed for rdc channel %d", i);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup RDC System statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgep->statsp->rdc_sys_ksp = hxge_setup_local_kstat(hxgep,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup TDC statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgep->statsp->tdc_ksp[i] = hxge_setup_local_kstat(hxgep,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "kstat_create failed for tdc channel %d", i);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup TDC System statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgep->statsp->tdc_sys_ksp = hxge_setup_local_kstat(hxgep,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup PFC statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup VMAC statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup MMAC statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs (void) sprintf(mmac_name, "MMAC Stats%d", hxgep->instance);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs &hxge_mmac_stats[0], MMAC_STATS_END, hxge_mmac_stat_update);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Setup PEU System statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgep->statsp->peu_sys_ksp = hxge_setup_local_kstat(hxgep,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* Port stats */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs if ((ksp = kstat_create(HXGE_DRIVER_NAME, hxgep->instance,
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->cap_10gfdx, "cap_10gfdx", KSTAT_DATA_ULONG);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Link partner capabilities.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->lp_cap_10gfdx, "lp_cap_10gfdx",
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Shared link setup.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->link_speed, "link_speed", KSTAT_DATA_ULONG);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->link_duplex, "link_duplex", KSTAT_DATA_CHAR);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->link_up, "link_up", KSTAT_DATA_ULONG);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Loopback statistics.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->lb_mode, "lb_mode", KSTAT_DATA_ULONG);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs /* General MAC statistics */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->ifspeed, "ifspeed", KSTAT_DATA_UINT64);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs kstat_named_init(&hxgekp->promisc, "promisc", KSTAT_DATA_CHAR);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_setup_kstats"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_destroy_kstats"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs for (channel = 0; channel < p_cfgp->max_rdcs; channel++) {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs for (channel = 0; channel < p_cfgp->max_tdcs; channel++) {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_destroy_kstats"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs/* ARGSUSED */
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (-1);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "==> hxge_port_kstat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgekp->ifspeed.value.ul = statsp->mac_stats.link_speed * 1000000ULL;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * transceiver state informations.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgekp->cap_10gfdx.value.ul = statsp->mac_stats.cap_10gfdx;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Link partner capabilities.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgekp->lp_cap_10gfdx.value.ul = statsp->mac_stats.lp_cap_10gfdx;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Physical link statistics.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs hxgekp->link_speed.value.ul = statsp->mac_stats.link_speed;
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Loopback statistics.
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs HXGE_DEBUG_MSG((hxgep, KST_CTL, "<== hxge_port_kstat_update"));
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs switch (stat) {
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * No similar error in Hydra receive channels
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * No similar error in Hydra receive channels
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * A count of frames for which transmission on a
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * particular interface fails due to an internal
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * MAC sublayer transmit error
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * The number of times that the carrier sense
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * condition was lost or never asserted when
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * attempting to transmit a frame on a particular interface
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * A count of frames received on a particular
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * interface that exceed the maximum permitted frame size
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs * Shouldn't reach here...
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs "hxge_m_stat: unrecognized parameter value = 0x%x", stat);
3dec9fcdd56adf1b4a563137b4915c8f2d83b881qs return (0);