FreeBSD kernel BXE device code
bxe_stats.h File Reference
#include <sys/cdefs.h>
#include <sys/types.h>
Include dependency graph for bxe_stats.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nig_stats
 
struct  bxe_eth_stats
 
struct  bxe_eth_q_stats
 
struct  bxe_eth_stats_old
 
struct  bxe_eth_q_stats_old
 
struct  bxe_net_stats_old
 
struct  bxe_fw_port_stats_old
 

Macros

#define ADD_64(s_hi, a_hi, s_lo, a_lo)
 
#define LE32_0   ((uint32_t) 0)
 
#define LE16_0   ((uint16_t) 0)
 
#define ADD_64_LE(s_hi, a_hi_le, s_lo, a_lo_le)
 
#define ADD_64_LE16(s_hi, a_hi_le, s_lo, a_lo_le)
 
#define DIFF_64(d_hi, m_hi, s_hi, d_lo, m_lo, s_lo)
 
#define UPDATE_STAT64(s, t)
 
#define UPDATE_STAT64_NIG(s, t)
 
#define ADD_EXTEND_64(s_hi, s_lo, a)
 
#define ADD_STAT64(diff, t)
 
#define UPDATE_EXTEND_STAT(s)
 
#define UPDATE_EXTEND_TSTAT_X(s, t, size)
 
#define UPDATE_EXTEND_TSTAT(s, t)   UPDATE_EXTEND_TSTAT_X(s, t, 32)
 
#define UPDATE_EXTEND_E_TSTAT(s, t, size)
 
#define UPDATE_EXTEND_USTAT(s, t)
 
#define UPDATE_EXTEND_E_USTAT(s, t)
 
#define UPDATE_EXTEND_XSTAT(s, t)
 
#define UPDATE_QSTAT(s, t)
 
#define UPDATE_QSTAT_OLD(f)
 
#define UPDATE_ESTAT_QSTAT_64(s)
 
#define UPDATE_ESTAT_QSTAT(s)
 
#define UPDATE_FSTAT_QSTAT(s)
 
#define UPDATE_FW_STAT(s)
 
#define UPDATE_FW_STAT_OLD(f)
 
#define UPDATE_ESTAT(s, t)
 
#define SUB_64(m_hi, s_hi, m_lo, s_lo)
 
#define SUB_EXTEND_64(m_hi, m_lo, s)
 
#define SUB_EXTEND_USTAT(s, t)
 

Enumerations

enum  bxe_stats_event {
  STATS_EVENT_PMF = 0 , STATS_EVENT_LINK_UP , STATS_EVENT_UPDATE , STATS_EVENT_STOP ,
  STATS_EVENT_MAX
}
 
enum  bxe_stats_state { STATS_STATE_DISABLED = 0 , STATS_STATE_ENABLED , STATS_STATE_MAX }
 

Functions

 __FBSDID ("$FreeBSD$")
 
void bxe_stats_init (struct bxe_softc *sc)
 
void bxe_stats_handle (struct bxe_softc *sc, enum bxe_stats_event event)
 
void bxe_save_statistics (struct bxe_softc *sc)
 
void bxe_afex_collect_stats (struct bxe_softc *sc, void *void_afex_stats, uint32_t stats_type)
 
uint64_t bxe_get_counter (if_t, ift_counter)
 

Macro Definition Documentation

◆ ADD_64

#define ADD_64 (   s_hi,
  a_hi,
  s_lo,
  a_lo 
)
Value:
do { \
s_lo += a_lo; \
s_hi += a_hi + ((s_lo < a_lo) ? 1 : 0); \
} while (0)

Definition at line 509 of file bxe_stats.h.

◆ ADD_64_LE

#define ADD_64_LE (   s_hi,
  a_hi_le,
  s_lo,
  a_lo_le 
)
Value:
ADD_64(s_hi, le32toh(a_hi_le), \
s_lo, le32toh(a_lo_le))
#define ADD_64(s_hi, a_hi, s_lo, a_lo)
Definition: bxe_stats.h:509

Definition at line 519 of file bxe_stats.h.

◆ ADD_64_LE16

#define ADD_64_LE16 (   s_hi,
  a_hi_le,
  s_lo,
  a_lo_le 
)
Value:
ADD_64(s_hi, le16toh(a_hi_le), \
s_lo, le16toh(a_lo_le))

Definition at line 523 of file bxe_stats.h.

◆ ADD_EXTEND_64

#define ADD_EXTEND_64 (   s_hi,
  s_lo,
 
)
Value:
do { \
s_lo += a; \
s_hi += (s_lo < a) ? 1 : 0; \
} while (0)

Definition at line 574 of file bxe_stats.h.

◆ ADD_STAT64

#define ADD_STAT64 (   diff,
 
)
Value:
do { \
ADD_64(pstats->mac_stx[1].t##_hi, new->diff##_hi, \
pstats->mac_stx[1].t##_lo, new->diff##_lo); \
} while (0)

Definition at line 580 of file bxe_stats.h.

◆ DIFF_64

#define DIFF_64 (   d_hi,
  m_hi,
  s_hi,
  d_lo,
  m_lo,
  s_lo 
)
Value:
do { \
if (m_lo < s_lo) { \
/* underflow */ \
d_hi = m_hi - s_hi; \
if (d_hi > 0) { \
/* we can 'loan' 1 */ \
d_hi--; \
d_lo = m_lo + (UINT_MAX - s_lo) + 1; \
} else { \
/* m_hi <= s_hi */ \
d_hi = 0; \
d_lo = 0; \
} \
} else { \
/* m_lo >= s_lo */ \
if (m_hi < s_hi) { \
d_hi = 0; \
d_lo = 0; \
} else { \
/* m_hi >= s_hi */ \
d_hi = m_hi - s_hi; \
d_lo = m_lo - s_lo; \
} \
} \
} while (0)

Definition at line 528 of file bxe_stats.h.

◆ LE16_0

#define LE16_0   ((uint16_t) 0)

Definition at line 516 of file bxe_stats.h.

◆ LE32_0

#define LE32_0   ((uint32_t) 0)

Definition at line 515 of file bxe_stats.h.

◆ SUB_64

#define SUB_64 (   m_hi,
  s_hi,
  m_lo,
  s_lo 
)
Value:
do { \
DIFF_64(m_hi, m_hi, s_hi, m_lo, m_lo, s_lo); \
} while (0)

Definition at line 690 of file bxe_stats.h.

◆ SUB_EXTEND_64

#define SUB_EXTEND_64 (   m_hi,
  m_lo,
 
)
Value:
do { \
SUB_64(m_hi, 0, m_lo, s); \
} while (0)

Definition at line 696 of file bxe_stats.h.

◆ SUB_EXTEND_USTAT

#define SUB_EXTEND_USTAT (   s,
 
)
Value:
do { \
diff = le32toh(uclient->s) - le32toh(old_uclient->s); \
SUB_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 701 of file bxe_stats.h.

◆ UPDATE_ESTAT

#define UPDATE_ESTAT (   s,
 
)
Value:
do { \
SUB_64(estats->s##_hi, estats_old->t##_hi, \
estats->s##_lo, estats_old->t##_lo); \
ADD_64(estats->s##_hi, estats->t##_hi, \
estats->s##_lo, estats->t##_lo); \
estats_old->t##_hi = estats->t##_hi; \
estats_old->t##_lo = estats->t##_lo; \
} while (0)

Definition at line 679 of file bxe_stats.h.

◆ UPDATE_ESTAT_QSTAT

#define UPDATE_ESTAT_QSTAT (   s)
Value:
do { \
estats->s += qstats->s; \
estats->s -= qstats_old->s##_old; \
qstats_old->s##_old = qstats->s; \
} while (0)

Definition at line 650 of file bxe_stats.h.

◆ UPDATE_ESTAT_QSTAT_64

#define UPDATE_ESTAT_QSTAT_64 (   s)
Value:
do { \
ADD_64(estats->s##_hi, qstats->s##_hi, \
estats->s##_lo, qstats->s##_lo); \
SUB_64(estats->s##_hi, qstats_old->s##_hi_old, \
estats->s##_lo, qstats_old->s##_lo_old); \
qstats_old->s##_hi_old = qstats->s##_hi; \
qstats_old->s##_lo_old = qstats->s##_lo; \
} while (0)

Definition at line 640 of file bxe_stats.h.

◆ UPDATE_EXTEND_E_TSTAT

#define UPDATE_EXTEND_E_TSTAT (   s,
  t,
  size 
)
Value:
do { \
UPDATE_EXTEND_TSTAT_X(s, t, size); \
ADD_EXTEND_64(estats->t##_hi, estats->t##_lo, diff); \
} while (0)
uint32_t size
Definition: bxe.c:322

Definition at line 603 of file bxe_stats.h.

◆ UPDATE_EXTEND_E_USTAT

#define UPDATE_EXTEND_E_USTAT (   s,
 
)
Value:
do { \
UPDATE_EXTEND_USTAT(s, t); \
ADD_EXTEND_64(estats->t##_hi, estats->t##_lo, diff); \
} while (0)

Definition at line 616 of file bxe_stats.h.

◆ UPDATE_EXTEND_STAT

#define UPDATE_EXTEND_STAT (   s)
Value:
do { \
ADD_EXTEND_64(pstats->mac_stx[1].s##_hi, \
pstats->mac_stx[1].s##_lo, \
new->s); \
} while (0)

Definition at line 586 of file bxe_stats.h.

◆ UPDATE_EXTEND_TSTAT

#define UPDATE_EXTEND_TSTAT (   s,
 
)    UPDATE_EXTEND_TSTAT_X(s, t, 32)

Definition at line 601 of file bxe_stats.h.

◆ UPDATE_EXTEND_TSTAT_X

#define UPDATE_EXTEND_TSTAT_X (   s,
  t,
  size 
)
Value:
do { \
diff = le##size##toh(tclient->s) - \
le##size##toh(old_tclient->s); \
old_tclient->s = tclient->s; \
ADD_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 593 of file bxe_stats.h.

◆ UPDATE_EXTEND_USTAT

#define UPDATE_EXTEND_USTAT (   s,
 
)
Value:
do { \
diff = le32toh(uclient->s) - le32toh(old_uclient->s); \
old_uclient->s = uclient->s; \
ADD_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 609 of file bxe_stats.h.

◆ UPDATE_EXTEND_XSTAT

#define UPDATE_EXTEND_XSTAT (   s,
 
)
Value:
do { \
diff = le32toh(xclient->s) - le32toh(old_xclient->s); \
old_xclient->s = xclient->s; \
ADD_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 622 of file bxe_stats.h.

◆ UPDATE_FSTAT_QSTAT

#define UPDATE_FSTAT_QSTAT (   s)
Value:
do { \
ADD_64(fstats->s##_hi, qstats->s##_hi, \
fstats->s##_lo, qstats->s##_lo); \
SUB_64(fstats->s##_hi, qstats_old->s##_hi, \
fstats->s##_lo, qstats_old->s##_lo); \
estats->s##_hi = fstats->s##_hi; \
estats->s##_lo = fstats->s##_lo; \
qstats_old->s##_hi = qstats->s##_hi; \
qstats_old->s##_lo = qstats->s##_lo; \
} while (0)

Definition at line 657 of file bxe_stats.h.

◆ UPDATE_FW_STAT

#define UPDATE_FW_STAT (   s)
Value:
do { \
estats->s = le32toh(tport->s) + fwstats->s; \
} while (0)

Definition at line 669 of file bxe_stats.h.

◆ UPDATE_FW_STAT_OLD

#define UPDATE_FW_STAT_OLD (   f)
Value:
do { \
fwstats->f = estats->f; \
} while (0)

Definition at line 674 of file bxe_stats.h.

◆ UPDATE_QSTAT

#define UPDATE_QSTAT (   s,
 
)
Value:
do { \
qstats->t##_hi = qstats_old->t##_hi + le32toh(s.hi); \
qstats->t##_lo = qstats_old->t##_lo + le32toh(s.lo); \
} while (0)

Definition at line 629 of file bxe_stats.h.

◆ UPDATE_QSTAT_OLD

#define UPDATE_QSTAT_OLD (   f)
Value:
do { \
qstats_old->f = qstats->f; \
} while (0)

Definition at line 635 of file bxe_stats.h.

◆ UPDATE_STAT64

#define UPDATE_STAT64 (   s,
 
)
Value:
do { \
DIFF_64(diff.hi, new->s##_hi, pstats->mac_stx[0].t##_hi, \
diff.lo, new->s##_lo, pstats->mac_stx[0].t##_lo); \
pstats->mac_stx[0].t##_hi = new->s##_hi; \
pstats->mac_stx[0].t##_lo = new->s##_lo; \
ADD_64(pstats->mac_stx[1].t##_hi, diff.hi, \
pstats->mac_stx[1].t##_lo, diff.lo); \
} while (0)

Definition at line 555 of file bxe_stats.h.

◆ UPDATE_STAT64_NIG

#define UPDATE_STAT64_NIG (   s,
 
)
Value:
do { \
DIFF_64(diff.hi, new->s##_hi, old->s##_hi, \
diff.lo, new->s##_lo, old->s##_lo); \
ADD_64(estats->t##_hi, diff.hi, \
estats->t##_lo, diff.lo); \
} while (0)

Definition at line 565 of file bxe_stats.h.

Enumeration Type Documentation

◆ bxe_stats_event

Enumerator
STATS_EVENT_PMF 
STATS_EVENT_LINK_UP 
STATS_EVENT_UPDATE 
STATS_EVENT_STOP 
STATS_EVENT_MAX 

Definition at line 59 of file bxe_stats.h.

◆ bxe_stats_state

Enumerator
STATS_STATE_DISABLED 
STATS_STATE_ENABLED 
STATS_STATE_MAX 

Definition at line 67 of file bxe_stats.h.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ bxe_afex_collect_stats()

void bxe_afex_collect_stats ( struct bxe_softc sc,
void *  void_afex_stats,
uint32_t  stats_type 
)

Definition at line 1727 of file bxe_stats.c.

References ADD_64, bxe_eth_stats::brb_truncate_discard, bxe_fastpath::eth_q_stats, bxe_softc::eth_stats, bxe_eth_q_stats::etherstatsoverrsizepkts_hi, bxe_eth_q_stats::etherstatsoverrsizepkts_lo, bxe_softc::fp, bxe_eth_stats::mac_discard, bxe_eth_stats::mac_filter_discard, bxe_eth_q_stats::no_buff_discard_hi, bxe_eth_q_stats::no_buff_discard_lo, bxe_softc::num_queues, bxe_port::pmf, bxe_softc::port, afex_stats::rx_broadcast_bytes_hi, afex_stats::rx_broadcast_bytes_lo, afex_stats::rx_broadcast_frames_hi, afex_stats::rx_broadcast_frames_lo, afex_stats::rx_frames_discarded_hi, afex_stats::rx_frames_discarded_lo, afex_stats::rx_frames_dropped_hi, afex_stats::rx_frames_dropped_lo, afex_stats::rx_multicast_bytes_hi, afex_stats::rx_multicast_bytes_lo, afex_stats::rx_multicast_frames_hi, afex_stats::rx_multicast_frames_lo, afex_stats::rx_unicast_bytes_hi, afex_stats::rx_unicast_bytes_lo, afex_stats::rx_unicast_frames_hi, afex_stats::rx_unicast_frames_lo, bxe_eth_q_stats::total_broadcast_bytes_received_hi, bxe_eth_q_stats::total_broadcast_bytes_received_lo, bxe_eth_q_stats::total_broadcast_bytes_transmitted_hi, bxe_eth_q_stats::total_broadcast_bytes_transmitted_lo, bxe_eth_q_stats::total_broadcast_packets_received_hi, bxe_eth_q_stats::total_broadcast_packets_received_lo, bxe_eth_q_stats::total_broadcast_packets_transmitted_hi, bxe_eth_q_stats::total_broadcast_packets_transmitted_lo, bxe_eth_q_stats::total_multicast_bytes_received_hi, bxe_eth_q_stats::total_multicast_bytes_received_lo, bxe_eth_q_stats::total_multicast_bytes_transmitted_hi, bxe_eth_q_stats::total_multicast_bytes_transmitted_lo, bxe_eth_q_stats::total_multicast_packets_received_hi, bxe_eth_q_stats::total_multicast_packets_received_lo, bxe_eth_q_stats::total_multicast_packets_transmitted_hi, bxe_eth_q_stats::total_multicast_packets_transmitted_lo, bxe_eth_q_stats::total_packets_received_checksum_discarded_hi, bxe_eth_q_stats::total_packets_received_checksum_discarded_lo, bxe_eth_q_stats::total_packets_received_ttl0_discarded_hi, bxe_eth_q_stats::total_packets_received_ttl0_discarded_lo, bxe_eth_q_stats::total_transmitted_dropped_packets_error_hi, bxe_eth_q_stats::total_transmitted_dropped_packets_error_lo, bxe_eth_q_stats::total_unicast_bytes_received_hi, bxe_eth_q_stats::total_unicast_bytes_received_lo, bxe_eth_q_stats::total_unicast_bytes_transmitted_hi, bxe_eth_q_stats::total_unicast_bytes_transmitted_lo, bxe_eth_q_stats::total_unicast_packets_received_hi, bxe_eth_q_stats::total_unicast_packets_received_lo, bxe_eth_q_stats::total_unicast_packets_transmitted_hi, bxe_eth_q_stats::total_unicast_packets_transmitted_lo, afex_stats::tx_broadcast_bytes_hi, afex_stats::tx_broadcast_bytes_lo, afex_stats::tx_broadcast_frames_hi, afex_stats::tx_broadcast_frames_lo, afex_stats::tx_frames_dropped_hi, afex_stats::tx_frames_dropped_lo, afex_stats::tx_multicast_bytes_hi, afex_stats::tx_multicast_bytes_lo, afex_stats::tx_multicast_frames_hi, afex_stats::tx_multicast_frames_lo, afex_stats::tx_unicast_bytes_hi, afex_stats::tx_unicast_bytes_lo, afex_stats::tx_unicast_frames_hi, afex_stats::tx_unicast_frames_lo, and VICSTATST_UIF_INDEX.

◆ bxe_get_counter()

◆ bxe_save_statistics()

void bxe_save_statistics ( struct bxe_softc sc)

◆ bxe_stats_handle()

◆ bxe_stats_init()