Skip to content
Permalink
Browse files
bnxt: add pause frame stats
These stats are already reported in ethtool -S.
Hopefully they are equivalent to standard stats?

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Jakub Kicinski authored and intel-lab-lkp committed Sep 11, 2020
1 parent d4d4eca commit c5c1d08b72fbfe88b0bb991fb4dded1f9d230280
Showing 1 changed file with 19 additions and 0 deletions.
@@ -1778,6 +1778,24 @@ static void bnxt_get_pauseparam(struct net_device *dev,
epause->tx_pause = !!(link_info->req_flow_ctrl & BNXT_LINK_PAUSE_TX);
}

static void bnxt_get_pause_stats(struct net_device *dev,
struct ethtool_pause_stats *epstat)
{
struct bnxt *bp = netdev_priv(dev);
struct rx_port_stats *rx_stats;
struct tx_port_stats *tx_stats;

if (BNXT_VF(bp) || !(bp->flags & BNXT_FLAG_PORT_STATS))
return;

rx_stats = (void *)bp->port_stats.sw_stats;
tx_stats = (void *)((unsigned long)bp->port_stats.sw_stats +
BNXT_TX_PORT_STATS_BYTE_OFFSET);

epstat->rx_pause_frames = rx_stats->rx_pause_frames;
epstat->tx_pause_frames = tx_stats->tx_pause_frames;
}

static int bnxt_set_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *epause)
{
@@ -3645,6 +3663,7 @@ const struct ethtool_ops bnxt_ethtool_ops = {
ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
.get_link_ksettings = bnxt_get_link_ksettings,
.set_link_ksettings = bnxt_set_link_ksettings,
.get_pause_stats = bnxt_get_pause_stats,
.get_pauseparam = bnxt_get_pauseparam,
.set_pauseparam = bnxt_set_pauseparam,
.get_drvinfo = bnxt_get_drvinfo,

0 comments on commit c5c1d08

Please sign in to comment.