1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) Meta Platforms, Inc. and affiliates. */
4 #ifndef _FBNIC_HW_STATS_H_
5 #define _FBNIC_HW_STATS_H_
7 #include <linux/ethtool.h>
11 struct fbnic_stat_counter
{
20 struct fbnic_eth_mac_stats
{
21 struct fbnic_stat_counter FramesTransmittedOK
;
22 struct fbnic_stat_counter FramesReceivedOK
;
23 struct fbnic_stat_counter FrameCheckSequenceErrors
;
24 struct fbnic_stat_counter AlignmentErrors
;
25 struct fbnic_stat_counter OctetsTransmittedOK
;
26 struct fbnic_stat_counter FramesLostDueToIntMACXmitError
;
27 struct fbnic_stat_counter OctetsReceivedOK
;
28 struct fbnic_stat_counter FramesLostDueToIntMACRcvError
;
29 struct fbnic_stat_counter MulticastFramesXmittedOK
;
30 struct fbnic_stat_counter BroadcastFramesXmittedOK
;
31 struct fbnic_stat_counter MulticastFramesReceivedOK
;
32 struct fbnic_stat_counter BroadcastFramesReceivedOK
;
33 struct fbnic_stat_counter FrameTooLongErrors
;
36 struct fbnic_mac_stats
{
37 struct fbnic_eth_mac_stats eth_mac
;
40 struct fbnic_rpc_stats
{
41 struct fbnic_stat_counter unkn_etype
, unkn_ext_hdr
;
42 struct fbnic_stat_counter ipv4_frag
, ipv6_frag
, ipv4_esp
, ipv6_esp
;
43 struct fbnic_stat_counter tcp_opt_err
, out_of_hdr_err
, ovr_size_err
;
46 struct fbnic_pcie_stats
{
47 struct fbnic_stat_counter ob_rd_tlp
, ob_rd_dword
;
48 struct fbnic_stat_counter ob_wr_tlp
, ob_wr_dword
;
49 struct fbnic_stat_counter ob_cpl_tlp
, ob_cpl_dword
;
51 struct fbnic_stat_counter ob_rd_no_tag
;
52 struct fbnic_stat_counter ob_rd_no_cpl_cred
;
53 struct fbnic_stat_counter ob_rd_no_np_cred
;
56 struct fbnic_hw_stats
{
57 struct fbnic_mac_stats mac
;
58 struct fbnic_rpc_stats rpc
;
59 struct fbnic_pcie_stats pcie
;
62 u64
fbnic_stat_rd64(struct fbnic_dev
*fbd
, u32 reg
, u32 offset
);
64 void fbnic_reset_hw_stats(struct fbnic_dev
*fbd
);
65 void fbnic_get_hw_stats32(struct fbnic_dev
*fbd
);
66 void fbnic_get_hw_stats(struct fbnic_dev
*fbd
);
68 #endif /* _FBNIC_HW_STATS_H_ */