1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * See Documentation/networking/ethtool-netlink.rst in kernel source tree for 6*4882a593Smuzhiyun * doucumentation of the interface. 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_ 10*4882a593Smuzhiyun #define _UAPI_LINUX_ETHTOOL_NETLINK_H_ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #include <linux/ethtool.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* message types - userspace to kernel */ 15*4882a593Smuzhiyun enum { 16*4882a593Smuzhiyun ETHTOOL_MSG_USER_NONE, 17*4882a593Smuzhiyun ETHTOOL_MSG_STRSET_GET, 18*4882a593Smuzhiyun ETHTOOL_MSG_LINKINFO_GET, 19*4882a593Smuzhiyun ETHTOOL_MSG_LINKINFO_SET, 20*4882a593Smuzhiyun ETHTOOL_MSG_LINKMODES_GET, 21*4882a593Smuzhiyun ETHTOOL_MSG_LINKMODES_SET, 22*4882a593Smuzhiyun ETHTOOL_MSG_LINKSTATE_GET, 23*4882a593Smuzhiyun ETHTOOL_MSG_DEBUG_GET, 24*4882a593Smuzhiyun ETHTOOL_MSG_DEBUG_SET, 25*4882a593Smuzhiyun ETHTOOL_MSG_WOL_GET, 26*4882a593Smuzhiyun ETHTOOL_MSG_WOL_SET, 27*4882a593Smuzhiyun ETHTOOL_MSG_FEATURES_GET, 28*4882a593Smuzhiyun ETHTOOL_MSG_FEATURES_SET, 29*4882a593Smuzhiyun ETHTOOL_MSG_PRIVFLAGS_GET, 30*4882a593Smuzhiyun ETHTOOL_MSG_PRIVFLAGS_SET, 31*4882a593Smuzhiyun ETHTOOL_MSG_RINGS_GET, 32*4882a593Smuzhiyun ETHTOOL_MSG_RINGS_SET, 33*4882a593Smuzhiyun ETHTOOL_MSG_CHANNELS_GET, 34*4882a593Smuzhiyun ETHTOOL_MSG_CHANNELS_SET, 35*4882a593Smuzhiyun ETHTOOL_MSG_COALESCE_GET, 36*4882a593Smuzhiyun ETHTOOL_MSG_COALESCE_SET, 37*4882a593Smuzhiyun ETHTOOL_MSG_PAUSE_GET, 38*4882a593Smuzhiyun ETHTOOL_MSG_PAUSE_SET, 39*4882a593Smuzhiyun ETHTOOL_MSG_EEE_GET, 40*4882a593Smuzhiyun ETHTOOL_MSG_EEE_SET, 41*4882a593Smuzhiyun ETHTOOL_MSG_TSINFO_GET, 42*4882a593Smuzhiyun ETHTOOL_MSG_CABLE_TEST_ACT, 43*4882a593Smuzhiyun ETHTOOL_MSG_CABLE_TEST_TDR_ACT, 44*4882a593Smuzhiyun ETHTOOL_MSG_TUNNEL_INFO_GET, 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun /* add new constants above here */ 47*4882a593Smuzhiyun __ETHTOOL_MSG_USER_CNT, 48*4882a593Smuzhiyun ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun /* message types - kernel to userspace */ 52*4882a593Smuzhiyun enum { 53*4882a593Smuzhiyun ETHTOOL_MSG_KERNEL_NONE, 54*4882a593Smuzhiyun ETHTOOL_MSG_STRSET_GET_REPLY, 55*4882a593Smuzhiyun ETHTOOL_MSG_LINKINFO_GET_REPLY, 56*4882a593Smuzhiyun ETHTOOL_MSG_LINKINFO_NTF, 57*4882a593Smuzhiyun ETHTOOL_MSG_LINKMODES_GET_REPLY, 58*4882a593Smuzhiyun ETHTOOL_MSG_LINKMODES_NTF, 59*4882a593Smuzhiyun ETHTOOL_MSG_LINKSTATE_GET_REPLY, 60*4882a593Smuzhiyun ETHTOOL_MSG_DEBUG_GET_REPLY, 61*4882a593Smuzhiyun ETHTOOL_MSG_DEBUG_NTF, 62*4882a593Smuzhiyun ETHTOOL_MSG_WOL_GET_REPLY, 63*4882a593Smuzhiyun ETHTOOL_MSG_WOL_NTF, 64*4882a593Smuzhiyun ETHTOOL_MSG_FEATURES_GET_REPLY, 65*4882a593Smuzhiyun ETHTOOL_MSG_FEATURES_SET_REPLY, 66*4882a593Smuzhiyun ETHTOOL_MSG_FEATURES_NTF, 67*4882a593Smuzhiyun ETHTOOL_MSG_PRIVFLAGS_GET_REPLY, 68*4882a593Smuzhiyun ETHTOOL_MSG_PRIVFLAGS_NTF, 69*4882a593Smuzhiyun ETHTOOL_MSG_RINGS_GET_REPLY, 70*4882a593Smuzhiyun ETHTOOL_MSG_RINGS_NTF, 71*4882a593Smuzhiyun ETHTOOL_MSG_CHANNELS_GET_REPLY, 72*4882a593Smuzhiyun ETHTOOL_MSG_CHANNELS_NTF, 73*4882a593Smuzhiyun ETHTOOL_MSG_COALESCE_GET_REPLY, 74*4882a593Smuzhiyun ETHTOOL_MSG_COALESCE_NTF, 75*4882a593Smuzhiyun ETHTOOL_MSG_PAUSE_GET_REPLY, 76*4882a593Smuzhiyun ETHTOOL_MSG_PAUSE_NTF, 77*4882a593Smuzhiyun ETHTOOL_MSG_EEE_GET_REPLY, 78*4882a593Smuzhiyun ETHTOOL_MSG_EEE_NTF, 79*4882a593Smuzhiyun ETHTOOL_MSG_TSINFO_GET_REPLY, 80*4882a593Smuzhiyun ETHTOOL_MSG_CABLE_TEST_NTF, 81*4882a593Smuzhiyun ETHTOOL_MSG_CABLE_TEST_TDR_NTF, 82*4882a593Smuzhiyun ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY, 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun /* add new constants above here */ 85*4882a593Smuzhiyun __ETHTOOL_MSG_KERNEL_CNT, 86*4882a593Smuzhiyun ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun /* request header */ 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun /* use compact bitsets in reply */ 92*4882a593Smuzhiyun #define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0) 93*4882a593Smuzhiyun /* provide optional reply for SET or ACT requests */ 94*4882a593Smuzhiyun #define ETHTOOL_FLAG_OMIT_REPLY (1 << 1) 95*4882a593Smuzhiyun /* request statistics, if supported by the driver */ 96*4882a593Smuzhiyun #define ETHTOOL_FLAG_STATS (1 << 2) 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \ 99*4882a593Smuzhiyun ETHTOOL_FLAG_OMIT_REPLY | \ 100*4882a593Smuzhiyun ETHTOOL_FLAG_STATS) 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun enum { 103*4882a593Smuzhiyun ETHTOOL_A_HEADER_UNSPEC, 104*4882a593Smuzhiyun ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */ 105*4882a593Smuzhiyun ETHTOOL_A_HEADER_DEV_NAME, /* string */ 106*4882a593Smuzhiyun ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */ 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun /* add new constants above here */ 109*4882a593Smuzhiyun __ETHTOOL_A_HEADER_CNT, 110*4882a593Smuzhiyun ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun /* bit sets */ 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun enum { 116*4882a593Smuzhiyun ETHTOOL_A_BITSET_BIT_UNSPEC, 117*4882a593Smuzhiyun ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */ 118*4882a593Smuzhiyun ETHTOOL_A_BITSET_BIT_NAME, /* string */ 119*4882a593Smuzhiyun ETHTOOL_A_BITSET_BIT_VALUE, /* flag */ 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun /* add new constants above here */ 122*4882a593Smuzhiyun __ETHTOOL_A_BITSET_BIT_CNT, 123*4882a593Smuzhiyun ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun enum { 127*4882a593Smuzhiyun ETHTOOL_A_BITSET_BITS_UNSPEC, 128*4882a593Smuzhiyun ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */ 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun /* add new constants above here */ 131*4882a593Smuzhiyun __ETHTOOL_A_BITSET_BITS_CNT, 132*4882a593Smuzhiyun ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun enum { 136*4882a593Smuzhiyun ETHTOOL_A_BITSET_UNSPEC, 137*4882a593Smuzhiyun ETHTOOL_A_BITSET_NOMASK, /* flag */ 138*4882a593Smuzhiyun ETHTOOL_A_BITSET_SIZE, /* u32 */ 139*4882a593Smuzhiyun ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */ 140*4882a593Smuzhiyun ETHTOOL_A_BITSET_VALUE, /* binary */ 141*4882a593Smuzhiyun ETHTOOL_A_BITSET_MASK, /* binary */ 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun /* add new constants above here */ 144*4882a593Smuzhiyun __ETHTOOL_A_BITSET_CNT, 145*4882a593Smuzhiyun ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun /* string sets */ 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun enum { 151*4882a593Smuzhiyun ETHTOOL_A_STRING_UNSPEC, 152*4882a593Smuzhiyun ETHTOOL_A_STRING_INDEX, /* u32 */ 153*4882a593Smuzhiyun ETHTOOL_A_STRING_VALUE, /* string */ 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun /* add new constants above here */ 156*4882a593Smuzhiyun __ETHTOOL_A_STRING_CNT, 157*4882a593Smuzhiyun ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun enum { 161*4882a593Smuzhiyun ETHTOOL_A_STRINGS_UNSPEC, 162*4882a593Smuzhiyun ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */ 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun /* add new constants above here */ 165*4882a593Smuzhiyun __ETHTOOL_A_STRINGS_CNT, 166*4882a593Smuzhiyun ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun enum { 170*4882a593Smuzhiyun ETHTOOL_A_STRINGSET_UNSPEC, 171*4882a593Smuzhiyun ETHTOOL_A_STRINGSET_ID, /* u32 */ 172*4882a593Smuzhiyun ETHTOOL_A_STRINGSET_COUNT, /* u32 */ 173*4882a593Smuzhiyun ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */ 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun /* add new constants above here */ 176*4882a593Smuzhiyun __ETHTOOL_A_STRINGSET_CNT, 177*4882a593Smuzhiyun ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun enum { 181*4882a593Smuzhiyun ETHTOOL_A_STRINGSETS_UNSPEC, 182*4882a593Smuzhiyun ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */ 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* add new constants above here */ 185*4882a593Smuzhiyun __ETHTOOL_A_STRINGSETS_CNT, 186*4882a593Smuzhiyun ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun /* STRSET */ 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun enum { 192*4882a593Smuzhiyun ETHTOOL_A_STRSET_UNSPEC, 193*4882a593Smuzhiyun ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */ 194*4882a593Smuzhiyun ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */ 195*4882a593Smuzhiyun ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */ 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun /* add new constants above here */ 198*4882a593Smuzhiyun __ETHTOOL_A_STRSET_CNT, 199*4882a593Smuzhiyun ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun /* LINKINFO */ 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun enum { 205*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_UNSPEC, 206*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */ 207*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_PORT, /* u8 */ 208*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */ 209*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */ 210*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */ 211*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */ 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun /* add new constants above here */ 214*4882a593Smuzhiyun __ETHTOOL_A_LINKINFO_CNT, 215*4882a593Smuzhiyun ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun /* LINKMODES */ 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun enum { 221*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_UNSPEC, 222*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */ 223*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */ 224*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_OURS, /* bitset */ 225*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_PEER, /* bitset */ 226*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_SPEED, /* u32 */ 227*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */ 228*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ 229*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun /* add new constants above here */ 232*4882a593Smuzhiyun __ETHTOOL_A_LINKMODES_CNT, 233*4882a593Smuzhiyun ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1 234*4882a593Smuzhiyun }; 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun /* LINKSTATE */ 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun enum { 239*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_UNSPEC, 240*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */ 241*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_LINK, /* u8 */ 242*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_SQI, /* u32 */ 243*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */ 244*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */ 245*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */ 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun /* add new constants above here */ 248*4882a593Smuzhiyun __ETHTOOL_A_LINKSTATE_CNT, 249*4882a593Smuzhiyun ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1 250*4882a593Smuzhiyun }; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun /* DEBUG */ 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun enum { 255*4882a593Smuzhiyun ETHTOOL_A_DEBUG_UNSPEC, 256*4882a593Smuzhiyun ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */ 257*4882a593Smuzhiyun ETHTOOL_A_DEBUG_MSGMASK, /* bitset */ 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun /* add new constants above here */ 260*4882a593Smuzhiyun __ETHTOOL_A_DEBUG_CNT, 261*4882a593Smuzhiyun ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1 262*4882a593Smuzhiyun }; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun /* WOL */ 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun enum { 267*4882a593Smuzhiyun ETHTOOL_A_WOL_UNSPEC, 268*4882a593Smuzhiyun ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */ 269*4882a593Smuzhiyun ETHTOOL_A_WOL_MODES, /* bitset */ 270*4882a593Smuzhiyun ETHTOOL_A_WOL_SOPASS, /* binary */ 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun /* add new constants above here */ 273*4882a593Smuzhiyun __ETHTOOL_A_WOL_CNT, 274*4882a593Smuzhiyun ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1 275*4882a593Smuzhiyun }; 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun /* FEATURES */ 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun enum { 280*4882a593Smuzhiyun ETHTOOL_A_FEATURES_UNSPEC, 281*4882a593Smuzhiyun ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */ 282*4882a593Smuzhiyun ETHTOOL_A_FEATURES_HW, /* bitset */ 283*4882a593Smuzhiyun ETHTOOL_A_FEATURES_WANTED, /* bitset */ 284*4882a593Smuzhiyun ETHTOOL_A_FEATURES_ACTIVE, /* bitset */ 285*4882a593Smuzhiyun ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */ 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun /* add new constants above here */ 288*4882a593Smuzhiyun __ETHTOOL_A_FEATURES_CNT, 289*4882a593Smuzhiyun ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun /* PRIVFLAGS */ 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun enum { 295*4882a593Smuzhiyun ETHTOOL_A_PRIVFLAGS_UNSPEC, 296*4882a593Smuzhiyun ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */ 297*4882a593Smuzhiyun ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */ 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun /* add new constants above here */ 300*4882a593Smuzhiyun __ETHTOOL_A_PRIVFLAGS_CNT, 301*4882a593Smuzhiyun ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1 302*4882a593Smuzhiyun }; 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun /* RINGS */ 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun enum { 307*4882a593Smuzhiyun ETHTOOL_A_RINGS_UNSPEC, 308*4882a593Smuzhiyun ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */ 309*4882a593Smuzhiyun ETHTOOL_A_RINGS_RX_MAX, /* u32 */ 310*4882a593Smuzhiyun ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */ 311*4882a593Smuzhiyun ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */ 312*4882a593Smuzhiyun ETHTOOL_A_RINGS_TX_MAX, /* u32 */ 313*4882a593Smuzhiyun ETHTOOL_A_RINGS_RX, /* u32 */ 314*4882a593Smuzhiyun ETHTOOL_A_RINGS_RX_MINI, /* u32 */ 315*4882a593Smuzhiyun ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */ 316*4882a593Smuzhiyun ETHTOOL_A_RINGS_TX, /* u32 */ 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun /* add new constants above here */ 319*4882a593Smuzhiyun __ETHTOOL_A_RINGS_CNT, 320*4882a593Smuzhiyun ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1) 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun /* CHANNELS */ 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun enum { 326*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_UNSPEC, 327*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */ 328*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */ 329*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */ 330*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */ 331*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */ 332*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */ 333*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */ 334*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */ 335*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */ 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun /* add new constants above here */ 338*4882a593Smuzhiyun __ETHTOOL_A_CHANNELS_CNT, 339*4882a593Smuzhiyun ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1) 340*4882a593Smuzhiyun }; 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun /* COALESCE */ 343*4882a593Smuzhiyun 344*4882a593Smuzhiyun enum { 345*4882a593Smuzhiyun ETHTOOL_A_COALESCE_UNSPEC, 346*4882a593Smuzhiyun ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */ 347*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_USECS, /* u32 */ 348*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */ 349*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */ 350*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */ 351*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_USECS, /* u32 */ 352*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */ 353*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */ 354*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */ 355*4882a593Smuzhiyun ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */ 356*4882a593Smuzhiyun ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */ 357*4882a593Smuzhiyun ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */ 358*4882a593Smuzhiyun ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */ 359*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */ 360*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */ 361*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */ 362*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */ 363*4882a593Smuzhiyun ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */ 364*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */ 365*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */ 366*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */ 367*4882a593Smuzhiyun ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */ 368*4882a593Smuzhiyun ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */ 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun /* add new constants above here */ 371*4882a593Smuzhiyun __ETHTOOL_A_COALESCE_CNT, 372*4882a593Smuzhiyun ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1) 373*4882a593Smuzhiyun }; 374*4882a593Smuzhiyun 375*4882a593Smuzhiyun /* PAUSE */ 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun enum { 378*4882a593Smuzhiyun ETHTOOL_A_PAUSE_UNSPEC, 379*4882a593Smuzhiyun ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */ 380*4882a593Smuzhiyun ETHTOOL_A_PAUSE_AUTONEG, /* u8 */ 381*4882a593Smuzhiyun ETHTOOL_A_PAUSE_RX, /* u8 */ 382*4882a593Smuzhiyun ETHTOOL_A_PAUSE_TX, /* u8 */ 383*4882a593Smuzhiyun ETHTOOL_A_PAUSE_STATS, /* nest - _PAUSE_STAT_* */ 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun /* add new constants above here */ 386*4882a593Smuzhiyun __ETHTOOL_A_PAUSE_CNT, 387*4882a593Smuzhiyun ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1) 388*4882a593Smuzhiyun }; 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun enum { 391*4882a593Smuzhiyun ETHTOOL_A_PAUSE_STAT_UNSPEC, 392*4882a593Smuzhiyun ETHTOOL_A_PAUSE_STAT_PAD, 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun ETHTOOL_A_PAUSE_STAT_TX_FRAMES, 395*4882a593Smuzhiyun ETHTOOL_A_PAUSE_STAT_RX_FRAMES, 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun /* add new constants above here 398*4882a593Smuzhiyun * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats! 399*4882a593Smuzhiyun */ 400*4882a593Smuzhiyun __ETHTOOL_A_PAUSE_STAT_CNT, 401*4882a593Smuzhiyun ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1) 402*4882a593Smuzhiyun }; 403*4882a593Smuzhiyun 404*4882a593Smuzhiyun /* EEE */ 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun enum { 407*4882a593Smuzhiyun ETHTOOL_A_EEE_UNSPEC, 408*4882a593Smuzhiyun ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */ 409*4882a593Smuzhiyun ETHTOOL_A_EEE_MODES_OURS, /* bitset */ 410*4882a593Smuzhiyun ETHTOOL_A_EEE_MODES_PEER, /* bitset */ 411*4882a593Smuzhiyun ETHTOOL_A_EEE_ACTIVE, /* u8 */ 412*4882a593Smuzhiyun ETHTOOL_A_EEE_ENABLED, /* u8 */ 413*4882a593Smuzhiyun ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */ 414*4882a593Smuzhiyun ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */ 415*4882a593Smuzhiyun 416*4882a593Smuzhiyun /* add new constants above here */ 417*4882a593Smuzhiyun __ETHTOOL_A_EEE_CNT, 418*4882a593Smuzhiyun ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1) 419*4882a593Smuzhiyun }; 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun /* TSINFO */ 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun enum { 424*4882a593Smuzhiyun ETHTOOL_A_TSINFO_UNSPEC, 425*4882a593Smuzhiyun ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */ 426*4882a593Smuzhiyun ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */ 427*4882a593Smuzhiyun ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */ 428*4882a593Smuzhiyun ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */ 429*4882a593Smuzhiyun ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */ 430*4882a593Smuzhiyun 431*4882a593Smuzhiyun /* add new constants above here */ 432*4882a593Smuzhiyun __ETHTOOL_A_TSINFO_CNT, 433*4882a593Smuzhiyun ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1) 434*4882a593Smuzhiyun }; 435*4882a593Smuzhiyun 436*4882a593Smuzhiyun /* CABLE TEST */ 437*4882a593Smuzhiyun 438*4882a593Smuzhiyun enum { 439*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_UNSPEC, 440*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_HEADER, /* nest - _A_HEADER_* */ 441*4882a593Smuzhiyun 442*4882a593Smuzhiyun /* add new constants above here */ 443*4882a593Smuzhiyun __ETHTOOL_A_CABLE_TEST_CNT, 444*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1 445*4882a593Smuzhiyun }; 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun /* CABLE TEST NOTIFY */ 448*4882a593Smuzhiyun enum { 449*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC, 450*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_CODE_OK, 451*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_CODE_OPEN, 452*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT, 453*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT, 454*4882a593Smuzhiyun }; 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun enum { 457*4882a593Smuzhiyun ETHTOOL_A_CABLE_PAIR_A, 458*4882a593Smuzhiyun ETHTOOL_A_CABLE_PAIR_B, 459*4882a593Smuzhiyun ETHTOOL_A_CABLE_PAIR_C, 460*4882a593Smuzhiyun ETHTOOL_A_CABLE_PAIR_D, 461*4882a593Smuzhiyun }; 462*4882a593Smuzhiyun 463*4882a593Smuzhiyun enum { 464*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_UNSPEC, 465*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ 466*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */ 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun __ETHTOOL_A_CABLE_RESULT_CNT, 469*4882a593Smuzhiyun ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1) 470*4882a593Smuzhiyun }; 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun enum { 473*4882a593Smuzhiyun ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC, 474*4882a593Smuzhiyun ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ 475*4882a593Smuzhiyun ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */ 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT, 478*4882a593Smuzhiyun ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1) 479*4882a593Smuzhiyun }; 480*4882a593Smuzhiyun 481*4882a593Smuzhiyun enum { 482*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC, 483*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED, 484*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED 485*4882a593Smuzhiyun }; 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun enum { 488*4882a593Smuzhiyun ETHTOOL_A_CABLE_NEST_UNSPEC, 489*4882a593Smuzhiyun ETHTOOL_A_CABLE_NEST_RESULT, /* nest - ETHTOOL_A_CABLE_RESULT_ */ 490*4882a593Smuzhiyun ETHTOOL_A_CABLE_NEST_FAULT_LENGTH, /* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */ 491*4882a593Smuzhiyun __ETHTOOL_A_CABLE_NEST_CNT, 492*4882a593Smuzhiyun ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1) 493*4882a593Smuzhiyun }; 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun enum { 496*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_UNSPEC, 497*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */ 498*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */ 499*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_NEST, /* nest - of results: */ 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun __ETHTOOL_A_CABLE_TEST_NTF_CNT, 502*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1) 503*4882a593Smuzhiyun }; 504*4882a593Smuzhiyun 505*4882a593Smuzhiyun /* CABLE TEST TDR */ 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun enum { 508*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC, 509*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST, /* u32 */ 510*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST, /* u32 */ 511*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP, /* u32 */ 512*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR, /* u8 */ 513*4882a593Smuzhiyun 514*4882a593Smuzhiyun /* add new constants above here */ 515*4882a593Smuzhiyun __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT, 516*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1 517*4882a593Smuzhiyun }; 518*4882a593Smuzhiyun 519*4882a593Smuzhiyun enum { 520*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_UNSPEC, 521*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_HEADER, /* nest - _A_HEADER_* */ 522*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_CFG, /* nest - *_TDR_CFG_* */ 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun /* add new constants above here */ 525*4882a593Smuzhiyun __ETHTOOL_A_CABLE_TEST_TDR_CNT, 526*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1 527*4882a593Smuzhiyun }; 528*4882a593Smuzhiyun 529*4882a593Smuzhiyun /* CABLE TEST TDR NOTIFY */ 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun enum { 532*4882a593Smuzhiyun ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC, 533*4882a593Smuzhiyun ETHTOOL_A_CABLE_AMPLITUDE_PAIR, /* u8 */ 534*4882a593Smuzhiyun ETHTOOL_A_CABLE_AMPLITUDE_mV, /* s16 */ 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun __ETHTOOL_A_CABLE_AMPLITUDE_CNT, 537*4882a593Smuzhiyun ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1) 538*4882a593Smuzhiyun }; 539*4882a593Smuzhiyun 540*4882a593Smuzhiyun enum { 541*4882a593Smuzhiyun ETHTOOL_A_CABLE_PULSE_UNSPEC, 542*4882a593Smuzhiyun ETHTOOL_A_CABLE_PULSE_mV, /* s16 */ 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun __ETHTOOL_A_CABLE_PULSE_CNT, 545*4882a593Smuzhiyun ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1) 546*4882a593Smuzhiyun }; 547*4882a593Smuzhiyun 548*4882a593Smuzhiyun enum { 549*4882a593Smuzhiyun ETHTOOL_A_CABLE_STEP_UNSPEC, 550*4882a593Smuzhiyun ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, /* u32 */ 551*4882a593Smuzhiyun ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */ 552*4882a593Smuzhiyun ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */ 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun __ETHTOOL_A_CABLE_STEP_CNT, 555*4882a593Smuzhiyun ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1) 556*4882a593Smuzhiyun }; 557*4882a593Smuzhiyun 558*4882a593Smuzhiyun enum { 559*4882a593Smuzhiyun ETHTOOL_A_CABLE_TDR_NEST_UNSPEC, 560*4882a593Smuzhiyun ETHTOOL_A_CABLE_TDR_NEST_STEP, /* nest - ETHTTOOL_A_CABLE_STEP */ 561*4882a593Smuzhiyun ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */ 562*4882a593Smuzhiyun ETHTOOL_A_CABLE_TDR_NEST_PULSE, /* nest - ETHTOOL_A_CABLE_PULSE */ 563*4882a593Smuzhiyun 564*4882a593Smuzhiyun __ETHTOOL_A_CABLE_TDR_NEST_CNT, 565*4882a593Smuzhiyun ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1) 566*4882a593Smuzhiyun }; 567*4882a593Smuzhiyun 568*4882a593Smuzhiyun enum { 569*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC, 570*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */ 571*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */ 572*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST, /* nest - of results: */ 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun /* add new constants above here */ 575*4882a593Smuzhiyun __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT, 576*4882a593Smuzhiyun ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1 577*4882a593Smuzhiyun }; 578*4882a593Smuzhiyun 579*4882a593Smuzhiyun /* TUNNEL INFO */ 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun enum { 582*4882a593Smuzhiyun ETHTOOL_UDP_TUNNEL_TYPE_VXLAN, 583*4882a593Smuzhiyun ETHTOOL_UDP_TUNNEL_TYPE_GENEVE, 584*4882a593Smuzhiyun ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE, 585*4882a593Smuzhiyun 586*4882a593Smuzhiyun __ETHTOOL_UDP_TUNNEL_TYPE_CNT 587*4882a593Smuzhiyun }; 588*4882a593Smuzhiyun 589*4882a593Smuzhiyun enum { 590*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC, 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT, /* be16 */ 593*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE, /* u32 */ 594*4882a593Smuzhiyun 595*4882a593Smuzhiyun /* add new constants above here */ 596*4882a593Smuzhiyun __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT, 597*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1) 598*4882a593Smuzhiyun }; 599*4882a593Smuzhiyun 600*4882a593Smuzhiyun enum { 601*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC, 602*4882a593Smuzhiyun 603*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE, /* u32 */ 604*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES, /* bitset */ 605*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY, /* nest - _UDP_ENTRY_* */ 606*4882a593Smuzhiyun 607*4882a593Smuzhiyun /* add new constants above here */ 608*4882a593Smuzhiyun __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT, 609*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1) 610*4882a593Smuzhiyun }; 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun enum { 613*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_UNSPEC, 614*4882a593Smuzhiyun 615*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_TABLE, /* nest - _UDP_TABLE_* */ 616*4882a593Smuzhiyun 617*4882a593Smuzhiyun /* add new constants above here */ 618*4882a593Smuzhiyun __ETHTOOL_A_TUNNEL_UDP_CNT, 619*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1) 620*4882a593Smuzhiyun }; 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun enum { 623*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_INFO_UNSPEC, 624*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_INFO_HEADER, /* nest - _A_HEADER_* */ 625*4882a593Smuzhiyun 626*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_INFO_UDP_PORTS, /* nest - _UDP_TABLE */ 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun /* add new constants above here */ 629*4882a593Smuzhiyun __ETHTOOL_A_TUNNEL_INFO_CNT, 630*4882a593Smuzhiyun ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1) 631*4882a593Smuzhiyun }; 632*4882a593Smuzhiyun 633*4882a593Smuzhiyun /* generic netlink info */ 634*4882a593Smuzhiyun #define ETHTOOL_GENL_NAME "ethtool" 635*4882a593Smuzhiyun #define ETHTOOL_GENL_VERSION 1 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun #define ETHTOOL_MCGRP_MONITOR_NAME "monitor" 638*4882a593Smuzhiyun 639*4882a593Smuzhiyun #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */ 640