nvethernet: add pkt error stats to ethtool

Issue: Population of Tx packet error stats is not present
through ethtool

Fix: Add Tx packet error stats.

Bug 200565898
Bug 200765786

Change-Id: I950b3de3f470111e8d2ec912f21fb0d131aa47a3
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2597402
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
This commit is contained in:
Bhadram Varka
2021-09-20 17:38:45 +05:30
committed by Revanth Kumar Uppala
parent ee3b01231e
commit 1e95418da0

View File

@@ -81,17 +81,43 @@ static const struct ether_stats ether_frpstrings_stats[] = {
{ (#y), sizeof_field(struct osi_pkt_err_stats, y), \
offsetof(struct osi_dma_priv_data, pkt_err_stats.y)}
#endif
#if KERNEL_VERSION(5, 5, 0) > LINUX_VERSION_CODE
#define ETHER_CORE_PKT_ERR_STAT(z) \
{ (#z), FIELD_SIZEOF(struct osi_core_pkt_err_stats, z), \
offsetof(struct osi_core_priv_data, pkt_err_stats.z)}
#else
#define ETHER_CORE_PKT_ERR_STAT(z) \
{ (#z), sizeof_field(struct osi_core_pkt_err_stats, z), \
offsetof(struct osi_core_priv_data, pkt_err_stats.z)}
#endif
/**
* @brief ETHER clear pkt_err statistics
* @brief ETHER pkt_err statistics
*/
static const struct ether_stats ether_cstrings_stats[] = {
/* Counter for pkt_err stats got cleared */
ETHER_PKT_ERR_STAT(ip_header_error),
ETHER_PKT_ERR_STAT(jabber_timeout_error),
ETHER_PKT_ERR_STAT(pkt_flush_error),
ETHER_PKT_ERR_STAT(payload_cs_error),
ETHER_PKT_ERR_STAT(loss_of_carrier_error),
ETHER_PKT_ERR_STAT(no_carrier_error),
ETHER_PKT_ERR_STAT(late_collision_error),
ETHER_PKT_ERR_STAT(excessive_collision_error),
ETHER_PKT_ERR_STAT(excessive_deferal_error),
ETHER_PKT_ERR_STAT(underflow_error),
ETHER_PKT_ERR_STAT(rx_crc_error),
ETHER_PKT_ERR_STAT(rx_frame_error),
ETHER_PKT_ERR_STAT(clear_tx_err),
ETHER_PKT_ERR_STAT(clear_rx_err),
ETHER_CORE_PKT_ERR_STAT(mgbe_ip_header_err),
ETHER_CORE_PKT_ERR_STAT(mgbe_jabber_timeout_err),
ETHER_CORE_PKT_ERR_STAT(mgbe_payload_cs_err),
ETHER_CORE_PKT_ERR_STAT(mgbe_tx_underflow_err),
};
/**
* @brief clear pkt_err statistics array length
* @brief pkt_err statistics array length
*/
#define ETHER_PKT_ERR_STAT_LEN OSI_ARRAY_SIZE(ether_cstrings_stats)