ethtool: add a new command for reading standard stats
Add an interface for reading standard stats, including stats which don't have a corresponding control interface. Start with IEEE 802.3 PHY stats. There seems to be only one stat to expose there. Define API to not require user space changes when new stats or groups are added. Groups are based on bitset, stats have a string set associated. v1: wrap stats in a nest Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ddc78b3621
commit
f09ea6fb12
8 changed files with 287 additions and 1 deletions
|
|
@ -669,6 +669,8 @@ enum ethtool_link_ext_substate_cable_issue {
|
|||
* @ETH_SS_TS_TX_TYPES: timestamping Tx types
|
||||
* @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
|
||||
* @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_COUNT: number of defined string sets
|
||||
*/
|
||||
|
|
@ -689,6 +691,8 @@ enum ethtool_stringset {
|
|||
ETH_SS_TS_TX_TYPES,
|
||||
ETH_SS_TS_RX_FILTERS,
|
||||
ETH_SS_UDP_TUNNEL_TYPES,
|
||||
ETH_SS_STATS_STD,
|
||||
ETH_SS_STATS_ETH_PHY,
|
||||
|
||||
/* add new constants above here */
|
||||
ETH_SS_COUNT
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ enum {
|
|||
ETHTOOL_MSG_FEC_GET,
|
||||
ETHTOOL_MSG_FEC_SET,
|
||||
ETHTOOL_MSG_MODULE_EEPROM_GET,
|
||||
ETHTOOL_MSG_STATS_GET,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
|
|
@ -86,6 +87,7 @@ enum {
|
|||
ETHTOOL_MSG_FEC_GET_REPLY,
|
||||
ETHTOOL_MSG_FEC_NTF,
|
||||
ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
|
||||
ETHTOOL_MSG_STATS_GET_REPLY,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
|
|
@ -679,6 +681,51 @@ enum {
|
|||
ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
|
||||
};
|
||||
|
||||
/* STATS */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_STATS_UNSPEC,
|
||||
ETHTOOL_A_STATS_PAD,
|
||||
ETHTOOL_A_STATS_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_STATS_GROUPS, /* bitset */
|
||||
|
||||
ETHTOOL_A_STATS_GRP, /* nest - _A_STATS_GRP_* */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_STATS_CNT,
|
||||
ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_STATS_ETH_PHY,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_STATS_CNT
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_STATS_GRP_UNSPEC,
|
||||
ETHTOOL_A_STATS_GRP_PAD,
|
||||
|
||||
ETHTOOL_A_STATS_GRP_ID, /* u32 */
|
||||
ETHTOOL_A_STATS_GRP_SS_ID, /* u32 */
|
||||
|
||||
ETHTOOL_A_STATS_GRP_STAT, /* nest */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_STATS_GRP_CNT,
|
||||
ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
/* 30.3.2.1.5 aSymbolErrorDuringCarrier */
|
||||
ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_STATS_ETH_PHY_CNT,
|
||||
ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
|
||||
};
|
||||
|
||||
/* generic netlink info */
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue