brintos

brintos / linux-shallow public Read only

0
0
Text · 29.9 KiB · 283305f Raw
1095 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */2/*3 * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool4 *5 * See Documentation/networking/ethtool-netlink.rst in kernel source tree for6 * doucumentation of the interface.7 */8 9#ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_10#define _UAPI_LINUX_ETHTOOL_NETLINK_H_11 12#include <linux/ethtool.h>13 14/* message types - userspace to kernel */15enum {16	ETHTOOL_MSG_USER_NONE,17	ETHTOOL_MSG_STRSET_GET,18	ETHTOOL_MSG_LINKINFO_GET,19	ETHTOOL_MSG_LINKINFO_SET,20	ETHTOOL_MSG_LINKMODES_GET,21	ETHTOOL_MSG_LINKMODES_SET,22	ETHTOOL_MSG_LINKSTATE_GET,23	ETHTOOL_MSG_DEBUG_GET,24	ETHTOOL_MSG_DEBUG_SET,25	ETHTOOL_MSG_WOL_GET,26	ETHTOOL_MSG_WOL_SET,27	ETHTOOL_MSG_FEATURES_GET,28	ETHTOOL_MSG_FEATURES_SET,29	ETHTOOL_MSG_PRIVFLAGS_GET,30	ETHTOOL_MSG_PRIVFLAGS_SET,31	ETHTOOL_MSG_RINGS_GET,32	ETHTOOL_MSG_RINGS_SET,33	ETHTOOL_MSG_CHANNELS_GET,34	ETHTOOL_MSG_CHANNELS_SET,35	ETHTOOL_MSG_COALESCE_GET,36	ETHTOOL_MSG_COALESCE_SET,37	ETHTOOL_MSG_PAUSE_GET,38	ETHTOOL_MSG_PAUSE_SET,39	ETHTOOL_MSG_EEE_GET,40	ETHTOOL_MSG_EEE_SET,41	ETHTOOL_MSG_TSINFO_GET,42	ETHTOOL_MSG_CABLE_TEST_ACT,43	ETHTOOL_MSG_CABLE_TEST_TDR_ACT,44	ETHTOOL_MSG_TUNNEL_INFO_GET,45	ETHTOOL_MSG_FEC_GET,46	ETHTOOL_MSG_FEC_SET,47	ETHTOOL_MSG_MODULE_EEPROM_GET,48	ETHTOOL_MSG_STATS_GET,49	ETHTOOL_MSG_PHC_VCLOCKS_GET,50	ETHTOOL_MSG_MODULE_GET,51	ETHTOOL_MSG_MODULE_SET,52	ETHTOOL_MSG_PSE_GET,53	ETHTOOL_MSG_PSE_SET,54	ETHTOOL_MSG_RSS_GET,55	ETHTOOL_MSG_PLCA_GET_CFG,56	ETHTOOL_MSG_PLCA_SET_CFG,57	ETHTOOL_MSG_PLCA_GET_STATUS,58	ETHTOOL_MSG_MM_GET,59	ETHTOOL_MSG_MM_SET,60	ETHTOOL_MSG_MODULE_FW_FLASH_ACT,61	ETHTOOL_MSG_PHY_GET,62 63	/* add new constants above here */64	__ETHTOOL_MSG_USER_CNT,65	ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 166};67 68/* message types - kernel to userspace */69enum {70	ETHTOOL_MSG_KERNEL_NONE,71	ETHTOOL_MSG_STRSET_GET_REPLY,72	ETHTOOL_MSG_LINKINFO_GET_REPLY,73	ETHTOOL_MSG_LINKINFO_NTF,74	ETHTOOL_MSG_LINKMODES_GET_REPLY,75	ETHTOOL_MSG_LINKMODES_NTF,76	ETHTOOL_MSG_LINKSTATE_GET_REPLY,77	ETHTOOL_MSG_DEBUG_GET_REPLY,78	ETHTOOL_MSG_DEBUG_NTF,79	ETHTOOL_MSG_WOL_GET_REPLY,80	ETHTOOL_MSG_WOL_NTF,81	ETHTOOL_MSG_FEATURES_GET_REPLY,82	ETHTOOL_MSG_FEATURES_SET_REPLY,83	ETHTOOL_MSG_FEATURES_NTF,84	ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,85	ETHTOOL_MSG_PRIVFLAGS_NTF,86	ETHTOOL_MSG_RINGS_GET_REPLY,87	ETHTOOL_MSG_RINGS_NTF,88	ETHTOOL_MSG_CHANNELS_GET_REPLY,89	ETHTOOL_MSG_CHANNELS_NTF,90	ETHTOOL_MSG_COALESCE_GET_REPLY,91	ETHTOOL_MSG_COALESCE_NTF,92	ETHTOOL_MSG_PAUSE_GET_REPLY,93	ETHTOOL_MSG_PAUSE_NTF,94	ETHTOOL_MSG_EEE_GET_REPLY,95	ETHTOOL_MSG_EEE_NTF,96	ETHTOOL_MSG_TSINFO_GET_REPLY,97	ETHTOOL_MSG_CABLE_TEST_NTF,98	ETHTOOL_MSG_CABLE_TEST_TDR_NTF,99	ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,100	ETHTOOL_MSG_FEC_GET_REPLY,101	ETHTOOL_MSG_FEC_NTF,102	ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,103	ETHTOOL_MSG_STATS_GET_REPLY,104	ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,105	ETHTOOL_MSG_MODULE_GET_REPLY,106	ETHTOOL_MSG_MODULE_NTF,107	ETHTOOL_MSG_PSE_GET_REPLY,108	ETHTOOL_MSG_RSS_GET_REPLY,109	ETHTOOL_MSG_PLCA_GET_CFG_REPLY,110	ETHTOOL_MSG_PLCA_GET_STATUS_REPLY,111	ETHTOOL_MSG_PLCA_NTF,112	ETHTOOL_MSG_MM_GET_REPLY,113	ETHTOOL_MSG_MM_NTF,114	ETHTOOL_MSG_MODULE_FW_FLASH_NTF,115	ETHTOOL_MSG_PHY_GET_REPLY,116	ETHTOOL_MSG_PHY_NTF,117 118	/* add new constants above here */119	__ETHTOOL_MSG_KERNEL_CNT,120	ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1121};122 123/* request header */124 125enum ethtool_header_flags {126	ETHTOOL_FLAG_COMPACT_BITSETS	= 1 << 0,	/* use compact bitsets in reply */127	ETHTOOL_FLAG_OMIT_REPLY		= 1 << 1,	/* provide optional reply for SET or ACT requests */128	ETHTOOL_FLAG_STATS		= 1 << 2,	/* request statistics, if supported by the driver */129};130 131#define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \132			  ETHTOOL_FLAG_OMIT_REPLY | \133			  ETHTOOL_FLAG_STATS)134 135enum {136	ETHTOOL_A_HEADER_UNSPEC,137	ETHTOOL_A_HEADER_DEV_INDEX,		/* u32 */138	ETHTOOL_A_HEADER_DEV_NAME,		/* string */139	ETHTOOL_A_HEADER_FLAGS,			/* u32 - ETHTOOL_FLAG_* */140	ETHTOOL_A_HEADER_PHY_INDEX,		/* u32 */141 142	/* add new constants above here */143	__ETHTOOL_A_HEADER_CNT,144	ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1145};146 147/* bit sets */148 149enum {150	ETHTOOL_A_BITSET_BIT_UNSPEC,151	ETHTOOL_A_BITSET_BIT_INDEX,		/* u32 */152	ETHTOOL_A_BITSET_BIT_NAME,		/* string */153	ETHTOOL_A_BITSET_BIT_VALUE,		/* flag */154 155	/* add new constants above here */156	__ETHTOOL_A_BITSET_BIT_CNT,157	ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1158};159 160enum {161	ETHTOOL_A_BITSET_BITS_UNSPEC,162	ETHTOOL_A_BITSET_BITS_BIT,		/* nest - _A_BITSET_BIT_* */163 164	/* add new constants above here */165	__ETHTOOL_A_BITSET_BITS_CNT,166	ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1167};168 169enum {170	ETHTOOL_A_BITSET_UNSPEC,171	ETHTOOL_A_BITSET_NOMASK,		/* flag */172	ETHTOOL_A_BITSET_SIZE,			/* u32 */173	ETHTOOL_A_BITSET_BITS,			/* nest - _A_BITSET_BITS_* */174	ETHTOOL_A_BITSET_VALUE,			/* binary */175	ETHTOOL_A_BITSET_MASK,			/* binary */176 177	/* add new constants above here */178	__ETHTOOL_A_BITSET_CNT,179	ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1180};181 182/* string sets */183 184enum {185	ETHTOOL_A_STRING_UNSPEC,186	ETHTOOL_A_STRING_INDEX,			/* u32 */187	ETHTOOL_A_STRING_VALUE,			/* string */188 189	/* add new constants above here */190	__ETHTOOL_A_STRING_CNT,191	ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1192};193 194enum {195	ETHTOOL_A_STRINGS_UNSPEC,196	ETHTOOL_A_STRINGS_STRING,		/* nest - _A_STRINGS_* */197 198	/* add new constants above here */199	__ETHTOOL_A_STRINGS_CNT,200	ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1201};202 203enum {204	ETHTOOL_A_STRINGSET_UNSPEC,205	ETHTOOL_A_STRINGSET_ID,			/* u32 */206	ETHTOOL_A_STRINGSET_COUNT,		/* u32 */207	ETHTOOL_A_STRINGSET_STRINGS,		/* nest - _A_STRINGS_* */208 209	/* add new constants above here */210	__ETHTOOL_A_STRINGSET_CNT,211	ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1212};213 214enum {215	ETHTOOL_A_STRINGSETS_UNSPEC,216	ETHTOOL_A_STRINGSETS_STRINGSET,		/* nest - _A_STRINGSET_* */217 218	/* add new constants above here */219	__ETHTOOL_A_STRINGSETS_CNT,220	ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1221};222 223/* STRSET */224 225enum {226	ETHTOOL_A_STRSET_UNSPEC,227	ETHTOOL_A_STRSET_HEADER,		/* nest - _A_HEADER_* */228	ETHTOOL_A_STRSET_STRINGSETS,		/* nest - _A_STRINGSETS_* */229	ETHTOOL_A_STRSET_COUNTS_ONLY,		/* flag */230 231	/* add new constants above here */232	__ETHTOOL_A_STRSET_CNT,233	ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1234};235 236/* LINKINFO */237 238enum {239	ETHTOOL_A_LINKINFO_UNSPEC,240	ETHTOOL_A_LINKINFO_HEADER,		/* nest - _A_HEADER_* */241	ETHTOOL_A_LINKINFO_PORT,		/* u8 */242	ETHTOOL_A_LINKINFO_PHYADDR,		/* u8 */243	ETHTOOL_A_LINKINFO_TP_MDIX,		/* u8 */244	ETHTOOL_A_LINKINFO_TP_MDIX_CTRL,	/* u8 */245	ETHTOOL_A_LINKINFO_TRANSCEIVER,		/* u8 */246 247	/* add new constants above here */248	__ETHTOOL_A_LINKINFO_CNT,249	ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1250};251 252/* LINKMODES */253 254enum {255	ETHTOOL_A_LINKMODES_UNSPEC,256	ETHTOOL_A_LINKMODES_HEADER,		/* nest - _A_HEADER_* */257	ETHTOOL_A_LINKMODES_AUTONEG,		/* u8 */258	ETHTOOL_A_LINKMODES_OURS,		/* bitset */259	ETHTOOL_A_LINKMODES_PEER,		/* bitset */260	ETHTOOL_A_LINKMODES_SPEED,		/* u32 */261	ETHTOOL_A_LINKMODES_DUPLEX,		/* u8 */262	ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG,	/* u8 */263	ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE,	/* u8 */264	ETHTOOL_A_LINKMODES_LANES,		/* u32 */265	ETHTOOL_A_LINKMODES_RATE_MATCHING,	/* u8 */266 267	/* add new constants above here */268	__ETHTOOL_A_LINKMODES_CNT,269	ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1270};271 272/* LINKSTATE */273 274enum {275	ETHTOOL_A_LINKSTATE_UNSPEC,276	ETHTOOL_A_LINKSTATE_HEADER,		/* nest - _A_HEADER_* */277	ETHTOOL_A_LINKSTATE_LINK,		/* u8 */278	ETHTOOL_A_LINKSTATE_SQI,		/* u32 */279	ETHTOOL_A_LINKSTATE_SQI_MAX,		/* u32 */280	ETHTOOL_A_LINKSTATE_EXT_STATE,		/* u8 */281	ETHTOOL_A_LINKSTATE_EXT_SUBSTATE,	/* u8 */282	ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT,	/* u32 */283 284	/* add new constants above here */285	__ETHTOOL_A_LINKSTATE_CNT,286	ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1287};288 289/* DEBUG */290 291enum {292	ETHTOOL_A_DEBUG_UNSPEC,293	ETHTOOL_A_DEBUG_HEADER,			/* nest - _A_HEADER_* */294	ETHTOOL_A_DEBUG_MSGMASK,		/* bitset */295 296	/* add new constants above here */297	__ETHTOOL_A_DEBUG_CNT,298	ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1299};300 301/* WOL */302 303enum {304	ETHTOOL_A_WOL_UNSPEC,305	ETHTOOL_A_WOL_HEADER,			/* nest - _A_HEADER_* */306	ETHTOOL_A_WOL_MODES,			/* bitset */307	ETHTOOL_A_WOL_SOPASS,			/* binary */308 309	/* add new constants above here */310	__ETHTOOL_A_WOL_CNT,311	ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1312};313 314/* FEATURES */315 316enum {317	ETHTOOL_A_FEATURES_UNSPEC,318	ETHTOOL_A_FEATURES_HEADER,			/* nest - _A_HEADER_* */319	ETHTOOL_A_FEATURES_HW,				/* bitset */320	ETHTOOL_A_FEATURES_WANTED,			/* bitset */321	ETHTOOL_A_FEATURES_ACTIVE,			/* bitset */322	ETHTOOL_A_FEATURES_NOCHANGE,			/* bitset */323 324	/* add new constants above here */325	__ETHTOOL_A_FEATURES_CNT,326	ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1327};328 329/* PRIVFLAGS */330 331enum {332	ETHTOOL_A_PRIVFLAGS_UNSPEC,333	ETHTOOL_A_PRIVFLAGS_HEADER,			/* nest - _A_HEADER_* */334	ETHTOOL_A_PRIVFLAGS_FLAGS,			/* bitset */335 336	/* add new constants above here */337	__ETHTOOL_A_PRIVFLAGS_CNT,338	ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1339};340 341/* RINGS */342 343enum {344	ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,345	ETHTOOL_TCP_DATA_SPLIT_DISABLED,346	ETHTOOL_TCP_DATA_SPLIT_ENABLED,347};348 349enum {350	ETHTOOL_A_RINGS_UNSPEC,351	ETHTOOL_A_RINGS_HEADER,				/* nest - _A_HEADER_* */352	ETHTOOL_A_RINGS_RX_MAX,				/* u32 */353	ETHTOOL_A_RINGS_RX_MINI_MAX,			/* u32 */354	ETHTOOL_A_RINGS_RX_JUMBO_MAX,			/* u32 */355	ETHTOOL_A_RINGS_TX_MAX,				/* u32 */356	ETHTOOL_A_RINGS_RX,				/* u32 */357	ETHTOOL_A_RINGS_RX_MINI,			/* u32 */358	ETHTOOL_A_RINGS_RX_JUMBO,			/* u32 */359	ETHTOOL_A_RINGS_TX,				/* u32 */360	ETHTOOL_A_RINGS_RX_BUF_LEN,                     /* u32 */361	ETHTOOL_A_RINGS_TCP_DATA_SPLIT,			/* u8 */362	ETHTOOL_A_RINGS_CQE_SIZE,			/* u32 */363	ETHTOOL_A_RINGS_TX_PUSH,			/* u8 */364	ETHTOOL_A_RINGS_RX_PUSH,			/* u8 */365	ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN,		/* u32 */366	ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX,		/* u32 */367 368	/* add new constants above here */369	__ETHTOOL_A_RINGS_CNT,370	ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)371};372 373/* CHANNELS */374 375enum {376	ETHTOOL_A_CHANNELS_UNSPEC,377	ETHTOOL_A_CHANNELS_HEADER,			/* nest - _A_HEADER_* */378	ETHTOOL_A_CHANNELS_RX_MAX,			/* u32 */379	ETHTOOL_A_CHANNELS_TX_MAX,			/* u32 */380	ETHTOOL_A_CHANNELS_OTHER_MAX,			/* u32 */381	ETHTOOL_A_CHANNELS_COMBINED_MAX,		/* u32 */382	ETHTOOL_A_CHANNELS_RX_COUNT,			/* u32 */383	ETHTOOL_A_CHANNELS_TX_COUNT,			/* u32 */384	ETHTOOL_A_CHANNELS_OTHER_COUNT,			/* u32 */385	ETHTOOL_A_CHANNELS_COMBINED_COUNT,		/* u32 */386 387	/* add new constants above here */388	__ETHTOOL_A_CHANNELS_CNT,389	ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)390};391 392/* COALESCE */393 394enum {395	ETHTOOL_A_COALESCE_UNSPEC,396	ETHTOOL_A_COALESCE_HEADER,			/* nest - _A_HEADER_* */397	ETHTOOL_A_COALESCE_RX_USECS,			/* u32 */398	ETHTOOL_A_COALESCE_RX_MAX_FRAMES,		/* u32 */399	ETHTOOL_A_COALESCE_RX_USECS_IRQ,		/* u32 */400	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ,		/* u32 */401	ETHTOOL_A_COALESCE_TX_USECS,			/* u32 */402	ETHTOOL_A_COALESCE_TX_MAX_FRAMES,		/* u32 */403	ETHTOOL_A_COALESCE_TX_USECS_IRQ,		/* u32 */404	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ,		/* u32 */405	ETHTOOL_A_COALESCE_STATS_BLOCK_USECS,		/* u32 */406	ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX,		/* u8 */407	ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX,		/* u8 */408	ETHTOOL_A_COALESCE_PKT_RATE_LOW,		/* u32 */409	ETHTOOL_A_COALESCE_RX_USECS_LOW,		/* u32 */410	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW,		/* u32 */411	ETHTOOL_A_COALESCE_TX_USECS_LOW,		/* u32 */412	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW,		/* u32 */413	ETHTOOL_A_COALESCE_PKT_RATE_HIGH,		/* u32 */414	ETHTOOL_A_COALESCE_RX_USECS_HIGH,		/* u32 */415	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH,		/* u32 */416	ETHTOOL_A_COALESCE_TX_USECS_HIGH,		/* u32 */417	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,		/* u32 */418	ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,	/* u32 */419	ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,		/* u8 */420	ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,		/* u8 */421	ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES,		/* u32 */422	ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES,		/* u32 */423	ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS,		/* u32 */424	/* nest - _A_PROFILE_IRQ_MODERATION */425	ETHTOOL_A_COALESCE_RX_PROFILE,426	/* nest - _A_PROFILE_IRQ_MODERATION */427	ETHTOOL_A_COALESCE_TX_PROFILE,428 429	/* add new constants above here */430	__ETHTOOL_A_COALESCE_CNT,431	ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)432};433 434enum {435	ETHTOOL_A_PROFILE_UNSPEC,436	/* nest, _A_IRQ_MODERATION_* */437	ETHTOOL_A_PROFILE_IRQ_MODERATION,438	__ETHTOOL_A_PROFILE_CNT,439	ETHTOOL_A_PROFILE_MAX = (__ETHTOOL_A_PROFILE_CNT - 1)440};441 442enum {443	ETHTOOL_A_IRQ_MODERATION_UNSPEC,444	ETHTOOL_A_IRQ_MODERATION_USEC,			/* u32 */445	ETHTOOL_A_IRQ_MODERATION_PKTS,			/* u32 */446	ETHTOOL_A_IRQ_MODERATION_COMPS,			/* u32 */447 448	__ETHTOOL_A_IRQ_MODERATION_CNT,449	ETHTOOL_A_IRQ_MODERATION_MAX = (__ETHTOOL_A_IRQ_MODERATION_CNT - 1)450};451 452/* PAUSE */453 454enum {455	ETHTOOL_A_PAUSE_UNSPEC,456	ETHTOOL_A_PAUSE_HEADER,				/* nest - _A_HEADER_* */457	ETHTOOL_A_PAUSE_AUTONEG,			/* u8 */458	ETHTOOL_A_PAUSE_RX,				/* u8 */459	ETHTOOL_A_PAUSE_TX,				/* u8 */460	ETHTOOL_A_PAUSE_STATS,				/* nest - _PAUSE_STAT_* */461	ETHTOOL_A_PAUSE_STATS_SRC,			/* u32 */462 463	/* add new constants above here */464	__ETHTOOL_A_PAUSE_CNT,465	ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)466};467 468enum {469	ETHTOOL_A_PAUSE_STAT_UNSPEC,470	ETHTOOL_A_PAUSE_STAT_PAD,471 472	ETHTOOL_A_PAUSE_STAT_TX_FRAMES,473	ETHTOOL_A_PAUSE_STAT_RX_FRAMES,474 475	/* add new constants above here476	 * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats!477	 */478	__ETHTOOL_A_PAUSE_STAT_CNT,479	ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1)480};481 482/* EEE */483 484enum {485	ETHTOOL_A_EEE_UNSPEC,486	ETHTOOL_A_EEE_HEADER,				/* nest - _A_HEADER_* */487	ETHTOOL_A_EEE_MODES_OURS,			/* bitset */488	ETHTOOL_A_EEE_MODES_PEER,			/* bitset */489	ETHTOOL_A_EEE_ACTIVE,				/* u8 */490	ETHTOOL_A_EEE_ENABLED,				/* u8 */491	ETHTOOL_A_EEE_TX_LPI_ENABLED,			/* u8 */492	ETHTOOL_A_EEE_TX_LPI_TIMER,			/* u32 */493 494	/* add new constants above here */495	__ETHTOOL_A_EEE_CNT,496	ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)497};498 499/* TSINFO */500 501enum {502	ETHTOOL_A_TSINFO_UNSPEC,503	ETHTOOL_A_TSINFO_HEADER,			/* nest - _A_HEADER_* */504	ETHTOOL_A_TSINFO_TIMESTAMPING,			/* bitset */505	ETHTOOL_A_TSINFO_TX_TYPES,			/* bitset */506	ETHTOOL_A_TSINFO_RX_FILTERS,			/* bitset */507	ETHTOOL_A_TSINFO_PHC_INDEX,			/* u32 */508	ETHTOOL_A_TSINFO_STATS,				/* nest - _A_TSINFO_STAT */509 510	/* add new constants above here */511	__ETHTOOL_A_TSINFO_CNT,512	ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)513};514 515enum {516	ETHTOOL_A_TS_STAT_UNSPEC,517 518	ETHTOOL_A_TS_STAT_TX_PKTS,			/* uint */519	ETHTOOL_A_TS_STAT_TX_LOST,			/* uint */520	ETHTOOL_A_TS_STAT_TX_ERR,			/* uint */521 522	/* add new constants above here */523	__ETHTOOL_A_TS_STAT_CNT,524	ETHTOOL_A_TS_STAT_MAX = (__ETHTOOL_A_TS_STAT_CNT - 1)525 526};527 528/* PHC VCLOCKS */529 530enum {531	ETHTOOL_A_PHC_VCLOCKS_UNSPEC,532	ETHTOOL_A_PHC_VCLOCKS_HEADER,			/* nest - _A_HEADER_* */533	ETHTOOL_A_PHC_VCLOCKS_NUM,			/* u32 */534	ETHTOOL_A_PHC_VCLOCKS_INDEX,			/* array, s32 */535 536	/* add new constants above here */537	__ETHTOOL_A_PHC_VCLOCKS_CNT,538	ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)539};540 541/* CABLE TEST */542 543enum {544	ETHTOOL_A_CABLE_TEST_UNSPEC,545	ETHTOOL_A_CABLE_TEST_HEADER,		/* nest - _A_HEADER_* */546 547	/* add new constants above here */548	__ETHTOOL_A_CABLE_TEST_CNT,549	ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1550};551 552/* CABLE TEST NOTIFY */553enum {554	ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC,555	ETHTOOL_A_CABLE_RESULT_CODE_OK,556	ETHTOOL_A_CABLE_RESULT_CODE_OPEN,557	ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,558	ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,559	/* detected reflection caused by the impedance discontinuity between560	 * a regular 100 Ohm cable and a part with the abnormal impedance value561	 */562	ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH,563	/* TDR not possible due to high noise level */564	ETHTOOL_A_CABLE_RESULT_CODE_NOISE,565	/* TDR resolution not possible / out of distance */566	ETHTOOL_A_CABLE_RESULT_CODE_RESOLUTION_NOT_POSSIBLE,567};568 569enum {570	ETHTOOL_A_CABLE_PAIR_A,571	ETHTOOL_A_CABLE_PAIR_B,572	ETHTOOL_A_CABLE_PAIR_C,573	ETHTOOL_A_CABLE_PAIR_D,574};575 576/* Information source for specific results. */577enum {578	ETHTOOL_A_CABLE_INF_SRC_UNSPEC,579	/* Results provided by the Time Domain Reflectometry (TDR) */580	ETHTOOL_A_CABLE_INF_SRC_TDR,581	/* Results provided by the Active Link Cable Diagnostic (ALCD) */582	ETHTOOL_A_CABLE_INF_SRC_ALCD,583};584 585enum {586	ETHTOOL_A_CABLE_RESULT_UNSPEC,587	ETHTOOL_A_CABLE_RESULT_PAIR,		/* u8 ETHTOOL_A_CABLE_PAIR_ */588	ETHTOOL_A_CABLE_RESULT_CODE,		/* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */589	ETHTOOL_A_CABLE_RESULT_SRC,		/* u32 ETHTOOL_A_CABLE_INF_SRC_ */590 591	__ETHTOOL_A_CABLE_RESULT_CNT,592	ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1)593};594 595enum {596	ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC,597	ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR,	/* u8 ETHTOOL_A_CABLE_PAIR_ */598	ETHTOOL_A_CABLE_FAULT_LENGTH_CM,	/* u32 */599	ETHTOOL_A_CABLE_FAULT_LENGTH_SRC,	/* u32 ETHTOOL_A_CABLE_INF_SRC_ */600 601	__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT,602	ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1)603};604 605enum {606	ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC,607	ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED,608	ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED609};610 611enum {612	ETHTOOL_A_CABLE_NEST_UNSPEC,613	ETHTOOL_A_CABLE_NEST_RESULT,		/* nest - ETHTOOL_A_CABLE_RESULT_ */614	ETHTOOL_A_CABLE_NEST_FAULT_LENGTH,	/* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */615	__ETHTOOL_A_CABLE_NEST_CNT,616	ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1)617};618 619enum {620	ETHTOOL_A_CABLE_TEST_NTF_UNSPEC,621	ETHTOOL_A_CABLE_TEST_NTF_HEADER,	/* nest - ETHTOOL_A_HEADER_* */622	ETHTOOL_A_CABLE_TEST_NTF_STATUS,	/* u8 - _STARTED/_COMPLETE */623	ETHTOOL_A_CABLE_TEST_NTF_NEST,		/* nest - of results: */624 625	__ETHTOOL_A_CABLE_TEST_NTF_CNT,626	ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1)627};628 629/* CABLE TEST TDR */630 631enum {632	ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC,633	ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST,		/* u32 */634	ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST,		/* u32 */635	ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP,		/* u32 */636	ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR,		/* u8 */637 638	/* add new constants above here */639	__ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT,640	ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1641};642 643enum {644	ETHTOOL_A_CABLE_TEST_TDR_UNSPEC,645	ETHTOOL_A_CABLE_TEST_TDR_HEADER,	/* nest - _A_HEADER_* */646	ETHTOOL_A_CABLE_TEST_TDR_CFG,		/* nest - *_TDR_CFG_* */647 648	/* add new constants above here */649	__ETHTOOL_A_CABLE_TEST_TDR_CNT,650	ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1651};652 653/* CABLE TEST TDR NOTIFY */654 655enum {656	ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC,657	ETHTOOL_A_CABLE_AMPLITUDE_PAIR,         /* u8 */658	ETHTOOL_A_CABLE_AMPLITUDE_mV,           /* s16 */659 660	__ETHTOOL_A_CABLE_AMPLITUDE_CNT,661	ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1)662};663 664enum {665	ETHTOOL_A_CABLE_PULSE_UNSPEC,666	ETHTOOL_A_CABLE_PULSE_mV,		/* s16 */667 668	__ETHTOOL_A_CABLE_PULSE_CNT,669	ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1)670};671 672enum {673	ETHTOOL_A_CABLE_STEP_UNSPEC,674	ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE,	/* u32 */675	ETHTOOL_A_CABLE_STEP_LAST_DISTANCE,	/* u32 */676	ETHTOOL_A_CABLE_STEP_STEP_DISTANCE,	/* u32 */677 678	__ETHTOOL_A_CABLE_STEP_CNT,679	ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1)680};681 682enum {683	ETHTOOL_A_CABLE_TDR_NEST_UNSPEC,684	ETHTOOL_A_CABLE_TDR_NEST_STEP,		/* nest - ETHTTOOL_A_CABLE_STEP */685	ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE,	/* nest - ETHTOOL_A_CABLE_AMPLITUDE */686	ETHTOOL_A_CABLE_TDR_NEST_PULSE,		/* nest - ETHTOOL_A_CABLE_PULSE */687 688	__ETHTOOL_A_CABLE_TDR_NEST_CNT,689	ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1)690};691 692enum {693	ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC,694	ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER,	/* nest - ETHTOOL_A_HEADER_* */695	ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS,	/* u8 - _STARTED/_COMPLETE */696	ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST,	/* nest - of results: */697 698	/* add new constants above here */699	__ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT,700	ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1701};702 703/* TUNNEL INFO */704 705enum {706	ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,707	ETHTOOL_UDP_TUNNEL_TYPE_GENEVE,708	ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE,709 710	__ETHTOOL_UDP_TUNNEL_TYPE_CNT711};712 713enum {714	ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC,715 716	ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT,		/* be16 */717	ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE,		/* u32 */718 719	/* add new constants above here */720	__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT,721	ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1)722};723 724enum {725	ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC,726 727	ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE,		/* u32 */728	ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES,		/* bitset */729	ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY,		/* nest - _UDP_ENTRY_* */730 731	/* add new constants above here */732	__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT,733	ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1)734};735 736enum {737	ETHTOOL_A_TUNNEL_UDP_UNSPEC,738 739	ETHTOOL_A_TUNNEL_UDP_TABLE,			/* nest - _UDP_TABLE_* */740 741	/* add new constants above here */742	__ETHTOOL_A_TUNNEL_UDP_CNT,743	ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1)744};745 746enum {747	ETHTOOL_A_TUNNEL_INFO_UNSPEC,748	ETHTOOL_A_TUNNEL_INFO_HEADER,			/* nest - _A_HEADER_* */749 750	ETHTOOL_A_TUNNEL_INFO_UDP_PORTS,		/* nest - _UDP_TABLE */751 752	/* add new constants above here */753	__ETHTOOL_A_TUNNEL_INFO_CNT,754	ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)755};756 757/* FEC */758 759enum {760	ETHTOOL_A_FEC_UNSPEC,761	ETHTOOL_A_FEC_HEADER,				/* nest - _A_HEADER_* */762	ETHTOOL_A_FEC_MODES,				/* bitset */763	ETHTOOL_A_FEC_AUTO,				/* u8 */764	ETHTOOL_A_FEC_ACTIVE,				/* u32 */765	ETHTOOL_A_FEC_STATS,				/* nest - _A_FEC_STAT */766 767	__ETHTOOL_A_FEC_CNT,768	ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)769};770 771enum {772	ETHTOOL_A_FEC_STAT_UNSPEC,773	ETHTOOL_A_FEC_STAT_PAD,774 775	ETHTOOL_A_FEC_STAT_CORRECTED,			/* array, u64 */776	ETHTOOL_A_FEC_STAT_UNCORR,			/* array, u64 */777	ETHTOOL_A_FEC_STAT_CORR_BITS,			/* array, u64 */778 779	/* add new constants above here */780	__ETHTOOL_A_FEC_STAT_CNT,781	ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)782};783 784/* MODULE EEPROM */785 786enum {787	ETHTOOL_A_MODULE_EEPROM_UNSPEC,788	ETHTOOL_A_MODULE_EEPROM_HEADER,			/* nest - _A_HEADER_* */789 790	ETHTOOL_A_MODULE_EEPROM_OFFSET,			/* u32 */791	ETHTOOL_A_MODULE_EEPROM_LENGTH,			/* u32 */792	ETHTOOL_A_MODULE_EEPROM_PAGE,			/* u8 */793	ETHTOOL_A_MODULE_EEPROM_BANK,			/* u8 */794	ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,		/* u8 */795	ETHTOOL_A_MODULE_EEPROM_DATA,			/* binary */796 797	__ETHTOOL_A_MODULE_EEPROM_CNT,798	ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)799};800 801/* STATS */802 803enum {804	ETHTOOL_A_STATS_UNSPEC,805	ETHTOOL_A_STATS_PAD,806	ETHTOOL_A_STATS_HEADER,			/* nest - _A_HEADER_* */807	ETHTOOL_A_STATS_GROUPS,			/* bitset */808 809	ETHTOOL_A_STATS_GRP,			/* nest - _A_STATS_GRP_* */810 811	ETHTOOL_A_STATS_SRC,			/* u32 */812 813	/* add new constants above here */814	__ETHTOOL_A_STATS_CNT,815	ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)816};817 818enum {819	ETHTOOL_STATS_ETH_PHY,820	ETHTOOL_STATS_ETH_MAC,821	ETHTOOL_STATS_ETH_CTRL,822	ETHTOOL_STATS_RMON,823 824	/* add new constants above here */825	__ETHTOOL_STATS_CNT826};827 828enum {829	ETHTOOL_A_STATS_GRP_UNSPEC,830	ETHTOOL_A_STATS_GRP_PAD,831 832	ETHTOOL_A_STATS_GRP_ID,			/* u32 */833	ETHTOOL_A_STATS_GRP_SS_ID,		/* u32 */834 835	ETHTOOL_A_STATS_GRP_STAT,		/* nest */836 837	ETHTOOL_A_STATS_GRP_HIST_RX,		/* nest */838	ETHTOOL_A_STATS_GRP_HIST_TX,		/* nest */839 840	ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,	/* u32 */841	ETHTOOL_A_STATS_GRP_HIST_BKT_HI,	/* u32 */842	ETHTOOL_A_STATS_GRP_HIST_VAL,		/* u64 */843 844	/* add new constants above here */845	__ETHTOOL_A_STATS_GRP_CNT,846	ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_GRP_CNT - 1)847};848 849enum {850	/* 30.3.2.1.5 aSymbolErrorDuringCarrier */851	ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,852 853	/* add new constants above here */854	__ETHTOOL_A_STATS_ETH_PHY_CNT,855	ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)856};857 858enum {859	/* 30.3.1.1.2 aFramesTransmittedOK */860	ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,861	/* 30.3.1.1.3 aSingleCollisionFrames */862	ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,863	/* 30.3.1.1.4 aMultipleCollisionFrames */864	ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,865	/* 30.3.1.1.5 aFramesReceivedOK */866	ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,867	/* 30.3.1.1.6 aFrameCheckSequenceErrors */868	ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,869	/* 30.3.1.1.7 aAlignmentErrors */870	ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,871	/* 30.3.1.1.8 aOctetsTransmittedOK */872	ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,873	/* 30.3.1.1.9 aFramesWithDeferredXmissions */874	ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,875	/* 30.3.1.1.10 aLateCollisions */876	ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,877	/* 30.3.1.1.11 aFramesAbortedDueToXSColls */878	ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,879	/* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */880	ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,881	/* 30.3.1.1.13 aCarrierSenseErrors */882	ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,883	/* 30.3.1.1.14 aOctetsReceivedOK */884	ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,885	/* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */886	ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,887 888	/* 30.3.1.1.18 aMulticastFramesXmittedOK */889	ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,890	/* 30.3.1.1.19 aBroadcastFramesXmittedOK */891	ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,892	/* 30.3.1.1.20 aFramesWithExcessiveDeferral */893	ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,894	/* 30.3.1.1.21 aMulticastFramesReceivedOK */895	ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,896	/* 30.3.1.1.22 aBroadcastFramesReceivedOK */897	ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,898	/* 30.3.1.1.23 aInRangeLengthErrors */899	ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,900	/* 30.3.1.1.24 aOutOfRangeLengthField */901	ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,902	/* 30.3.1.1.25 aFrameTooLongErrors */903	ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,904 905	/* add new constants above here */906	__ETHTOOL_A_STATS_ETH_MAC_CNT,907	ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)908};909 910enum {911	/* 30.3.3.3 aMACControlFramesTransmitted */912	ETHTOOL_A_STATS_ETH_CTRL_3_TX,913	/* 30.3.3.4 aMACControlFramesReceived */914	ETHTOOL_A_STATS_ETH_CTRL_4_RX,915	/* 30.3.3.5 aUnsupportedOpcodesReceived */916	ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,917 918	/* add new constants above here */919	__ETHTOOL_A_STATS_ETH_CTRL_CNT,920	ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)921};922 923enum {924	/* etherStatsUndersizePkts */925	ETHTOOL_A_STATS_RMON_UNDERSIZE,926	/* etherStatsOversizePkts */927	ETHTOOL_A_STATS_RMON_OVERSIZE,928	/* etherStatsFragments */929	ETHTOOL_A_STATS_RMON_FRAG,930	/* etherStatsJabbers */931	ETHTOOL_A_STATS_RMON_JABBER,932 933	/* add new constants above here */934	__ETHTOOL_A_STATS_RMON_CNT,935	ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)936};937 938/* MODULE */939 940enum {941	ETHTOOL_A_MODULE_UNSPEC,942	ETHTOOL_A_MODULE_HEADER,		/* nest - _A_HEADER_* */943	ETHTOOL_A_MODULE_POWER_MODE_POLICY,	/* u8 */944	ETHTOOL_A_MODULE_POWER_MODE,		/* u8 */945 946	/* add new constants above here */947	__ETHTOOL_A_MODULE_CNT,948	ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)949};950 951/* Power Sourcing Equipment */952enum {953	ETHTOOL_A_C33_PSE_PW_LIMIT_UNSPEC,954	ETHTOOL_A_C33_PSE_PW_LIMIT_MIN,	/* u32 */955	ETHTOOL_A_C33_PSE_PW_LIMIT_MAX,	/* u32 */956};957 958enum {959	ETHTOOL_A_PSE_UNSPEC,960	ETHTOOL_A_PSE_HEADER,			/* nest - _A_HEADER_* */961	ETHTOOL_A_PODL_PSE_ADMIN_STATE,		/* u32 */962	ETHTOOL_A_PODL_PSE_ADMIN_CONTROL,	/* u32 */963	ETHTOOL_A_PODL_PSE_PW_D_STATUS,		/* u32 */964	ETHTOOL_A_C33_PSE_ADMIN_STATE,		/* u32 */965	ETHTOOL_A_C33_PSE_ADMIN_CONTROL,	/* u32 */966	ETHTOOL_A_C33_PSE_PW_D_STATUS,		/* u32 */967	ETHTOOL_A_C33_PSE_PW_CLASS,		/* u32 */968	ETHTOOL_A_C33_PSE_ACTUAL_PW,		/* u32 */969	ETHTOOL_A_C33_PSE_EXT_STATE,		/* u32 */970	ETHTOOL_A_C33_PSE_EXT_SUBSTATE,		/* u32 */971	ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT,	/* u32 */972	ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES,	/* nest - _C33_PSE_PW_LIMIT_* */973 974	/* add new constants above here */975	__ETHTOOL_A_PSE_CNT,976	ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)977};978 979enum {980	ETHTOOL_A_RSS_UNSPEC,981	ETHTOOL_A_RSS_HEADER,982	ETHTOOL_A_RSS_CONTEXT,		/* u32 */983	ETHTOOL_A_RSS_HFUNC,		/* u32 */984	ETHTOOL_A_RSS_INDIR,		/* binary */985	ETHTOOL_A_RSS_HKEY,		/* binary */986	ETHTOOL_A_RSS_INPUT_XFRM,	/* u32 */987	ETHTOOL_A_RSS_START_CONTEXT,	/* u32 */988 989	__ETHTOOL_A_RSS_CNT,990	ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),991};992 993/* PLCA */994 995enum {996	ETHTOOL_A_PLCA_UNSPEC,997	ETHTOOL_A_PLCA_HEADER,			/* nest - _A_HEADER_* */998	ETHTOOL_A_PLCA_VERSION,			/* u16 */999	ETHTOOL_A_PLCA_ENABLED,			/* u8  */1000	ETHTOOL_A_PLCA_STATUS,			/* u8  */1001	ETHTOOL_A_PLCA_NODE_CNT,		/* u32 */1002	ETHTOOL_A_PLCA_NODE_ID,			/* u32 */1003	ETHTOOL_A_PLCA_TO_TMR,			/* u32 */1004	ETHTOOL_A_PLCA_BURST_CNT,		/* u32 */1005	ETHTOOL_A_PLCA_BURST_TMR,		/* u32 */1006 1007	/* add new constants above here */1008	__ETHTOOL_A_PLCA_CNT,1009	ETHTOOL_A_PLCA_MAX = (__ETHTOOL_A_PLCA_CNT - 1)1010};1011 1012/* MAC Merge (802.3) */1013 1014enum {1015	ETHTOOL_A_MM_STAT_UNSPEC,1016	ETHTOOL_A_MM_STAT_PAD,1017 1018	/* aMACMergeFrameAssErrorCount */1019	ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS,	/* u64 */1020	/* aMACMergeFrameSmdErrorCount */1021	ETHTOOL_A_MM_STAT_SMD_ERRORS,		/* u64 */1022	/* aMACMergeFrameAssOkCount */1023	ETHTOOL_A_MM_STAT_REASSEMBLY_OK,	/* u64 */1024	/* aMACMergeFragCountRx */1025	ETHTOOL_A_MM_STAT_RX_FRAG_COUNT,	/* u64 */1026	/* aMACMergeFragCountTx */1027	ETHTOOL_A_MM_STAT_TX_FRAG_COUNT,	/* u64 */1028	/* aMACMergeHoldCount */1029	ETHTOOL_A_MM_STAT_HOLD_COUNT,		/* u64 */1030 1031	/* add new constants above here */1032	__ETHTOOL_A_MM_STAT_CNT,1033	ETHTOOL_A_MM_STAT_MAX = (__ETHTOOL_A_MM_STAT_CNT - 1)1034};1035 1036enum {1037	ETHTOOL_A_MM_UNSPEC,1038	ETHTOOL_A_MM_HEADER,			/* nest - _A_HEADER_* */1039	ETHTOOL_A_MM_PMAC_ENABLED,		/* u8 */1040	ETHTOOL_A_MM_TX_ENABLED,		/* u8 */1041	ETHTOOL_A_MM_TX_ACTIVE,			/* u8 */1042	ETHTOOL_A_MM_TX_MIN_FRAG_SIZE,		/* u32 */1043	ETHTOOL_A_MM_RX_MIN_FRAG_SIZE,		/* u32 */1044	ETHTOOL_A_MM_VERIFY_ENABLED,		/* u8 */1045	ETHTOOL_A_MM_VERIFY_STATUS,		/* u8 */1046	ETHTOOL_A_MM_VERIFY_TIME,		/* u32 */1047	ETHTOOL_A_MM_MAX_VERIFY_TIME,		/* u32 */1048	ETHTOOL_A_MM_STATS,			/* nest - _A_MM_STAT_* */1049 1050	/* add new constants above here */1051	__ETHTOOL_A_MM_CNT,1052	ETHTOOL_A_MM_MAX = (__ETHTOOL_A_MM_CNT - 1)1053};1054 1055/* MODULE_FW_FLASH */1056 1057enum {1058	ETHTOOL_A_MODULE_FW_FLASH_UNSPEC,1059	ETHTOOL_A_MODULE_FW_FLASH_HEADER,		/* nest - _A_HEADER_* */1060	ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME,		/* string */1061	ETHTOOL_A_MODULE_FW_FLASH_PASSWORD,		/* u32 */1062	ETHTOOL_A_MODULE_FW_FLASH_STATUS,		/* u32 */1063	ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG,		/* string */1064	ETHTOOL_A_MODULE_FW_FLASH_DONE,			/* uint */1065	ETHTOOL_A_MODULE_FW_FLASH_TOTAL,		/* uint */1066 1067	/* add new constants above here */1068	__ETHTOOL_A_MODULE_FW_FLASH_CNT,1069	ETHTOOL_A_MODULE_FW_FLASH_MAX = (__ETHTOOL_A_MODULE_FW_FLASH_CNT - 1)1070};1071 1072enum {1073	ETHTOOL_A_PHY_UNSPEC,1074	ETHTOOL_A_PHY_HEADER,			/* nest - _A_HEADER_* */1075	ETHTOOL_A_PHY_INDEX,			/* u32 */1076	ETHTOOL_A_PHY_DRVNAME,			/* string */1077	ETHTOOL_A_PHY_NAME,			/* string */1078	ETHTOOL_A_PHY_UPSTREAM_TYPE,		/* u32 */1079	ETHTOOL_A_PHY_UPSTREAM_INDEX,		/* u32 */1080	ETHTOOL_A_PHY_UPSTREAM_SFP_NAME,	/* string */1081	ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME,	/* string */1082 1083	/* add new constants above here */1084	__ETHTOOL_A_PHY_CNT,1085	ETHTOOL_A_PHY_MAX = (__ETHTOOL_A_PHY_CNT - 1)1086};1087 1088/* generic netlink info */1089#define ETHTOOL_GENL_NAME "ethtool"1090#define ETHTOOL_GENL_VERSION 11091 1092#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"1093 1094#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */1095