Commit 461ae379 authored by Ajit Khaparde's avatar Ajit Khaparde Committed by David S. Miller

be2net: Display RoCE specific counters in ethtool -S

SkyHawk-R can support RoCE. Add code to display RoCE specific
counters maintained in hardware.
Signed-off-by: default avatarAjit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 61000861
...@@ -325,6 +325,11 @@ struct be_drv_stats { ...@@ -325,6 +325,11 @@ struct be_drv_stats {
u32 rx_input_fifo_overflow_drop; u32 rx_input_fifo_overflow_drop;
u32 pmem_fifo_overflow_drop; u32 pmem_fifo_overflow_drop;
u32 jabber_events; u32 jabber_events;
u32 rx_roce_bytes_lsd;
u32 rx_roce_bytes_msd;
u32 rx_roce_frames;
u32 roce_drops_payload_len;
u32 roce_drops_crc;
}; };
struct be_vf_cfg { struct be_vf_cfg {
......
...@@ -116,7 +116,12 @@ static const struct be_ethtool_stat et_stats[] = { ...@@ -116,7 +116,12 @@ static const struct be_ethtool_stat et_stats[] = {
{DRVSTAT_INFO(rx_drops_mtu)}, {DRVSTAT_INFO(rx_drops_mtu)},
/* Number of packets dropped due to random early drop function */ /* Number of packets dropped due to random early drop function */
{DRVSTAT_INFO(eth_red_drops)}, {DRVSTAT_INFO(eth_red_drops)},
{DRVSTAT_INFO(be_on_die_temperature)} {DRVSTAT_INFO(be_on_die_temperature)},
{DRVSTAT_INFO(rx_roce_bytes_lsd)},
{DRVSTAT_INFO(rx_roce_bytes_msd)},
{DRVSTAT_INFO(rx_roce_frames)},
{DRVSTAT_INFO(roce_drops_payload_len)},
{DRVSTAT_INFO(roce_drops_crc)}
}; };
#define ETHTOOL_STATS_NUM ARRAY_SIZE(et_stats) #define ETHTOOL_STATS_NUM ARRAY_SIZE(et_stats)
......
...@@ -474,6 +474,14 @@ static void populate_be_v2_stats(struct be_adapter *adapter) ...@@ -474,6 +474,14 @@ static void populate_be_v2_stats(struct be_adapter *adapter)
drvs->rx_drops_no_tpre_descr = rxf_stats->rx_drops_no_tpre_descr; drvs->rx_drops_no_tpre_descr = rxf_stats->rx_drops_no_tpre_descr;
drvs->rx_drops_too_many_frags = rxf_stats->rx_drops_too_many_frags; drvs->rx_drops_too_many_frags = rxf_stats->rx_drops_too_many_frags;
adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops; adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops;
if (be_roce_supported(adapter)) {
drvs->rx_roce_bytes_lsd = port_stats->roce_bytes_received_lsd;
drvs->rx_roce_bytes_msd = port_stats->roce_bytes_received_msd;
drvs->rx_roce_frames = port_stats->roce_frames_received;
drvs->roce_drops_crc = port_stats->roce_drops_crc;
drvs->roce_drops_payload_len =
port_stats->roce_drops_payload_len;
}
} }
static void populate_lancer_stats(struct be_adapter *adapter) static void populate_lancer_stats(struct be_adapter *adapter)
......
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