xref: /OK3568_Linux_fs/kernel/include/uapi/linux/ethtool_netlink.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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