Commit eabbe2bb authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller

ixgbe: add pause frame stats

Report standard pause frame stats. They are already aggregated
in struct ixgbe_hw_stats.

The combination of the registers is suggested as equivalent to
PAUSEMACCtrlFramesTransmitted / PAUSEMACCtrlFramesReceived
by the Intel 82576EB datasheet, I could not find any information
in the HW actually supported by ixgbe.
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Reviewed-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
Reviewed-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 423cffcf
...@@ -531,6 +531,16 @@ static int ixgbe_set_link_ksettings(struct net_device *netdev, ...@@ -531,6 +531,16 @@ static int ixgbe_set_link_ksettings(struct net_device *netdev,
return err; return err;
} }
static void ixgbe_get_pause_stats(struct net_device *netdev,
struct ethtool_pause_stats *stats)
{
struct ixgbe_adapter *adapter = netdev_priv(netdev);
struct ixgbe_hw_stats *hwstats = &adapter->stats;
stats->tx_pause_frames = hwstats->lxontxc + hwstats->lxofftxc;
stats->rx_pause_frames = hwstats->lxonrxc + hwstats->lxoffrxc;
}
static void ixgbe_get_pauseparam(struct net_device *netdev, static void ixgbe_get_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pause) struct ethtool_pauseparam *pause)
{ {
...@@ -3546,6 +3556,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops = { ...@@ -3546,6 +3556,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops = {
.set_eeprom = ixgbe_set_eeprom, .set_eeprom = ixgbe_set_eeprom,
.get_ringparam = ixgbe_get_ringparam, .get_ringparam = ixgbe_get_ringparam,
.set_ringparam = ixgbe_set_ringparam, .set_ringparam = ixgbe_set_ringparam,
.get_pause_stats = ixgbe_get_pause_stats,
.get_pauseparam = ixgbe_get_pauseparam, .get_pauseparam = ixgbe_get_pauseparam,
.set_pauseparam = ixgbe_set_pauseparam, .set_pauseparam = ixgbe_set_pauseparam,
.get_msglevel = ixgbe_get_msglevel, .get_msglevel = ixgbe_get_msglevel,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment