015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra/*
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * CDDL HEADER START
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra *
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * The contents of this file are subject to the terms of the
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * Common Development and Distribution License (the "License").
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * You may not use this file except in compliance with the License.
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra *
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * or http://www.opensolaris.org/os/licensing.
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * See the License for the specific language governing permissions
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * and limitations under the License.
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra *
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * When distributing Covered Code, include this CDDL HEADER in each
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * If applicable, add the following below this CDDL HEADER, with the
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * fields enclosed by brackets "[]" replaced with your own identifying
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * information: Portions Copyright [yyyy] [name of copyright owner]
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra *
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * CDDL HEADER END
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra */
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra/*
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills * Use is subject to license terms.
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills */
9d8d9e1151895fac86a2e3216647dd2a020ecf71Garrett D'Amore
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra#ifndef _SYS_NXGE_NXGE_MAC_H
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define _SYS_NXGE_NXGE_MAC_H
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#pragma ident "%Z%%M% %I% %E% SMI"
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#ifdef __cplusplus
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Millsextern "C" {
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#endif
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#include <nxge_mac_hw.h>
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#include <npi_mac.h>
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_MTU_DEFAULT_MAX 1522 /* 0x5f2 */
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_DEFAULT_MTU 1500 /* 0x5dc */
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_MIN_MAC_FRAMESIZE 64
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_MAX_MAC_FRAMESIZE NXGE_MTU_DEFAULT_MAX
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills/*
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills * Maximum MTU: maximum frame size supported by the
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills * hardware (9216) - (22).
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills * (22 = ether header size (including VLAN) - CRC size (4)).
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills */
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_EHEADER_VLAN_CRC (sizeof (struct ether_header) + ETHERFCSL + 4)
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_MAXIMUM_MTU (TX_JUMBO_MTU - NXGE_EHEADER_VLAN_CRC)
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#define NXGE_XMAC_TX_INTRS (ICFG_XMAC_TX_ALL & \
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills ~(ICFG_XMAC_TX_FRAME_XMIT |\
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills ICFG_XMAC_TX_BYTE_CNT_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_TX_FRAME_CNT_EXP))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra#define NXGE_XMAC_RX_INTRS (ICFG_XMAC_RX_ALL & \
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ~(ICFG_XMAC_RX_FRAME_RCVD |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_OCT_CNT_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT1_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT2_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT3_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT4_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT5_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT6_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_BCAST_CNT_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_MCAST_CNT_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_XMAC_RX_HST_CNT7_EXP))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra#define NXGE_BMAC_TX_INTRS (ICFG_BMAC_TX_ALL & \
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ~(ICFG_BMAC_TX_FRAME_SENT |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_BMAC_TX_BYTE_CNT_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_BMAC_TX_FRAME_CNT_EXP))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra#define NXGE_BMAC_RX_INTRS (ICFG_BMAC_RX_ALL & \
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ~(ICFG_BMAC_RX_FRAME_RCVD |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_BMAC_RX_FRAME_CNT_EXP |\
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ICFG_BMAC_RX_BYTE_CNT_EXP))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misratypedef enum {
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra LINK_NO_CHANGE,
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra LINK_IS_UP,
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra LINK_IS_DOWN
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra} nxge_link_state_t;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra/* Common MAC statistics */
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misratypedef struct _nxge_mac_stats {
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills /*
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * MTU size
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra */
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t mac_mtu;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint16_t rev_id;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills /*
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills * Transciever state informations.
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra */
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t xcvr_inits;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra xcvr_inuse_t xcvr_inuse;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t xcvr_portn;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t xcvr_id;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t serdes_inits;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t serdes_portn;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_autoneg;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_10gfdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_10ghdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_1000fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_1000hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_100T4;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_100fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_100hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_10fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_10hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_asmpause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t cap_pause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra /*
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * Advertised capabilities.
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra */
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_autoneg;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_10gfdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_10ghdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_1000fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_1000hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_100T4;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_100fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_100hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_10fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_10hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_asmpause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t adv_cap_pause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra /*
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * Link partner capabilities.
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra */
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t lp_cap_autoneg;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t lp_cap_10gfdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_10ghdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_1000fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_1000hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_100T4;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_100fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_100hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_10fdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_10hdx;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_asmpause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t lp_cap_pause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra /*
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra * Physical link statistics.
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra */
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t link_T4;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t link_speed;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t link_duplex;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t link_asmpause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t link_pause;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t link_up;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra /* Promiscous mode */
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra boolean_t promisc;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra} nxge_mac_stats_t;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra/* XMAC Statistics */
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misratypedef struct _nxge_xmac_stats {
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t tx_frame_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t tx_underflow_err;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t tx_maxpktsize_err;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t tx_overflow_err;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t tx_fifo_xfr_err;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint64_t tx_byte_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_frame_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_underflow_err;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_overflow_err;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_crc_err_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_len_err_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_viol_err_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint64_t rx_byte_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint64_t rx_hist1_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint64_t rx_hist2_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint64_t rx_hist3_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint64_t rx_hist4_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint64_t rx_hist5_cnt;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint64_t rx_hist6_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint64_t rx_hist7_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint64_t rx_broadcast_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint64_t rx_mult_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t rx_frag_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_frame_align_err_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t rx_linkfault_err_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t rx_remotefault_err;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t rx_localfault_err;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t rx_pause_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t tx_pause_state;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t tx_nopause_state;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t xpcs_deskew_err_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t xpcs_ln0_symbol_err_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t xpcs_ln1_symbol_err_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t xpcs_ln2_symbol_err_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t xpcs_ln3_symbol_err_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills} nxge_xmac_stats_t, *p_nxge_xmac_stats_t;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills/* BMAC Statistics */
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Millstypedef struct _nxge_bmac_stats {
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint64_t tx_frame_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t tx_underrun_err;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t tx_max_pkt_err;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint64_t tx_byte_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint64_t rx_frame_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint64_t rx_byte_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_overflow_err;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_align_err_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_crc_err_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_len_err_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_viol_err_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t rx_pause_cnt;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t tx_pause_state;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t tx_nopause_state;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra} nxge_bmac_stats_t, *p_nxge_bmac_stats_t;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misratypedef struct _hash_filter_t {
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint_t hash_ref_cnt;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint16_t hash_filter_regs[NMCFILTER_REGS];
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t hash_bit_ref_cnt[NMCFILTER_BITS];
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra} hash_filter_t, *p_hash_filter_t;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Millstypedef struct _nxge_mac {
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint8_t portnum;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra nxge_port_t porttype;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra nxge_port_mode_t portmode;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra nxge_linkchk_mode_t linkchkmode;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra boolean_t is_jumbo;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint32_t tx_config;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_config;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t xif_config;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t tx_iconfig;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t rx_iconfig;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint32_t ctl_iconfig;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint16_t minframesize;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint16_t maxframesize;
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra uint16_t maxburstsize;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint16_t ctrltype;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint16_t pa_size;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint8_t ipg[3];
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra struct ether_addr mac_addr;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra struct ether_addr alt_mac_addr[MAC_MAX_ALT_ADDR_ENTRY];
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra struct ether_addr mac_addr_filter;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra uint16_t hashtab[MAC_MAX_HASH_ENTRY];
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra hostinfo_t hostinfo[MAC_MAX_HOST_INFO_ENTRY];
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra nxge_mac_stats_t *mac_stats;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra nxge_xmac_stats_t *xmac_stats;
0eb090a7674ebcdcb1c35501097edeb5f2395459Saurabh Misra nxge_bmac_stats_t *bmac_stats;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills uint32_t default_mtu;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills} nxge_mac_t;
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#ifdef __cplusplus
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills}
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#endif
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills#endif /* _SYS_NXGE_NXGE_MAC_H */
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills