From: Kohei Enju Date: Mon, 18 Aug 2025 15:18:26 +0000 (+0900) Subject: igbvf: add lbtx_packets and lbtx_bytes to ethtool statistics X-Git-Tag: v6.18-rc1~132^2~253^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=86526aa57f3f24fbac3f9887af60848f6950e3f9;p=thirdparty%2Fkernel%2Fstable.git igbvf: add lbtx_packets and lbtx_bytes to ethtool statistics 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 Signed-off-by: Kohei Enju Reviewed-by: Aleksandr Loktionov Reviewed-by: Simon Horman Tested-by: Rafal Romanowski Signed-off-by: Tony Nguyen --- diff --git a/drivers/net/ethernet/intel/igbvf/ethtool.c b/drivers/net/ethernet/intel/igbvf/ethtool.c index 773895c663fdf..c6defc495f13a 100644 --- a/drivers/net/ethernet/intel/igbvf/ethtool.c +++ b/drivers/net/ethernet/intel/igbvf/ethtool.c @@ -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) },