ethtool: add interface to read standard MAC stats
Most of the MAC statistics are included in struct rtnl_link_stats64, but some fields are aggregated. Besides it's good to expose these clearly hardware stats separately. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f09ea6fb12
commit
ca2244547e
@@ -671,6 +671,7 @@ enum ethtool_link_ext_substate_cable_issue {
|
||||
* @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
|
||||
* @ETH_SS_STATS_STD: standardized stats
|
||||
* @ETH_SS_STATS_ETH_PHY: names of IEEE 802.3 PHY statistics
|
||||
* @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics
|
||||
*
|
||||
* @ETH_SS_COUNT: number of defined string sets
|
||||
*/
|
||||
@@ -693,6 +694,7 @@ enum ethtool_stringset {
|
||||
ETH_SS_UDP_TUNNEL_TYPES,
|
||||
ETH_SS_STATS_STD,
|
||||
ETH_SS_STATS_ETH_PHY,
|
||||
ETH_SS_STATS_ETH_MAC,
|
||||
|
||||
/* add new constants above here */
|
||||
ETH_SS_COUNT
|
||||
|
||||
@@ -698,6 +698,7 @@ enum {
|
||||
|
||||
enum {
|
||||
ETHTOOL_STATS_ETH_PHY,
|
||||
ETHTOOL_STATS_ETH_MAC,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_STATS_CNT
|
||||
@@ -726,6 +727,58 @@ enum {
|
||||
ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
/* 30.3.1.1.2 aFramesTransmittedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
|
||||
/* 30.3.1.1.3 aSingleCollisionFrames */
|
||||
ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
|
||||
/* 30.3.1.1.4 aMultipleCollisionFrames */
|
||||
ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
|
||||
/* 30.3.1.1.5 aFramesReceivedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
|
||||
/* 30.3.1.1.6 aFrameCheckSequenceErrors */
|
||||
ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
|
||||
/* 30.3.1.1.7 aAlignmentErrors */
|
||||
ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
|
||||
/* 30.3.1.1.8 aOctetsTransmittedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
|
||||
/* 30.3.1.1.9 aFramesWithDeferredXmissions */
|
||||
ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
|
||||
/* 30.3.1.1.10 aLateCollisions */
|
||||
ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
|
||||
/* 30.3.1.1.11 aFramesAbortedDueToXSColls */
|
||||
ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
|
||||
/* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */
|
||||
ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
|
||||
/* 30.3.1.1.13 aCarrierSenseErrors */
|
||||
ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
|
||||
/* 30.3.1.1.14 aOctetsReceivedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
|
||||
/* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */
|
||||
ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
|
||||
|
||||
/* 30.3.1.1.18 aMulticastFramesXmittedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
|
||||
/* 30.3.1.1.19 aBroadcastFramesXmittedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
|
||||
/* 30.3.1.1.20 aFramesWithExcessiveDeferral */
|
||||
ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
|
||||
/* 30.3.1.1.21 aMulticastFramesReceivedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
|
||||
/* 30.3.1.1.22 aBroadcastFramesReceivedOK */
|
||||
ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
|
||||
/* 30.3.1.1.23 aInRangeLengthErrors */
|
||||
ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
|
||||
/* 30.3.1.1.24 aOutOfRangeLengthField */
|
||||
ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
|
||||
/* 30.3.1.1.25 aFrameTooLongErrors */
|
||||
ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_STATS_ETH_MAC_CNT,
|
||||
ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
|
||||
};
|
||||
|
||||
/* generic netlink info */
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
||||
Reference in New Issue
Block a user