bnxt: report FEC block stats via standard interface
authorJakub Kicinski <kuba@kernel.org>
Wed, 30 Nov 2022 01:31:08 +0000 (17:31 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 2 Dec 2022 00:34:52 +0000 (16:34 -0800)
I must have missed that these stats are only exposed
via the unstructured ethtool -S when they got merged.
Plumb in the structured form.

Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Link: https://lore.kernel.org/r/20221130013108.90062-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

index c2f6637..cbf17fc 100644 (file)
@@ -2007,6 +2007,14 @@ static void bnxt_get_fec_stats(struct net_device *dev,
        rx = bp->rx_port_stats_ext.sw_stats;
        fec_stats->corrected_bits.total =
                *(rx + BNXT_RX_STATS_EXT_OFFSET(rx_corrected_bits));
+
+       if (bp->fw_rx_stats_ext_size <= BNXT_RX_STATS_EXT_NUM_LEGACY)
+               return;
+
+       fec_stats->corrected_blocks.total =
+               *(rx + BNXT_RX_STATS_EXT_OFFSET(rx_fec_corrected_blocks));
+       fec_stats->uncorrectable_blocks.total =
+               *(rx + BNXT_RX_STATS_EXT_OFFSET(rx_fec_uncorrectable_blocks));
 }
 
 static u32 bnxt_ethtool_forced_fec_to_fw(struct bnxt_link_info *link_info,