JustOS/linux-6.13/drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
justuser 02e73b8cd9 up
2025-01-24 17:00:19 +03:00

69 lines
1.9 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) Meta Platforms, Inc. and affiliates. */
#ifndef _FBNIC_HW_STATS_H_
#define _FBNIC_HW_STATS_H_
#include <linux/ethtool.h>
#include "fbnic_csr.h"
struct fbnic_stat_counter {
u64 value;
union {
u32 old_reg_value_32;
u64 old_reg_value_64;
} u;
bool reported;
};
struct fbnic_eth_mac_stats {
struct fbnic_stat_counter FramesTransmittedOK;
struct fbnic_stat_counter FramesReceivedOK;
struct fbnic_stat_counter FrameCheckSequenceErrors;
struct fbnic_stat_counter AlignmentErrors;
struct fbnic_stat_counter OctetsTransmittedOK;
struct fbnic_stat_counter FramesLostDueToIntMACXmitError;
struct fbnic_stat_counter OctetsReceivedOK;
struct fbnic_stat_counter FramesLostDueToIntMACRcvError;
struct fbnic_stat_counter MulticastFramesXmittedOK;
struct fbnic_stat_counter BroadcastFramesXmittedOK;
struct fbnic_stat_counter MulticastFramesReceivedOK;
struct fbnic_stat_counter BroadcastFramesReceivedOK;
struct fbnic_stat_counter FrameTooLongErrors;
};
struct fbnic_mac_stats {
struct fbnic_eth_mac_stats eth_mac;
};
struct fbnic_rpc_stats {
struct fbnic_stat_counter unkn_etype, unkn_ext_hdr;
struct fbnic_stat_counter ipv4_frag, ipv6_frag, ipv4_esp, ipv6_esp;
struct fbnic_stat_counter tcp_opt_err, out_of_hdr_err, ovr_size_err;
};
struct fbnic_pcie_stats {
struct fbnic_stat_counter ob_rd_tlp, ob_rd_dword;
struct fbnic_stat_counter ob_wr_tlp, ob_wr_dword;
struct fbnic_stat_counter ob_cpl_tlp, ob_cpl_dword;
struct fbnic_stat_counter ob_rd_no_tag;
struct fbnic_stat_counter ob_rd_no_cpl_cred;
struct fbnic_stat_counter ob_rd_no_np_cred;
};
struct fbnic_hw_stats {
struct fbnic_mac_stats mac;
struct fbnic_rpc_stats rpc;
struct fbnic_pcie_stats pcie;
};
u64 fbnic_stat_rd64(struct fbnic_dev *fbd, u32 reg, u32 offset);
void fbnic_reset_hw_stats(struct fbnic_dev *fbd);
void fbnic_get_hw_stats32(struct fbnic_dev *fbd);
void fbnic_get_hw_stats(struct fbnic_dev *fbd);
#endif /* _FBNIC_HW_STATS_H_ */