Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6c4bf3e authored by Ajit Khaparde's avatar Ajit Khaparde Committed by David S. Miller
Browse files

be2net: add new counters to display via ethtool stats



New counters:
	> jabber frame stats
	> red drop stats

Signed-off-by: default avatarAjit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2a3bcfdd
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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 {
+11 −2
Original line number Diff line number Diff line
@@ -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;