be2net: add new counters to display via ethtool stats
Subsystems (2)
PATCH 1/6 be2net: add new counters to display via ethtool stats
New counters:
> jabber frame stats
> red drop stats
Signed-off-by Ajit Khaparde <[email protected]>
--- drivers/net/benet/be_cmds.h | 12 ++++++++++-- drivers/net/benet/be_ethtool.c | 13 +++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-)
drivers/net/benet/be_cmds.h +10 -2
@@ -619,7 +619,10 @@ struct be_rxf_stats {u32 rx_drops_invalid_ring;/* dword 145*/ u32 forwarded_packets;/* dword 146*/ u32 rx_drops_mtu;/* dword 147*/ -u32 rsvd0[15 ]; +u32 rsvd0[7 ]; +u32 port0_jabber_events; +u32 port1_jabber_events; +u32 rsvd1[6 ]; };struct be_erx_stats {
@@ -630,11 +633,16 @@ struct be_erx_stats {u32 debug_pmem_pbuf_dealloc;/* dword 47*/ }; +struct be_pmem_stats { +u32 eth_red_drops; +u32 rsvd[4 ]; +}; +struct be_hw_stats {struct be_rxf_stats rxf;u32 rsvd[48 ];struct be_erx_stats erx; -u32 rsvd1[6 ]; +struct be_pmem_stats pmem; };struct be_cmd_req_get_stats {
drivers/net/benet/be_ethtool.c +11 -2
@@ -26,7 +26,8 @@ struct be_ethtool_stat {int offset; }; -enum {NETSTAT ,PORTSTAT ,MISCSTAT ,DRVSTAT_TX ,DRVSTAT_RX ,ERXSTAT }; +enum {NETSTAT ,PORTSTAT ,MISCSTAT ,DRVSTAT_TX ,DRVSTAT_RX ,ERXSTAT , +PMEMSTAT };#define FIELDINFO (_struct, field) FIELD_SIZEOF(_struct, field), \ offsetof(_struct, field)#define NETSTAT_INFO (field) #field, NETSTAT,\
@@ -43,6 +44,8 @@ enum {NETSTAT, PORTSTAT, MISCSTAT, DRVSTAT_TX, DRVSTAT_RX, ERXSTAT}; field)#define ERXSTAT_INFO (field) #field, ERXSTAT,\ FIELDINFO(struct be_erx_stats, field) +#define PMEMSTAT_INFO (field) #field, PMEMSTAT,\ + FIELDINFO(struct be_pmem_stats, field)static const struct be_ethtool_stat et_stats[] = { {NETSTAT_INFO (rx_packets)},
@@ -99,7 +102,10 @@ static const struct be_ethtool_stat et_stats[] = { {MISCSTAT_INFO(rx_drops_too_many_frags)}, {MISCSTAT_INFO(rx_drops_invalid_ring)}, {MISCSTAT_INFO(forwarded_packets)}, - {MISCSTAT_INFO(rx_drops_mtu)} + {MISCSTAT_INFO(rx_drops_mtu)}, + {MISCSTAT_INFO(port0_jabber_events)}, + {MISCSTAT_INFO(port1_jabber_events)}, + {PMEMSTAT_INFO(eth_red_drops)} }; #define ETHTOOL_STATS_NUM ARRAY_SIZE(et_stats)
@@ -276,6 +282,9 @@ be_get_ethtool_stats(struct net_device *netdev,case MISCSTAT : p = &hw_stats->rxf;break ; +case PMEMSTAT : + p = &hw_stats->pmem; +break ; } p = (u8 *)p + et_stats[i].offset;
Signature · 1 line
1.7.1