36#define BITS_PER_LONG 32
38#define BITS_PER_LONG 64
45 uint32_t lo = *(hiref + 1);
46#if (BITS_PER_LONG == 64)
108 " drv_stats_counter %d\n"
110 " stats_counters_addrs %x %x\n",
160 "sending statistics ramrod %d\n",
185 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
207 memset(dmae, 0,
sizeof(
struct dmae_cmd));
213 (loader_idx + 1)) >> 2);
215 dmae->len =
sizeof(
struct dmae_cmd) >> 2;
234 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
239 BLOGE(sc,
"Timeout waiting for stats finished\n");
241 taskqueue_enqueue_timeout(taskqueue_thread,
264 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
325 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
392 rx_stat_falsecarriererrors));
395 rx_stat_falsecarriererrors));
408 tx_stat_ifhcoutoctets));
411 tx_stat_ifhcoutoctets));
417 uint32_t tx_src_addr_lo, rx_src_addr_lo;
418 uint16_t rx_len, tx_len;
500 egress_mac_pkt0_lo));
503 egress_mac_pkt0_lo));
504 dmae->len = ((2 *
sizeof(uint32_t)) >> 2);
517 egress_mac_pkt1_lo));
520 egress_mac_pkt1_lo));
521 dmae->len = ((2 *
sizeof(uint32_t)) >> 2);
536 dmae->len = (
sizeof(
struct nig_stats) - 4*
sizeof(uint32_t)) >> 2;
549 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
558 memset(dmae, 0,
sizeof(
struct dmae_cmd));
636 UPDATE_STAT64(rx_stat_grund, rx_stat_etherstatsundersizepkts);
637 UPDATE_STAT64(rx_stat_grovr, rx_stat_dot3statsframestoolong);
640 UPDATE_STAT64(rx_stat_grxcf, rx_stat_maccontrolframesreceived);
648 tx_stat_etherstatspkts65octetsto127octets);
650 tx_stat_etherstatspkts128octetsto255octets);
652 tx_stat_etherstatspkts256octetsto511octets);
654 tx_stat_etherstatspkts512octetsto1023octets);
656 tx_stat_etherstatspkts1024octetsto1522octets);
662 tx_stat_dot3statsinternalmactransmiterrors);
671 UPDATE_STAT64(rx_stat_grund, rx_stat_etherstatsundersizepkts);
672 UPDATE_STAT64(rx_stat_grovr, rx_stat_dot3statsframestoolong);
675 UPDATE_STAT64(rx_stat_grxcf, rx_stat_maccontrolframesreceived);
682 tx_stat_etherstatspkts65octetsto127octets);
684 tx_stat_etherstatspkts128octetsto255octets);
686 tx_stat_etherstatspkts256octetsto511octets);
688 tx_stat_etherstatspkts512octetsto1023octets);
690 tx_stat_etherstatspkts1024octetsto1522octets);
696 tx_stat_dot3statsinternalmactransmiterrors);
752 tx_stat_etherstatspkts512octetsto1023octets);
754 tx_stat_etherstatspkts1024octetsto1522octets);
888 "stats updated by DMAE but no MAC active\n");
892 BLOGE(sc,
"stats update failed, unknown MAC type\n");
902 etherstatspkts1024octetsto1522octets);
904 etherstatspktsover1522octets);
907 memcpy(old,
new,
sizeof(
struct nig_stats));
928 BLOGE(sc,
"invalid NIG timer max (%u)\n",
940 uint16_t cur_stats_counter;
953 "stats not updated by xstorm, "
954 "counter 0x%x != stats_counter 0x%x\n",
961 "stats not updated by ustorm, "
962 "counter 0x%x != stats_counter 0x%x\n",
969 "stats not updated by cstorm, "
970 "counter 0x%x != stats_counter 0x%x\n",
977 "stats not updated by tstorm, "
978 "counter 0x%x != stats_counter 0x%x\n",
1023 "queue[%d]: ucast_sent 0x%x bcast_sent 0x%x mcast_sent 0x%x\n",
1030 total_broadcast_bytes_received);
1032 total_multicast_bytes_received);
1034 total_unicast_bytes_received);
1062 etherstatsoverrsizepkts, 32);
1067 total_multicast_packets_received);
1069 total_broadcast_packets_received);
1075 total_broadcast_bytes_transmitted);
1077 total_multicast_bytes_transmitted);
1079 total_unicast_bytes_transmitted);
1101 total_unicast_packets_transmitted);
1103 total_multicast_packets_transmitted);
1105 total_broadcast_packets_transmitted);
1108 total_packets_received_checksum_discarded);
1110 total_packets_received_ttl0_discarded);
1113 total_transmitted_dropped_packets_error);
1150 UPDATE_ESTAT(etherstatsoverrsizepkts, rx_stat_dot3statsframestoolong);
1177 if_inc_counter(sc->
ifp, IFCOUNTER_IQDROPS,
1187 sc = if_getsoftc(ifp);
1191 case IFCOUNTER_IPACKETS:
1195 case IFCOUNTER_OPACKETS:
1199 case IFCOUNTER_IBYTES:
1201 case IFCOUNTER_OBYTES:
1203 case IFCOUNTER_IERRORS:
1211 case IFCOUNTER_OERRORS:
1214 case IFCOUNTER_IMCASTS:
1216 case IFCOUNTER_COLLISIONS:
1221 return (if_get_counter_default(ifp, cnt));
1290 val =
SHMEM2_RD(sc, edebug_driver_if[1]);
1303 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
1320 if (if_getdrvflags(sc->
ifp) & IFF_DRV_RUNNING) {
1321 BLOGE(sc,
"Storm stats not updated for 3 times, resetting\n");
1323 taskqueue_enqueue_timeout(taskqueue_thread,
1355 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
1407 uint8_t update = FALSE;
1435static const struct {
1458 if (__predict_false(sc->
panic)) {
1471 "state %d -> event %d -> state %d\n",
1480 uint32_t *stats_comp =
BXE_SP(sc, stats_comp);
1484 BLOGE(sc,
"BUG!\n");
1516 int first_queue_query_index;
1518 bus_addr_t cur_data_offset;
1728 void *void_afex_stats,
1729 uint32_t stats_type)
uint32_t bxe_dmae_opcode_clr_src_reset(uint32_t opcode)
uint32_t bxe_dmae_opcode(struct bxe_softc *sc, uint8_t src_type, uint8_t dst_type, uint8_t with_comp, uint8_t comp_type)
void bxe_post_dmae(struct bxe_softc *sc, struct dmae_cmd *dmae, int idx)
int bxe_sp_post(struct bxe_softc *sc, int command, int cid, uint32_t data_hi, uint32_t data_lo, int cmd_type)
uint32_t bxe_dmae_opcode_add_comp(uint32_t opcode, uint8_t comp_type)
#define BXE_SP_MAPPING(sc, var)
#define SHMEM2_RD(sc, field)
#define BXE_SET_ERROR_BIT(sc, error)
static uint8_t bxe_stats_id(struct bxe_fastpath *fp)
static const uint32_t dmae_reg_go_c[]
#define BXE_STATS_LOCK(sc)
#define DMAE_LEN32_RD_MAX
#define SHMEM2_HAS(sc, field)
#define DBASSERT(sc, exp, msg)
#define CHIP_REV_IS_SLOW(sc)
@ BXE_FIRST_QUEUE_QUERY_IDX
#define REG_RD(sc, offset)
#define BLOGE(sc, format, args...)
#define BLOGD(sc, codepath, format, args...)
#define SHMEM_RD(sc, field)
#define BXE_STATS_UNLOCK(sc)
#define REG_RD_DMAE(sc, offset, valp, len32)
#define ELINK_MAC_TYPE_BMAC
#define ELINK_MAC_TYPE_EMAC
#define ELINK_MAC_TYPE_NONE
#define ELINK_MAC_TYPE_UMAC
#define ELINK_MAC_TYPE_XMAC
void bxe_save_statistics(struct bxe_softc *sc)
static void bxe_prep_fw_stats_req(struct bxe_softc *sc)
static void bxe_func_stats_init(struct bxe_softc *sc)
static long bxe_hilo(uint32_t *hiref)
static void bxe_dp_stats(struct bxe_softc *sc)
static uint16_t bxe_get_port_stats_dma_len(struct bxe_softc *sc)
static void bxe_storm_stats_post(struct bxe_softc *sc)
static void bxe_mstat_stats_update(struct bxe_softc *sc)
uint64_t bxe_get_counter(if_t ifp, ift_counter cnt)
static void bxe_bmac_stats_update(struct bxe_softc *sc)
void bxe_afex_collect_stats(struct bxe_softc *sc, void *void_afex_stats, uint32_t stats_type)
static void bxe_stats_start(struct bxe_softc *sc)
static void bxe_net_stats_update(struct bxe_softc *sc)
static void bxe_hw_stats_post(struct bxe_softc *sc)
static void bxe_emac_stats_update(struct bxe_softc *sc)
static void bxe_stats_update(struct bxe_softc *sc)
static void bxe_stats_pmf_start(struct bxe_softc *sc)
static void bxe_stats_do_nothing(struct bxe_softc *sc)
static void bxe_stats_stop(struct bxe_softc *sc)
static void bxe_port_stats_stop(struct bxe_softc *sc)
static uint8_t bxe_edebug_stats_stopped(struct bxe_softc *sc)
void(* action)(struct bxe_softc *sc)
void bxe_stats_init(struct bxe_softc *sc)
static void bxe_port_stats_init(struct bxe_softc *sc)
void bxe_stats_handle(struct bxe_softc *sc, enum bxe_stats_event event)
static void bxe_stats_restart(struct bxe_softc *sc)
static void bxe_drv_stats_update(struct bxe_softc *sc)
static int bxe_hw_stats_update(struct bxe_softc *sc)
static int bxe_storm_stats_update(struct bxe_softc *sc)
static void bxe_stats_pmf_update(struct bxe_softc *sc)
static int bxe_storm_stats_validate_counters(struct bxe_softc *sc)
static const struct @14 bxe_stats_stm[STATS_STATE_MAX][STATS_EVENT_MAX]
enum bxe_stats_state next_state
static int bxe_stats_comp(struct bxe_softc *sc)
static void bxe_port_stats_base_init(struct bxe_softc *sc)
#define UPDATE_ESTAT_QSTAT_64(s)
#define UPDATE_ESTAT(s, t)
#define UPDATE_QSTAT_OLD(f)
#define ADD_EXTEND_64(s_hi, s_lo, a)
#define ADD_64_LE(s_hi, a_hi_le, s_lo, a_lo_le)
#define UPDATE_ESTAT_QSTAT(s)
#define UPDATE_EXTEND_TSTAT(s, t)
#define UPDATE_QSTAT(s, t)
#define UPDATE_FW_STAT_OLD(f)
#define UPDATE_FW_STAT(s)
#define UPDATE_STAT64_NIG(s, t)
#define SUB_EXTEND_USTAT(s, t)
#define UPDATE_EXTEND_E_USTAT(s, t)
#define UPDATE_FSTAT_QSTAT(s)
#define UPDATE_EXTEND_XSTAT(s, t)
#define UPDATE_STAT64(s, t)
#define ADD_STAT64(diff, t)
#define UPDATE_EXTEND_STAT(s)
#define UPDATE_EXTEND_E_TSTAT(s, t, size)
#define ADD_64(s_hi, a_hi, s_lo, a_lo)
@ RAMROD_CMD_ID_COMMON_STAT_QUERY
#define EDEBUG_DRIVER_IF_OP_CODE_DISABLE_STAT
#define VICSTATST_UIF_INDEX
#define REQ_BC_VER_4_PFC_STATS_SUPPORTED
#define BIGMAC_REGISTER_RX_STAT_GRIPJ
#define NIG_REG_STAT0_EGRESS_MAC_PKT0
#define MSTAT_REG_RX_STAT_GR64_LO
#define NIG_REG_STAT0_BRB_DISCARD
#define BIGMAC2_REGISTER_TX_STAT_GTPOK
#define BIGMAC_REGISTER_TX_STAT_GTPKT
#define MSTAT_REG_TX_STAT_GTXPOK_LO
#define BIGMAC2_REGISTER_RX_STAT_GRIPJ
#define EMAC_REG_EMAC_TX_STAT_AC_COUNT
#define EMAC_REG_EMAC_RX_STAT_AC
#define BIGMAC2_REGISTER_RX_STAT_GR64
#define EMAC_REG_EMAC_TX_STAT_AC
#define NIG_REG_STAT0_BRB_TRUNCATE
#define BIGMAC2_REGISTER_TX_STAT_GTBYT
#define BIGMAC_REGISTER_TX_STAT_GTBYT
#define NIG_REG_INGRESS_BMAC0_MEM
#define NIG_REG_STAT1_EGRESS_MAC_PKT0
#define BIGMAC_REGISTER_RX_STAT_GR64
#define NIG_REG_STAT1_EGRESS_MAC_PKT1
#define MISC_REG_CPMU_LP_SM_ENT_CNT_P0
#define MISC_REG_CPMU_LP_SM_ENT_CNT_P1
#define NIG_REG_STAT1_BRB_DISCARD
#define NIG_REG_STAT0_EGRESS_MAC_PKT1
#define EMAC_REG_EMAC_RX_STAT_AC_28
#define EMAC_REG_EMAC_RX_STAT_AC_COUNT
#define NIG_REG_INGRESS_BMAC1_MEM
uint32_t tx_multicast_bytes_lo
uint32_t rx_frames_discarded_lo
uint32_t tx_unicast_bytes_lo
uint32_t rx_multicast_bytes_hi
uint32_t rx_multicast_frames_hi
uint32_t rx_broadcast_frames_lo
uint32_t tx_unicast_bytes_hi
uint32_t tx_multicast_frames_hi
uint32_t rx_unicast_bytes_lo
uint32_t tx_frames_dropped_lo
uint32_t tx_multicast_frames_lo
uint32_t rx_broadcast_frames_hi
uint32_t rx_unicast_frames_hi
uint32_t rx_multicast_frames_lo
uint32_t tx_frames_dropped_hi
uint32_t rx_broadcast_bytes_lo
uint32_t rx_multicast_bytes_lo
uint32_t rx_frames_dropped_hi
uint32_t rx_frames_discarded_hi
uint32_t tx_broadcast_bytes_hi
uint32_t tx_broadcast_frames_lo
uint32_t rx_broadcast_bytes_hi
uint32_t tx_unicast_frames_hi
uint32_t tx_unicast_frames_lo
uint32_t rx_frames_dropped_lo
uint32_t rx_unicast_bytes_hi
uint32_t tx_broadcast_bytes_lo
uint32_t rx_unicast_frames_lo
uint32_t tx_broadcast_frames_hi
uint32_t tx_multicast_bytes_hi
uint32_t total_unicast_bytes_received_lo
uint32_t total_broadcast_bytes_received_lo
uint32_t total_unicast_bytes_received_hi
uint32_t total_unicast_bytes_transmitted_hi
uint32_t total_broadcast_bytes_transmitted_lo
uint32_t total_multicast_bytes_received_hi
uint32_t total_tpa_bytes_lo
uint32_t total_multicast_bytes_transmitted_lo
uint32_t total_multicast_bytes_received_lo
uint32_t total_tpa_bytes_hi
uint32_t total_broadcast_bytes_transmitted_hi
uint32_t total_unicast_bytes_transmitted_lo
uint32_t total_broadcast_bytes_received_hi
uint32_t total_multicast_bytes_transmitted_hi
uint32_t total_unicast_bytes_received_hi
uint32_t total_packets_received_checksum_discarded_lo
uint32_t total_unicast_packets_transmitted_hi
uint32_t total_packets_received_checksum_discarded_hi
uint32_t valid_bytes_received_lo
uint32_t total_multicast_packets_transmitted_hi
uint32_t total_broadcast_bytes_received_lo
uint32_t total_multicast_packets_transmitted_lo
uint32_t total_unicast_bytes_received_lo
uint32_t total_multicast_packets_received_lo
uint32_t total_bytes_received_hi
uint32_t total_unicast_packets_received_hi
uint32_t total_packets_received_ttl0_discarded_lo
uint32_t total_broadcast_packets_received_lo
uint32_t total_broadcast_bytes_transmitted_hi
uint32_t total_unicast_bytes_transmitted_lo
uint32_t total_bytes_transmitted_lo
uint32_t total_multicast_bytes_received_lo
uint32_t total_multicast_bytes_received_hi
uint32_t total_broadcast_bytes_transmitted_lo
uint32_t no_buff_discard_hi
uint32_t total_transmitted_dropped_packets_error_hi
uint32_t total_bytes_transmitted_hi
uint32_t total_unicast_packets_transmitted_lo
uint32_t total_multicast_packets_received_hi
uint32_t total_transmitted_dropped_packets_error_lo
uint32_t total_unicast_packets_received_lo
uint32_t total_multicast_bytes_transmitted_lo
uint32_t total_broadcast_packets_received_hi
uint32_t total_broadcast_packets_transmitted_hi
uint32_t total_multicast_bytes_transmitted_hi
uint32_t no_buff_discard_lo
uint32_t valid_bytes_received_hi
uint32_t total_unicast_bytes_transmitted_hi
uint32_t etherstatsoverrsizepkts_lo
uint32_t total_bytes_received_lo
uint32_t total_broadcast_packets_transmitted_lo
uint32_t total_broadcast_bytes_received_hi
uint32_t etherstatsoverrsizepkts_hi
uint32_t total_packets_received_ttl0_discarded_hi
uint32_t tx_stat_dot3statsinternalmactransmiterrors_hi
uint32_t total_unicast_packets_received_hi
uint32_t pause_frames_sent_hi
uint32_t pause_frames_received_hi
uint32_t error_bytes_received_lo
uint32_t total_unicast_packets_transmitted_hi
uint32_t total_multicast_packets_received_hi
uint32_t etherstatspktsover1522octets_lo
uint32_t mac_filter_discard
uint32_t tx_stat_etherstatscollisions_hi
uint32_t tx_stat_dot3statsexcessivecollisions_hi
uint32_t rx_stat_dot3statsfcserrors_hi
uint32_t etherstatspkts1024octetsto1522octets_lo
uint32_t pause_frames_received_lo
uint32_t rx_stat_dot3statscarriersenseerrors_hi
uint32_t etherstatspktsover1522octets_hi
uint32_t error_bytes_received_hi
uint32_t total_multicast_packets_transmitted_hi
uint32_t rx_stat_etherstatsundersizepkts_hi
uint32_t pfc_frames_received_hi
uint32_t pause_frames_sent_lo
uint32_t total_bytes_transmitted_hi
uint32_t etherstatspkts1024octetsto1522octets_hi
uint32_t total_broadcast_packets_transmitted_hi
uint32_t rx_stat_ifhcinbadoctets_lo
uint32_t rx_stat_ifhcinbadoctets_hi
uint32_t tx_stat_dot3statslatecollisions_hi
uint32_t pfc_frames_sent_hi
uint32_t brb_truncate_discard
uint32_t pfc_frames_sent_lo
uint32_t no_buff_discard_hi
uint32_t etherstatsoverrsizepkts_hi
uint32_t total_broadcast_packets_received_hi
uint32_t total_bytes_received_hi
uint32_t rx_stat_dot3statsalignmenterrors_hi
uint32_t total_bytes_received_lo
uint32_t pfc_frames_received_lo
struct tstorm_per_queue_stats old_tclient
struct bxe_eth_q_stats eth_q_stats
struct ustorm_per_queue_stats old_uclient
struct xstorm_per_queue_stats old_xclient
struct bxe_eth_q_stats_old eth_q_stats_old
uint32_t pfc_frames_tx_lo
uint32_t pfc_frames_tx_hi
uint32_t brb_truncate_discard
uint32_t mac_filter_discard
uint32_t pfc_frames_rx_hi
uint32_t pfc_frames_rx_lo
struct per_port_stats port
struct stats_counter storm_counters
struct per_queue_stats queue_stats[1]
struct stats_query_entry query[FP_SB_MAX_E1x+BXE_FIRST_QUEUE_QUERY_IDX]
struct stats_query_header hdr
struct nig_stats old_nig_stats
union mac_stats mac_stats
struct bxe_eth_stats_old eth_stats_old
struct bxe_net_stats_old net_stats_old
struct host_func_stats func_stats
struct bxe_fw_stats_data * fw_stats_data
struct dmae_cmd stats_dmae
struct bxe_fw_stats_req * fw_stats_req
struct bxe_fastpath fp[MAX_RSS_CHAINS]
struct elink_vars link_vars
struct bxe_eth_stats eth_stats
bus_addr_t fw_stats_req_mapping
struct bxe_devinfo devinfo
struct timeout_task sp_err_timeout_task
struct bxe_fw_port_stats_old fw_stats_old
bus_addr_t fw_stats_data_mapping
uint32_t host_func_stats_start
uint32_t host_func_stats_end
uint32_t host_port_stats_counter
struct mac_stx mac_stx[MAC_STX_IDX_MAX]
uint32_t pfc_frames_tx_hi
uint32_t pfc_frames_rx_lo
uint32_t pfc_frames_tx_lo
uint32_t pfc_frames_rx_hi
uint32_t tx_stat_outxonsent_hi
uint32_t tx_stat_mac_2047_hi
uint32_t tx_stat_mac_16383_hi
uint32_t tx_stat_mac_16383_lo
uint32_t rx_stat_xoffpauseframesreceived_hi
uint32_t rx_stat_xoffpauseframesreceived_lo
uint32_t rx_stat_xonpauseframesreceived_hi
uint32_t tx_stat_mac_2047_lo
uint32_t tx_stat_outxoffsent_lo
uint32_t tx_stat_mac_4095_hi
uint32_t rx_stat_mac_xpf_lo
uint32_t tx_stat_outxoffsent_hi
uint32_t tx_stat_mac_9216_lo
uint32_t rx_stat_mac_xpf_hi
uint32_t tx_stat_etherstatspkts1024octetsto1522octets_hi
uint32_t tx_stat_outxonsent_lo
uint32_t tx_stat_etherstatspkts1024octetsto1522octets_lo
uint32_t rx_stat_xonpauseframesreceived_lo
uint32_t tx_stat_mac_4095_lo
uint32_t tx_stat_mac_9216_hi
struct mstat_stats::@17 stats_rx
struct mstat_stats::@16 stats_tx
uint32_t egress_mac_pkt1_lo
uint32_t egress_mac_pkt0_lo
struct tstorm_per_pf_stats tstorm_pf_statistics
struct tstorm_per_port_stats tstorm_port_statistics
struct xstorm_per_queue_stats xstorm_queue_statistics
struct ustorm_per_queue_stats ustorm_queue_statistics
struct tstorm_per_queue_stats tstorm_queue_statistics
struct regpair_t rcv_error_bytes
struct regpair_t rcv_mcast_bytes
struct regpair_t rcv_ucast_bytes
uint32_t checksum_discard
struct regpair_t rcv_bcast_bytes
struct regpair_t coalesced_bytes
struct regpair_t ucast_bytes_sent
struct regpair_t bcast_bytes_sent
struct regpair_t mcast_bytes_sent
struct mstat_stats mstat_stats
struct bmac1_stats bmac1_stats
struct bmac2_stats bmac2_stats
struct emac_stats emac_stats