Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
0002 /*
0003  * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool
0004  *
0005  * See Documentation/networking/ethtool-netlink.rst in kernel source tree for
0006  * doucumentation of the interface.
0007  */
0008 
0009 #ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_
0010 #define _UAPI_LINUX_ETHTOOL_NETLINK_H_
0011 
0012 #include <linux/ethtool.h>
0013 
0014 /* message types - userspace to kernel */
0015 enum {
0016     ETHTOOL_MSG_USER_NONE,
0017     ETHTOOL_MSG_STRSET_GET,
0018     ETHTOOL_MSG_LINKINFO_GET,
0019     ETHTOOL_MSG_LINKINFO_SET,
0020     ETHTOOL_MSG_LINKMODES_GET,
0021     ETHTOOL_MSG_LINKMODES_SET,
0022     ETHTOOL_MSG_LINKSTATE_GET,
0023     ETHTOOL_MSG_DEBUG_GET,
0024     ETHTOOL_MSG_DEBUG_SET,
0025     ETHTOOL_MSG_WOL_GET,
0026     ETHTOOL_MSG_WOL_SET,
0027     ETHTOOL_MSG_FEATURES_GET,
0028     ETHTOOL_MSG_FEATURES_SET,
0029     ETHTOOL_MSG_PRIVFLAGS_GET,
0030     ETHTOOL_MSG_PRIVFLAGS_SET,
0031     ETHTOOL_MSG_RINGS_GET,
0032     ETHTOOL_MSG_RINGS_SET,
0033     ETHTOOL_MSG_CHANNELS_GET,
0034     ETHTOOL_MSG_CHANNELS_SET,
0035     ETHTOOL_MSG_COALESCE_GET,
0036     ETHTOOL_MSG_COALESCE_SET,
0037     ETHTOOL_MSG_PAUSE_GET,
0038     ETHTOOL_MSG_PAUSE_SET,
0039     ETHTOOL_MSG_EEE_GET,
0040     ETHTOOL_MSG_EEE_SET,
0041     ETHTOOL_MSG_TSINFO_GET,
0042     ETHTOOL_MSG_CABLE_TEST_ACT,
0043     ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
0044     ETHTOOL_MSG_TUNNEL_INFO_GET,
0045     ETHTOOL_MSG_FEC_GET,
0046     ETHTOOL_MSG_FEC_SET,
0047     ETHTOOL_MSG_MODULE_EEPROM_GET,
0048     ETHTOOL_MSG_STATS_GET,
0049     ETHTOOL_MSG_PHC_VCLOCKS_GET,
0050     ETHTOOL_MSG_MODULE_GET,
0051     ETHTOOL_MSG_MODULE_SET,
0052 
0053     /* add new constants above here */
0054     __ETHTOOL_MSG_USER_CNT,
0055     ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
0056 };
0057 
0058 /* message types - kernel to userspace */
0059 enum {
0060     ETHTOOL_MSG_KERNEL_NONE,
0061     ETHTOOL_MSG_STRSET_GET_REPLY,
0062     ETHTOOL_MSG_LINKINFO_GET_REPLY,
0063     ETHTOOL_MSG_LINKINFO_NTF,
0064     ETHTOOL_MSG_LINKMODES_GET_REPLY,
0065     ETHTOOL_MSG_LINKMODES_NTF,
0066     ETHTOOL_MSG_LINKSTATE_GET_REPLY,
0067     ETHTOOL_MSG_DEBUG_GET_REPLY,
0068     ETHTOOL_MSG_DEBUG_NTF,
0069     ETHTOOL_MSG_WOL_GET_REPLY,
0070     ETHTOOL_MSG_WOL_NTF,
0071     ETHTOOL_MSG_FEATURES_GET_REPLY,
0072     ETHTOOL_MSG_FEATURES_SET_REPLY,
0073     ETHTOOL_MSG_FEATURES_NTF,
0074     ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,
0075     ETHTOOL_MSG_PRIVFLAGS_NTF,
0076     ETHTOOL_MSG_RINGS_GET_REPLY,
0077     ETHTOOL_MSG_RINGS_NTF,
0078     ETHTOOL_MSG_CHANNELS_GET_REPLY,
0079     ETHTOOL_MSG_CHANNELS_NTF,
0080     ETHTOOL_MSG_COALESCE_GET_REPLY,
0081     ETHTOOL_MSG_COALESCE_NTF,
0082     ETHTOOL_MSG_PAUSE_GET_REPLY,
0083     ETHTOOL_MSG_PAUSE_NTF,
0084     ETHTOOL_MSG_EEE_GET_REPLY,
0085     ETHTOOL_MSG_EEE_NTF,
0086     ETHTOOL_MSG_TSINFO_GET_REPLY,
0087     ETHTOOL_MSG_CABLE_TEST_NTF,
0088     ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
0089     ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
0090     ETHTOOL_MSG_FEC_GET_REPLY,
0091     ETHTOOL_MSG_FEC_NTF,
0092     ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
0093     ETHTOOL_MSG_STATS_GET_REPLY,
0094     ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
0095     ETHTOOL_MSG_MODULE_GET_REPLY,
0096     ETHTOOL_MSG_MODULE_NTF,
0097 
0098     /* add new constants above here */
0099     __ETHTOOL_MSG_KERNEL_CNT,
0100     ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
0101 };
0102 
0103 /* request header */
0104 
0105 /* use compact bitsets in reply */
0106 #define ETHTOOL_FLAG_COMPACT_BITSETS    (1 << 0)
0107 /* provide optional reply for SET or ACT requests */
0108 #define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
0109 /* request statistics, if supported by the driver */
0110 #define ETHTOOL_FLAG_STATS      (1 << 2)
0111 
0112 #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
0113               ETHTOOL_FLAG_OMIT_REPLY | \
0114               ETHTOOL_FLAG_STATS)
0115 
0116 enum {
0117     ETHTOOL_A_HEADER_UNSPEC,
0118     ETHTOOL_A_HEADER_DEV_INDEX,     /* u32 */
0119     ETHTOOL_A_HEADER_DEV_NAME,      /* string */
0120     ETHTOOL_A_HEADER_FLAGS,         /* u32 - ETHTOOL_FLAG_* */
0121 
0122     /* add new constants above here */
0123     __ETHTOOL_A_HEADER_CNT,
0124     ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1
0125 };
0126 
0127 /* bit sets */
0128 
0129 enum {
0130     ETHTOOL_A_BITSET_BIT_UNSPEC,
0131     ETHTOOL_A_BITSET_BIT_INDEX,     /* u32 */
0132     ETHTOOL_A_BITSET_BIT_NAME,      /* string */
0133     ETHTOOL_A_BITSET_BIT_VALUE,     /* flag */
0134 
0135     /* add new constants above here */
0136     __ETHTOOL_A_BITSET_BIT_CNT,
0137     ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1
0138 };
0139 
0140 enum {
0141     ETHTOOL_A_BITSET_BITS_UNSPEC,
0142     ETHTOOL_A_BITSET_BITS_BIT,      /* nest - _A_BITSET_BIT_* */
0143 
0144     /* add new constants above here */
0145     __ETHTOOL_A_BITSET_BITS_CNT,
0146     ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1
0147 };
0148 
0149 enum {
0150     ETHTOOL_A_BITSET_UNSPEC,
0151     ETHTOOL_A_BITSET_NOMASK,        /* flag */
0152     ETHTOOL_A_BITSET_SIZE,          /* u32 */
0153     ETHTOOL_A_BITSET_BITS,          /* nest - _A_BITSET_BITS_* */
0154     ETHTOOL_A_BITSET_VALUE,         /* binary */
0155     ETHTOOL_A_BITSET_MASK,          /* binary */
0156 
0157     /* add new constants above here */
0158     __ETHTOOL_A_BITSET_CNT,
0159     ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1
0160 };
0161 
0162 /* string sets */
0163 
0164 enum {
0165     ETHTOOL_A_STRING_UNSPEC,
0166     ETHTOOL_A_STRING_INDEX,         /* u32 */
0167     ETHTOOL_A_STRING_VALUE,         /* string */
0168 
0169     /* add new constants above here */
0170     __ETHTOOL_A_STRING_CNT,
0171     ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1
0172 };
0173 
0174 enum {
0175     ETHTOOL_A_STRINGS_UNSPEC,
0176     ETHTOOL_A_STRINGS_STRING,       /* nest - _A_STRINGS_* */
0177 
0178     /* add new constants above here */
0179     __ETHTOOL_A_STRINGS_CNT,
0180     ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1
0181 };
0182 
0183 enum {
0184     ETHTOOL_A_STRINGSET_UNSPEC,
0185     ETHTOOL_A_STRINGSET_ID,         /* u32 */
0186     ETHTOOL_A_STRINGSET_COUNT,      /* u32 */
0187     ETHTOOL_A_STRINGSET_STRINGS,        /* nest - _A_STRINGS_* */
0188 
0189     /* add new constants above here */
0190     __ETHTOOL_A_STRINGSET_CNT,
0191     ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1
0192 };
0193 
0194 enum {
0195     ETHTOOL_A_STRINGSETS_UNSPEC,
0196     ETHTOOL_A_STRINGSETS_STRINGSET,     /* nest - _A_STRINGSET_* */
0197 
0198     /* add new constants above here */
0199     __ETHTOOL_A_STRINGSETS_CNT,
0200     ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1
0201 };
0202 
0203 /* STRSET */
0204 
0205 enum {
0206     ETHTOOL_A_STRSET_UNSPEC,
0207     ETHTOOL_A_STRSET_HEADER,        /* nest - _A_HEADER_* */
0208     ETHTOOL_A_STRSET_STRINGSETS,        /* nest - _A_STRINGSETS_* */
0209     ETHTOOL_A_STRSET_COUNTS_ONLY,       /* flag */
0210 
0211     /* add new constants above here */
0212     __ETHTOOL_A_STRSET_CNT,
0213     ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1
0214 };
0215 
0216 /* LINKINFO */
0217 
0218 enum {
0219     ETHTOOL_A_LINKINFO_UNSPEC,
0220     ETHTOOL_A_LINKINFO_HEADER,      /* nest - _A_HEADER_* */
0221     ETHTOOL_A_LINKINFO_PORT,        /* u8 */
0222     ETHTOOL_A_LINKINFO_PHYADDR,     /* u8 */
0223     ETHTOOL_A_LINKINFO_TP_MDIX,     /* u8 */
0224     ETHTOOL_A_LINKINFO_TP_MDIX_CTRL,    /* u8 */
0225     ETHTOOL_A_LINKINFO_TRANSCEIVER,     /* u8 */
0226 
0227     /* add new constants above here */
0228     __ETHTOOL_A_LINKINFO_CNT,
0229     ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
0230 };
0231 
0232 /* LINKMODES */
0233 
0234 enum {
0235     ETHTOOL_A_LINKMODES_UNSPEC,
0236     ETHTOOL_A_LINKMODES_HEADER,     /* nest - _A_HEADER_* */
0237     ETHTOOL_A_LINKMODES_AUTONEG,        /* u8 */
0238     ETHTOOL_A_LINKMODES_OURS,       /* bitset */
0239     ETHTOOL_A_LINKMODES_PEER,       /* bitset */
0240     ETHTOOL_A_LINKMODES_SPEED,      /* u32 */
0241     ETHTOOL_A_LINKMODES_DUPLEX,     /* u8 */
0242     ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG,   /* u8 */
0243     ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
0244     ETHTOOL_A_LINKMODES_LANES,      /* u32 */
0245 
0246     /* add new constants above here */
0247     __ETHTOOL_A_LINKMODES_CNT,
0248     ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
0249 };
0250 
0251 /* LINKSTATE */
0252 
0253 enum {
0254     ETHTOOL_A_LINKSTATE_UNSPEC,
0255     ETHTOOL_A_LINKSTATE_HEADER,     /* nest - _A_HEADER_* */
0256     ETHTOOL_A_LINKSTATE_LINK,       /* u8 */
0257     ETHTOOL_A_LINKSTATE_SQI,        /* u32 */
0258     ETHTOOL_A_LINKSTATE_SQI_MAX,        /* u32 */
0259     ETHTOOL_A_LINKSTATE_EXT_STATE,      /* u8 */
0260     ETHTOOL_A_LINKSTATE_EXT_SUBSTATE,   /* u8 */
0261 
0262     /* add new constants above here */
0263     __ETHTOOL_A_LINKSTATE_CNT,
0264     ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
0265 };
0266 
0267 /* DEBUG */
0268 
0269 enum {
0270     ETHTOOL_A_DEBUG_UNSPEC,
0271     ETHTOOL_A_DEBUG_HEADER,         /* nest - _A_HEADER_* */
0272     ETHTOOL_A_DEBUG_MSGMASK,        /* bitset */
0273 
0274     /* add new constants above here */
0275     __ETHTOOL_A_DEBUG_CNT,
0276     ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1
0277 };
0278 
0279 /* WOL */
0280 
0281 enum {
0282     ETHTOOL_A_WOL_UNSPEC,
0283     ETHTOOL_A_WOL_HEADER,           /* nest - _A_HEADER_* */
0284     ETHTOOL_A_WOL_MODES,            /* bitset */
0285     ETHTOOL_A_WOL_SOPASS,           /* binary */
0286 
0287     /* add new constants above here */
0288     __ETHTOOL_A_WOL_CNT,
0289     ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
0290 };
0291 
0292 /* FEATURES */
0293 
0294 enum {
0295     ETHTOOL_A_FEATURES_UNSPEC,
0296     ETHTOOL_A_FEATURES_HEADER,          /* nest - _A_HEADER_* */
0297     ETHTOOL_A_FEATURES_HW,              /* bitset */
0298     ETHTOOL_A_FEATURES_WANTED,          /* bitset */
0299     ETHTOOL_A_FEATURES_ACTIVE,          /* bitset */
0300     ETHTOOL_A_FEATURES_NOCHANGE,            /* bitset */
0301 
0302     /* add new constants above here */
0303     __ETHTOOL_A_FEATURES_CNT,
0304     ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1
0305 };
0306 
0307 /* PRIVFLAGS */
0308 
0309 enum {
0310     ETHTOOL_A_PRIVFLAGS_UNSPEC,
0311     ETHTOOL_A_PRIVFLAGS_HEADER,         /* nest - _A_HEADER_* */
0312     ETHTOOL_A_PRIVFLAGS_FLAGS,          /* bitset */
0313 
0314     /* add new constants above here */
0315     __ETHTOOL_A_PRIVFLAGS_CNT,
0316     ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1
0317 };
0318 
0319 /* RINGS */
0320 
0321 enum {
0322     ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,
0323     ETHTOOL_TCP_DATA_SPLIT_DISABLED,
0324     ETHTOOL_TCP_DATA_SPLIT_ENABLED,
0325 };
0326 
0327 enum {
0328     ETHTOOL_A_RINGS_UNSPEC,
0329     ETHTOOL_A_RINGS_HEADER,             /* nest - _A_HEADER_* */
0330     ETHTOOL_A_RINGS_RX_MAX,             /* u32 */
0331     ETHTOOL_A_RINGS_RX_MINI_MAX,            /* u32 */
0332     ETHTOOL_A_RINGS_RX_JUMBO_MAX,           /* u32 */
0333     ETHTOOL_A_RINGS_TX_MAX,             /* u32 */
0334     ETHTOOL_A_RINGS_RX,             /* u32 */
0335     ETHTOOL_A_RINGS_RX_MINI,            /* u32 */
0336     ETHTOOL_A_RINGS_RX_JUMBO,           /* u32 */
0337     ETHTOOL_A_RINGS_TX,             /* u32 */
0338     ETHTOOL_A_RINGS_RX_BUF_LEN,                     /* u32 */
0339     ETHTOOL_A_RINGS_TCP_DATA_SPLIT,         /* u8 */
0340     ETHTOOL_A_RINGS_CQE_SIZE,           /* u32 */
0341     ETHTOOL_A_RINGS_TX_PUSH,            /* u8 */
0342 
0343     /* add new constants above here */
0344     __ETHTOOL_A_RINGS_CNT,
0345     ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
0346 };
0347 
0348 /* CHANNELS */
0349 
0350 enum {
0351     ETHTOOL_A_CHANNELS_UNSPEC,
0352     ETHTOOL_A_CHANNELS_HEADER,          /* nest - _A_HEADER_* */
0353     ETHTOOL_A_CHANNELS_RX_MAX,          /* u32 */
0354     ETHTOOL_A_CHANNELS_TX_MAX,          /* u32 */
0355     ETHTOOL_A_CHANNELS_OTHER_MAX,           /* u32 */
0356     ETHTOOL_A_CHANNELS_COMBINED_MAX,        /* u32 */
0357     ETHTOOL_A_CHANNELS_RX_COUNT,            /* u32 */
0358     ETHTOOL_A_CHANNELS_TX_COUNT,            /* u32 */
0359     ETHTOOL_A_CHANNELS_OTHER_COUNT,         /* u32 */
0360     ETHTOOL_A_CHANNELS_COMBINED_COUNT,      /* u32 */
0361 
0362     /* add new constants above here */
0363     __ETHTOOL_A_CHANNELS_CNT,
0364     ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
0365 };
0366 
0367 /* COALESCE */
0368 
0369 enum {
0370     ETHTOOL_A_COALESCE_UNSPEC,
0371     ETHTOOL_A_COALESCE_HEADER,          /* nest - _A_HEADER_* */
0372     ETHTOOL_A_COALESCE_RX_USECS,            /* u32 */
0373     ETHTOOL_A_COALESCE_RX_MAX_FRAMES,       /* u32 */
0374     ETHTOOL_A_COALESCE_RX_USECS_IRQ,        /* u32 */
0375     ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ,       /* u32 */
0376     ETHTOOL_A_COALESCE_TX_USECS,            /* u32 */
0377     ETHTOOL_A_COALESCE_TX_MAX_FRAMES,       /* u32 */
0378     ETHTOOL_A_COALESCE_TX_USECS_IRQ,        /* u32 */
0379     ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ,       /* u32 */
0380     ETHTOOL_A_COALESCE_STATS_BLOCK_USECS,       /* u32 */
0381     ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX,     /* u8 */
0382     ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX,     /* u8 */
0383     ETHTOOL_A_COALESCE_PKT_RATE_LOW,        /* u32 */
0384     ETHTOOL_A_COALESCE_RX_USECS_LOW,        /* u32 */
0385     ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW,       /* u32 */
0386     ETHTOOL_A_COALESCE_TX_USECS_LOW,        /* u32 */
0387     ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW,       /* u32 */
0388     ETHTOOL_A_COALESCE_PKT_RATE_HIGH,       /* u32 */
0389     ETHTOOL_A_COALESCE_RX_USECS_HIGH,       /* u32 */
0390     ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH,      /* u32 */
0391     ETHTOOL_A_COALESCE_TX_USECS_HIGH,       /* u32 */
0392     ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,      /* u32 */
0393     ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,    /* u32 */
0394     ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,     /* u8 */
0395     ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,     /* u8 */
0396 
0397     /* add new constants above here */
0398     __ETHTOOL_A_COALESCE_CNT,
0399     ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
0400 };
0401 
0402 /* PAUSE */
0403 
0404 enum {
0405     ETHTOOL_A_PAUSE_UNSPEC,
0406     ETHTOOL_A_PAUSE_HEADER,             /* nest - _A_HEADER_* */
0407     ETHTOOL_A_PAUSE_AUTONEG,            /* u8 */
0408     ETHTOOL_A_PAUSE_RX,             /* u8 */
0409     ETHTOOL_A_PAUSE_TX,             /* u8 */
0410     ETHTOOL_A_PAUSE_STATS,              /* nest - _PAUSE_STAT_* */
0411 
0412     /* add new constants above here */
0413     __ETHTOOL_A_PAUSE_CNT,
0414     ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
0415 };
0416 
0417 enum {
0418     ETHTOOL_A_PAUSE_STAT_UNSPEC,
0419     ETHTOOL_A_PAUSE_STAT_PAD,
0420 
0421     ETHTOOL_A_PAUSE_STAT_TX_FRAMES,
0422     ETHTOOL_A_PAUSE_STAT_RX_FRAMES,
0423 
0424     /* add new constants above here
0425      * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats!
0426      */
0427     __ETHTOOL_A_PAUSE_STAT_CNT,
0428     ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1)
0429 };
0430 
0431 /* EEE */
0432 
0433 enum {
0434     ETHTOOL_A_EEE_UNSPEC,
0435     ETHTOOL_A_EEE_HEADER,               /* nest - _A_HEADER_* */
0436     ETHTOOL_A_EEE_MODES_OURS,           /* bitset */
0437     ETHTOOL_A_EEE_MODES_PEER,           /* bitset */
0438     ETHTOOL_A_EEE_ACTIVE,               /* u8 */
0439     ETHTOOL_A_EEE_ENABLED,              /* u8 */
0440     ETHTOOL_A_EEE_TX_LPI_ENABLED,           /* u8 */
0441     ETHTOOL_A_EEE_TX_LPI_TIMER,         /* u32 */
0442 
0443     /* add new constants above here */
0444     __ETHTOOL_A_EEE_CNT,
0445     ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)
0446 };
0447 
0448 /* TSINFO */
0449 
0450 enum {
0451     ETHTOOL_A_TSINFO_UNSPEC,
0452     ETHTOOL_A_TSINFO_HEADER,            /* nest - _A_HEADER_* */
0453     ETHTOOL_A_TSINFO_TIMESTAMPING,          /* bitset */
0454     ETHTOOL_A_TSINFO_TX_TYPES,          /* bitset */
0455     ETHTOOL_A_TSINFO_RX_FILTERS,            /* bitset */
0456     ETHTOOL_A_TSINFO_PHC_INDEX,         /* u32 */
0457 
0458     /* add new constants above here */
0459     __ETHTOOL_A_TSINFO_CNT,
0460     ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
0461 };
0462 
0463 /* PHC VCLOCKS */
0464 
0465 enum {
0466     ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
0467     ETHTOOL_A_PHC_VCLOCKS_HEADER,           /* nest - _A_HEADER_* */
0468     ETHTOOL_A_PHC_VCLOCKS_NUM,          /* u32 */
0469     ETHTOOL_A_PHC_VCLOCKS_INDEX,            /* array, s32 */
0470 
0471     /* add new constants above here */
0472     __ETHTOOL_A_PHC_VCLOCKS_CNT,
0473     ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
0474 };
0475 
0476 /* CABLE TEST */
0477 
0478 enum {
0479     ETHTOOL_A_CABLE_TEST_UNSPEC,
0480     ETHTOOL_A_CABLE_TEST_HEADER,        /* nest - _A_HEADER_* */
0481 
0482     /* add new constants above here */
0483     __ETHTOOL_A_CABLE_TEST_CNT,
0484     ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1
0485 };
0486 
0487 /* CABLE TEST NOTIFY */
0488 enum {
0489     ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC,
0490     ETHTOOL_A_CABLE_RESULT_CODE_OK,
0491     ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
0492     ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
0493     ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
0494 };
0495 
0496 enum {
0497     ETHTOOL_A_CABLE_PAIR_A,
0498     ETHTOOL_A_CABLE_PAIR_B,
0499     ETHTOOL_A_CABLE_PAIR_C,
0500     ETHTOOL_A_CABLE_PAIR_D,
0501 };
0502 
0503 enum {
0504     ETHTOOL_A_CABLE_RESULT_UNSPEC,
0505     ETHTOOL_A_CABLE_RESULT_PAIR,        /* u8 ETHTOOL_A_CABLE_PAIR_ */
0506     ETHTOOL_A_CABLE_RESULT_CODE,        /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */
0507 
0508     __ETHTOOL_A_CABLE_RESULT_CNT,
0509     ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1)
0510 };
0511 
0512 enum {
0513     ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC,
0514     ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR,  /* u8 ETHTOOL_A_CABLE_PAIR_ */
0515     ETHTOOL_A_CABLE_FAULT_LENGTH_CM,    /* u32 */
0516 
0517     __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT,
0518     ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1)
0519 };
0520 
0521 enum {
0522     ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC,
0523     ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED,
0524     ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED
0525 };
0526 
0527 enum {
0528     ETHTOOL_A_CABLE_NEST_UNSPEC,
0529     ETHTOOL_A_CABLE_NEST_RESULT,        /* nest - ETHTOOL_A_CABLE_RESULT_ */
0530     ETHTOOL_A_CABLE_NEST_FAULT_LENGTH,  /* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */
0531     __ETHTOOL_A_CABLE_NEST_CNT,
0532     ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1)
0533 };
0534 
0535 enum {
0536     ETHTOOL_A_CABLE_TEST_NTF_UNSPEC,
0537     ETHTOOL_A_CABLE_TEST_NTF_HEADER,    /* nest - ETHTOOL_A_HEADER_* */
0538     ETHTOOL_A_CABLE_TEST_NTF_STATUS,    /* u8 - _STARTED/_COMPLETE */
0539     ETHTOOL_A_CABLE_TEST_NTF_NEST,      /* nest - of results: */
0540 
0541     __ETHTOOL_A_CABLE_TEST_NTF_CNT,
0542     ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1)
0543 };
0544 
0545 /* CABLE TEST TDR */
0546 
0547 enum {
0548     ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC,
0549     ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST,     /* u32 */
0550     ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST,      /* u32 */
0551     ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP,      /* u32 */
0552     ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR,      /* u8 */
0553 
0554     /* add new constants above here */
0555     __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT,
0556     ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1
0557 };
0558 
0559 enum {
0560     ETHTOOL_A_CABLE_TEST_TDR_UNSPEC,
0561     ETHTOOL_A_CABLE_TEST_TDR_HEADER,    /* nest - _A_HEADER_* */
0562     ETHTOOL_A_CABLE_TEST_TDR_CFG,       /* nest - *_TDR_CFG_* */
0563 
0564     /* add new constants above here */
0565     __ETHTOOL_A_CABLE_TEST_TDR_CNT,
0566     ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1
0567 };
0568 
0569 /* CABLE TEST TDR NOTIFY */
0570 
0571 enum {
0572     ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC,
0573     ETHTOOL_A_CABLE_AMPLITUDE_PAIR,         /* u8 */
0574     ETHTOOL_A_CABLE_AMPLITUDE_mV,           /* s16 */
0575 
0576     __ETHTOOL_A_CABLE_AMPLITUDE_CNT,
0577     ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1)
0578 };
0579 
0580 enum {
0581     ETHTOOL_A_CABLE_PULSE_UNSPEC,
0582     ETHTOOL_A_CABLE_PULSE_mV,       /* s16 */
0583 
0584     __ETHTOOL_A_CABLE_PULSE_CNT,
0585     ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1)
0586 };
0587 
0588 enum {
0589     ETHTOOL_A_CABLE_STEP_UNSPEC,
0590     ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE,    /* u32 */
0591     ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */
0592     ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */
0593 
0594     __ETHTOOL_A_CABLE_STEP_CNT,
0595     ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1)
0596 };
0597 
0598 enum {
0599     ETHTOOL_A_CABLE_TDR_NEST_UNSPEC,
0600     ETHTOOL_A_CABLE_TDR_NEST_STEP,      /* nest - ETHTTOOL_A_CABLE_STEP */
0601     ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */
0602     ETHTOOL_A_CABLE_TDR_NEST_PULSE,     /* nest - ETHTOOL_A_CABLE_PULSE */
0603 
0604     __ETHTOOL_A_CABLE_TDR_NEST_CNT,
0605     ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1)
0606 };
0607 
0608 enum {
0609     ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC,
0610     ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER,    /* nest - ETHTOOL_A_HEADER_* */
0611     ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS,    /* u8 - _STARTED/_COMPLETE */
0612     ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST,  /* nest - of results: */
0613 
0614     /* add new constants above here */
0615     __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT,
0616     ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1
0617 };
0618 
0619 /* TUNNEL INFO */
0620 
0621 enum {
0622     ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,
0623     ETHTOOL_UDP_TUNNEL_TYPE_GENEVE,
0624     ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE,
0625 
0626     __ETHTOOL_UDP_TUNNEL_TYPE_CNT
0627 };
0628 
0629 enum {
0630     ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC,
0631 
0632     ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT,        /* be16 */
0633     ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE,        /* u32 */
0634 
0635     /* add new constants above here */
0636     __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT,
0637     ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1)
0638 };
0639 
0640 enum {
0641     ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC,
0642 
0643     ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE,        /* u32 */
0644     ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES,       /* bitset */
0645     ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY,       /* nest - _UDP_ENTRY_* */
0646 
0647     /* add new constants above here */
0648     __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT,
0649     ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1)
0650 };
0651 
0652 enum {
0653     ETHTOOL_A_TUNNEL_UDP_UNSPEC,
0654 
0655     ETHTOOL_A_TUNNEL_UDP_TABLE,         /* nest - _UDP_TABLE_* */
0656 
0657     /* add new constants above here */
0658     __ETHTOOL_A_TUNNEL_UDP_CNT,
0659     ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1)
0660 };
0661 
0662 enum {
0663     ETHTOOL_A_TUNNEL_INFO_UNSPEC,
0664     ETHTOOL_A_TUNNEL_INFO_HEADER,           /* nest - _A_HEADER_* */
0665 
0666     ETHTOOL_A_TUNNEL_INFO_UDP_PORTS,        /* nest - _UDP_TABLE */
0667 
0668     /* add new constants above here */
0669     __ETHTOOL_A_TUNNEL_INFO_CNT,
0670     ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
0671 };
0672 
0673 /* FEC */
0674 
0675 enum {
0676     ETHTOOL_A_FEC_UNSPEC,
0677     ETHTOOL_A_FEC_HEADER,               /* nest - _A_HEADER_* */
0678     ETHTOOL_A_FEC_MODES,                /* bitset */
0679     ETHTOOL_A_FEC_AUTO,             /* u8 */
0680     ETHTOOL_A_FEC_ACTIVE,               /* u32 */
0681     ETHTOOL_A_FEC_STATS,                /* nest - _A_FEC_STAT */
0682 
0683     __ETHTOOL_A_FEC_CNT,
0684     ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
0685 };
0686 
0687 enum {
0688     ETHTOOL_A_FEC_STAT_UNSPEC,
0689     ETHTOOL_A_FEC_STAT_PAD,
0690 
0691     ETHTOOL_A_FEC_STAT_CORRECTED,           /* array, u64 */
0692     ETHTOOL_A_FEC_STAT_UNCORR,          /* array, u64 */
0693     ETHTOOL_A_FEC_STAT_CORR_BITS,           /* array, u64 */
0694 
0695     /* add new constants above here */
0696     __ETHTOOL_A_FEC_STAT_CNT,
0697     ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
0698 };
0699 
0700 /* MODULE EEPROM */
0701 
0702 enum {
0703     ETHTOOL_A_MODULE_EEPROM_UNSPEC,
0704     ETHTOOL_A_MODULE_EEPROM_HEADER,         /* nest - _A_HEADER_* */
0705 
0706     ETHTOOL_A_MODULE_EEPROM_OFFSET,         /* u32 */
0707     ETHTOOL_A_MODULE_EEPROM_LENGTH,         /* u32 */
0708     ETHTOOL_A_MODULE_EEPROM_PAGE,           /* u8 */
0709     ETHTOOL_A_MODULE_EEPROM_BANK,           /* u8 */
0710     ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,        /* u8 */
0711     ETHTOOL_A_MODULE_EEPROM_DATA,           /* binary */
0712 
0713     __ETHTOOL_A_MODULE_EEPROM_CNT,
0714     ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
0715 };
0716 
0717 /* STATS */
0718 
0719 enum {
0720     ETHTOOL_A_STATS_UNSPEC,
0721     ETHTOOL_A_STATS_PAD,
0722     ETHTOOL_A_STATS_HEADER,         /* nest - _A_HEADER_* */
0723     ETHTOOL_A_STATS_GROUPS,         /* bitset */
0724 
0725     ETHTOOL_A_STATS_GRP,            /* nest - _A_STATS_GRP_* */
0726 
0727     /* add new constants above here */
0728     __ETHTOOL_A_STATS_CNT,
0729     ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
0730 };
0731 
0732 enum {
0733     ETHTOOL_STATS_ETH_PHY,
0734     ETHTOOL_STATS_ETH_MAC,
0735     ETHTOOL_STATS_ETH_CTRL,
0736     ETHTOOL_STATS_RMON,
0737 
0738     /* add new constants above here */
0739     __ETHTOOL_STATS_CNT
0740 };
0741 
0742 enum {
0743     ETHTOOL_A_STATS_GRP_UNSPEC,
0744     ETHTOOL_A_STATS_GRP_PAD,
0745 
0746     ETHTOOL_A_STATS_GRP_ID,         /* u32 */
0747     ETHTOOL_A_STATS_GRP_SS_ID,      /* u32 */
0748 
0749     ETHTOOL_A_STATS_GRP_STAT,       /* nest */
0750 
0751     ETHTOOL_A_STATS_GRP_HIST_RX,        /* nest */
0752     ETHTOOL_A_STATS_GRP_HIST_TX,        /* nest */
0753 
0754     ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,   /* u32 */
0755     ETHTOOL_A_STATS_GRP_HIST_BKT_HI,    /* u32 */
0756     ETHTOOL_A_STATS_GRP_HIST_VAL,       /* u64 */
0757 
0758     /* add new constants above here */
0759     __ETHTOOL_A_STATS_GRP_CNT,
0760     ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
0761 };
0762 
0763 enum {
0764     /* 30.3.2.1.5 aSymbolErrorDuringCarrier */
0765     ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
0766 
0767     /* add new constants above here */
0768     __ETHTOOL_A_STATS_ETH_PHY_CNT,
0769     ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
0770 };
0771 
0772 enum {
0773     /* 30.3.1.1.2 aFramesTransmittedOK */
0774     ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
0775     /* 30.3.1.1.3 aSingleCollisionFrames */
0776     ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
0777     /* 30.3.1.1.4 aMultipleCollisionFrames */
0778     ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
0779     /* 30.3.1.1.5 aFramesReceivedOK */
0780     ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
0781     /* 30.3.1.1.6 aFrameCheckSequenceErrors */
0782     ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
0783     /* 30.3.1.1.7 aAlignmentErrors */
0784     ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
0785     /* 30.3.1.1.8 aOctetsTransmittedOK */
0786     ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
0787     /* 30.3.1.1.9 aFramesWithDeferredXmissions */
0788     ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
0789     /* 30.3.1.1.10 aLateCollisions */
0790     ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
0791     /* 30.3.1.1.11 aFramesAbortedDueToXSColls */
0792     ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
0793     /* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */
0794     ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
0795     /* 30.3.1.1.13 aCarrierSenseErrors */
0796     ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
0797     /* 30.3.1.1.14 aOctetsReceivedOK */
0798     ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
0799     /* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */
0800     ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
0801 
0802     /* 30.3.1.1.18 aMulticastFramesXmittedOK */
0803     ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
0804     /* 30.3.1.1.19 aBroadcastFramesXmittedOK */
0805     ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
0806     /* 30.3.1.1.20 aFramesWithExcessiveDeferral */
0807     ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
0808     /* 30.3.1.1.21 aMulticastFramesReceivedOK */
0809     ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
0810     /* 30.3.1.1.22 aBroadcastFramesReceivedOK */
0811     ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
0812     /* 30.3.1.1.23 aInRangeLengthErrors */
0813     ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
0814     /* 30.3.1.1.24 aOutOfRangeLengthField */
0815     ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
0816     /* 30.3.1.1.25 aFrameTooLongErrors */
0817     ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
0818 
0819     /* add new constants above here */
0820     __ETHTOOL_A_STATS_ETH_MAC_CNT,
0821     ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
0822 };
0823 
0824 enum {
0825     /* 30.3.3.3 aMACControlFramesTransmitted */
0826     ETHTOOL_A_STATS_ETH_CTRL_3_TX,
0827     /* 30.3.3.4 aMACControlFramesReceived */
0828     ETHTOOL_A_STATS_ETH_CTRL_4_RX,
0829     /* 30.3.3.5 aUnsupportedOpcodesReceived */
0830     ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
0831 
0832     /* add new constants above here */
0833     __ETHTOOL_A_STATS_ETH_CTRL_CNT,
0834     ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
0835 };
0836 
0837 enum {
0838     /* etherStatsUndersizePkts */
0839     ETHTOOL_A_STATS_RMON_UNDERSIZE,
0840     /* etherStatsOversizePkts */
0841     ETHTOOL_A_STATS_RMON_OVERSIZE,
0842     /* etherStatsFragments */
0843     ETHTOOL_A_STATS_RMON_FRAG,
0844     /* etherStatsJabbers */
0845     ETHTOOL_A_STATS_RMON_JABBER,
0846 
0847     /* add new constants above here */
0848     __ETHTOOL_A_STATS_RMON_CNT,
0849     ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
0850 };
0851 
0852 /* MODULE */
0853 
0854 enum {
0855     ETHTOOL_A_MODULE_UNSPEC,
0856     ETHTOOL_A_MODULE_HEADER,        /* nest - _A_HEADER_* */
0857     ETHTOOL_A_MODULE_POWER_MODE_POLICY, /* u8 */
0858     ETHTOOL_A_MODULE_POWER_MODE,        /* u8 */
0859 
0860     /* add new constants above here */
0861     __ETHTOOL_A_MODULE_CNT,
0862     ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
0863 };
0864 
0865 /* generic netlink info */
0866 #define ETHTOOL_GENL_NAME "ethtool"
0867 #define ETHTOOL_GENL_VERSION 1
0868 
0869 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
0870 
0871 #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */