mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-16 15:45:45 +00:00
be2net: add new counters to display via ethtool stats
New counters: > jabber frame stats > red drop stats Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2a3bcfdde6
commit
f6c4bf3e69
2 changed files with 21 additions and 4 deletions
|
@ -619,7 +619,10 @@ struct be_rxf_stats {
|
||||||
u32 rx_drops_invalid_ring; /* dword 145*/
|
u32 rx_drops_invalid_ring; /* dword 145*/
|
||||||
u32 forwarded_packets; /* dword 146*/
|
u32 forwarded_packets; /* dword 146*/
|
||||||
u32 rx_drops_mtu; /* dword 147*/
|
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 {
|
struct be_erx_stats {
|
||||||
|
@ -630,11 +633,16 @@ struct be_erx_stats {
|
||||||
u32 debug_pmem_pbuf_dealloc; /* dword 47*/
|
u32 debug_pmem_pbuf_dealloc; /* dword 47*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct be_pmem_stats {
|
||||||
|
u32 eth_red_drops;
|
||||||
|
u32 rsvd[4];
|
||||||
|
};
|
||||||
|
|
||||||
struct be_hw_stats {
|
struct be_hw_stats {
|
||||||
struct be_rxf_stats rxf;
|
struct be_rxf_stats rxf;
|
||||||
u32 rsvd[48];
|
u32 rsvd[48];
|
||||||
struct be_erx_stats erx;
|
struct be_erx_stats erx;
|
||||||
u32 rsvd1[6];
|
struct be_pmem_stats pmem;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct be_cmd_req_get_stats {
|
struct be_cmd_req_get_stats {
|
||||||
|
|
|
@ -26,7 +26,8 @@ struct be_ethtool_stat {
|
||||||
int offset;
|
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), \
|
#define FIELDINFO(_struct, field) FIELD_SIZEOF(_struct, field), \
|
||||||
offsetof(_struct, field)
|
offsetof(_struct, field)
|
||||||
#define NETSTAT_INFO(field) #field, NETSTAT,\
|
#define NETSTAT_INFO(field) #field, NETSTAT,\
|
||||||
|
@ -43,6 +44,8 @@ enum {NETSTAT, PORTSTAT, MISCSTAT, DRVSTAT_TX, DRVSTAT_RX, ERXSTAT};
|
||||||
field)
|
field)
|
||||||
#define ERXSTAT_INFO(field) #field, ERXSTAT,\
|
#define ERXSTAT_INFO(field) #field, ERXSTAT,\
|
||||||
FIELDINFO(struct be_erx_stats, field)
|
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[] = {
|
static const struct be_ethtool_stat et_stats[] = {
|
||||||
{NETSTAT_INFO(rx_packets)},
|
{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_too_many_frags)},
|
||||||
{MISCSTAT_INFO(rx_drops_invalid_ring)},
|
{MISCSTAT_INFO(rx_drops_invalid_ring)},
|
||||||
{MISCSTAT_INFO(forwarded_packets)},
|
{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)
|
#define ETHTOOL_STATS_NUM ARRAY_SIZE(et_stats)
|
||||||
|
|
||||||
|
@ -276,6 +282,9 @@ be_get_ethtool_stats(struct net_device *netdev,
|
||||||
case MISCSTAT:
|
case MISCSTAT:
|
||||||
p = &hw_stats->rxf;
|
p = &hw_stats->rxf;
|
||||||
break;
|
break;
|
||||||
|
case PMEMSTAT:
|
||||||
|
p = &hw_stats->pmem;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = (u8 *)p + et_stats[i].offset;
|
p = (u8 *)p + et_stats[i].offset;
|
||||||
|
|
Loading…
Reference in a new issue