]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
igbvf: add lbtx_packets and lbtx_bytes to ethtool statistics
authorKohei Enju <enjuk@amazon.com>
Mon, 18 Aug 2025 15:18:26 +0000 (00:18 +0900)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 3 Sep 2025 17:07:26 +0000 (10:07 -0700)
Currently ethtool shows lbrx_packets and lbrx_bytes (Good RX
Packets/Octets loopback Count), but doesn't show the TX-side equivalents
(lbtx_packets and lbtx_bytes). Add visibility of those missing
statistics by adding them to ethtool statistics.

In addition, the order of lbrx_bytes and lbrx_packets is not consistent
with non-loopback statistics (rx_packets, rx_bytes). Therefore,
align the order by swapping positions of lbrx_bytes and lbrx_packets.

Tested on Intel Corporation I350 Gigabit Network Connection.

Before:
  # ethtool -S ens5 | grep -E "x_(bytes|packets)"
       rx_packets: 135
       tx_packets: 106
       rx_bytes: 16010
       tx_bytes: 12451
       lbrx_bytes: 1148
       lbrx_packets: 12

After:
  # ethtool -S ens5 | grep -E "x_(bytes|packets)"
       rx_packets: 748
       tx_packets: 304
       rx_bytes: 81513
       tx_bytes: 33698
       lbrx_packets: 97
       lbtx_packets: 109
       lbrx_bytes: 12090
       lbtx_bytes: 12401

Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Kohei Enju <enjuk@amazon.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/igbvf/ethtool.c

index 773895c663fdf80a07a4863b8210fff26b9d122a..c6defc495f13a060f7c3b27e57612dd10c6b19af 100644 (file)
@@ -30,8 +30,10 @@ static const struct igbvf_stats igbvf_gstrings_stats[] = {
        { "rx_bytes", IGBVF_STAT(stats.gorc, stats.base_gorc) },
        { "tx_bytes", IGBVF_STAT(stats.gotc, stats.base_gotc) },
        { "multicast", IGBVF_STAT(stats.mprc, stats.base_mprc) },
-       { "lbrx_bytes", IGBVF_STAT(stats.gorlbc, stats.base_gorlbc) },
        { "lbrx_packets", IGBVF_STAT(stats.gprlbc, stats.base_gprlbc) },
+       { "lbtx_packets", IGBVF_STAT(stats.gptlbc, stats.base_gptlbc) },
+       { "lbrx_bytes", IGBVF_STAT(stats.gorlbc, stats.base_gorlbc) },
+       { "lbtx_bytes", IGBVF_STAT(stats.gotlbc, stats.base_gotlbc) },
        { "tx_restart_queue", IGBVF_STAT(restart_queue, zero_base) },
        { "tx_timeout_count", IGBVF_STAT(tx_timeout_count, zero_base) },
        { "rx_long_byte_count", IGBVF_STAT(stats.gorc, stats.base_gorc) },