]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - include/uapi/linux/ethtool_netlink.h
net: phy: Add support for polling cable test
[mirror_ubuntu-jammy-kernel.git] / include / uapi / linux / ethtool_netlink.h
CommitLineData
2b4a8990
MK
1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2/*
3 * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool
4 *
5 * See Documentation/networking/ethtool-netlink.txt in kernel source tree for
6 * doucumentation of the interface.
7 */
8
9#ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_
10#define _UAPI_LINUX_ETHTOOL_NETLINK_H_
11
12#include <linux/ethtool.h>
13
14/* message types - userspace to kernel */
15enum {
16 ETHTOOL_MSG_USER_NONE,
71921690 17 ETHTOOL_MSG_STRSET_GET,
459e0b81 18 ETHTOOL_MSG_LINKINFO_GET,
a53f3d41 19 ETHTOOL_MSG_LINKINFO_SET,
f625aa9b 20 ETHTOOL_MSG_LINKMODES_GET,
bfbcfe20 21 ETHTOOL_MSG_LINKMODES_SET,
3d2b847f 22 ETHTOOL_MSG_LINKSTATE_GET,
6a94b8cc 23 ETHTOOL_MSG_DEBUG_GET,
e54d04e3 24 ETHTOOL_MSG_DEBUG_SET,
51ea22b0 25 ETHTOOL_MSG_WOL_GET,
8d425b19 26 ETHTOOL_MSG_WOL_SET,
0524399d 27 ETHTOOL_MSG_FEATURES_GET,
0980bfcd 28 ETHTOOL_MSG_FEATURES_SET,
e16c3386 29 ETHTOOL_MSG_PRIVFLAGS_GET,
f265d799 30 ETHTOOL_MSG_PRIVFLAGS_SET,
e4a1717b 31 ETHTOOL_MSG_RINGS_GET,
2fc2929e 32 ETHTOOL_MSG_RINGS_SET,
0c84979c 33 ETHTOOL_MSG_CHANNELS_GET,
e19c591e 34 ETHTOOL_MSG_CHANNELS_SET,
21727545 35 ETHTOOL_MSG_COALESCE_GET,
9881418c 36 ETHTOOL_MSG_COALESCE_SET,
7f59fb32 37 ETHTOOL_MSG_PAUSE_GET,
3ab87993 38 ETHTOOL_MSG_PAUSE_SET,
b7eeefe7 39 ETHTOOL_MSG_EEE_GET,
fd77be7b 40 ETHTOOL_MSG_EEE_SET,
5b071c59 41 ETHTOOL_MSG_TSINFO_GET,
2b4a8990
MK
42
43 /* add new constants above here */
44 __ETHTOOL_MSG_USER_CNT,
45 ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
46};
47
48/* message types - kernel to userspace */
49enum {
50 ETHTOOL_MSG_KERNEL_NONE,
71921690 51 ETHTOOL_MSG_STRSET_GET_REPLY,
459e0b81 52 ETHTOOL_MSG_LINKINFO_GET_REPLY,
73286734 53 ETHTOOL_MSG_LINKINFO_NTF,
f625aa9b 54 ETHTOOL_MSG_LINKMODES_GET_REPLY,
1b1b1847 55 ETHTOOL_MSG_LINKMODES_NTF,
3d2b847f 56 ETHTOOL_MSG_LINKSTATE_GET_REPLY,
6a94b8cc 57 ETHTOOL_MSG_DEBUG_GET_REPLY,
0bda7af3 58 ETHTOOL_MSG_DEBUG_NTF,
51ea22b0 59 ETHTOOL_MSG_WOL_GET_REPLY,
67bffa79 60 ETHTOOL_MSG_WOL_NTF,
0524399d 61 ETHTOOL_MSG_FEATURES_GET_REPLY,
0980bfcd 62 ETHTOOL_MSG_FEATURES_SET_REPLY,
9c6451ef 63 ETHTOOL_MSG_FEATURES_NTF,
e16c3386 64 ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,
111dcba3 65 ETHTOOL_MSG_PRIVFLAGS_NTF,
e4a1717b 66 ETHTOOL_MSG_RINGS_GET_REPLY,
bc9d1c99 67 ETHTOOL_MSG_RINGS_NTF,
0c84979c 68 ETHTOOL_MSG_CHANNELS_GET_REPLY,
546379b9 69 ETHTOOL_MSG_CHANNELS_NTF,
21727545 70 ETHTOOL_MSG_COALESCE_GET_REPLY,
0cf3eac8 71 ETHTOOL_MSG_COALESCE_NTF,
7f59fb32 72 ETHTOOL_MSG_PAUSE_GET_REPLY,
bf37faa3 73 ETHTOOL_MSG_PAUSE_NTF,
b7eeefe7 74 ETHTOOL_MSG_EEE_GET_REPLY,
6c5bc8fe 75 ETHTOOL_MSG_EEE_NTF,
5b071c59 76 ETHTOOL_MSG_TSINFO_GET_REPLY,
2b4a8990
MK
77
78 /* add new constants above here */
79 __ETHTOOL_MSG_KERNEL_CNT,
80 ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
81};
82
041b1c5d
MK
83/* request header */
84
85/* use compact bitsets in reply */
86#define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0)
87/* provide optional reply for SET or ACT requests */
88#define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
89
90#define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
91 ETHTOOL_FLAG_OMIT_REPLY)
92
93enum {
94 ETHTOOL_A_HEADER_UNSPEC,
95 ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */
96 ETHTOOL_A_HEADER_DEV_NAME, /* string */
97 ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */
98
99 /* add new constants above here */
100 __ETHTOOL_A_HEADER_CNT,
101 ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1
102};
103
10b518d4
MK
104/* bit sets */
105
106enum {
107 ETHTOOL_A_BITSET_BIT_UNSPEC,
108 ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */
109 ETHTOOL_A_BITSET_BIT_NAME, /* string */
110 ETHTOOL_A_BITSET_BIT_VALUE, /* flag */
111
112 /* add new constants above here */
113 __ETHTOOL_A_BITSET_BIT_CNT,
114 ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1
115};
116
117enum {
118 ETHTOOL_A_BITSET_BITS_UNSPEC,
119 ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */
120
121 /* add new constants above here */
122 __ETHTOOL_A_BITSET_BITS_CNT,
123 ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1
124};
125
126enum {
127 ETHTOOL_A_BITSET_UNSPEC,
128 ETHTOOL_A_BITSET_NOMASK, /* flag */
129 ETHTOOL_A_BITSET_SIZE, /* u32 */
130 ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */
131 ETHTOOL_A_BITSET_VALUE, /* binary */
132 ETHTOOL_A_BITSET_MASK, /* binary */
133
134 /* add new constants above here */
135 __ETHTOOL_A_BITSET_CNT,
136 ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1
137};
138
71921690
MK
139/* string sets */
140
141enum {
142 ETHTOOL_A_STRING_UNSPEC,
143 ETHTOOL_A_STRING_INDEX, /* u32 */
144 ETHTOOL_A_STRING_VALUE, /* string */
145
146 /* add new constants above here */
147 __ETHTOOL_A_STRING_CNT,
148 ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1
149};
150
151enum {
152 ETHTOOL_A_STRINGS_UNSPEC,
153 ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */
154
155 /* add new constants above here */
156 __ETHTOOL_A_STRINGS_CNT,
157 ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1
158};
159
160enum {
161 ETHTOOL_A_STRINGSET_UNSPEC,
162 ETHTOOL_A_STRINGSET_ID, /* u32 */
163 ETHTOOL_A_STRINGSET_COUNT, /* u32 */
164 ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */
165
166 /* add new constants above here */
167 __ETHTOOL_A_STRINGSET_CNT,
168 ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1
169};
170
171enum {
172 ETHTOOL_A_STRINGSETS_UNSPEC,
173 ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */
174
175 /* add new constants above here */
176 __ETHTOOL_A_STRINGSETS_CNT,
177 ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1
178};
179
180/* STRSET */
181
182enum {
183 ETHTOOL_A_STRSET_UNSPEC,
184 ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */
185 ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */
186 ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */
187
188 /* add new constants above here */
189 __ETHTOOL_A_STRSET_CNT,
190 ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1
191};
192
459e0b81
MK
193/* LINKINFO */
194
195enum {
196 ETHTOOL_A_LINKINFO_UNSPEC,
197 ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */
198 ETHTOOL_A_LINKINFO_PORT, /* u8 */
199 ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */
200 ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */
201 ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */
202 ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */
203
204 /* add new constants above here */
205 __ETHTOOL_A_LINKINFO_CNT,
206 ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
207};
208
f625aa9b
MK
209/* LINKMODES */
210
211enum {
212 ETHTOOL_A_LINKMODES_UNSPEC,
213 ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */
214 ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */
215 ETHTOOL_A_LINKMODES_OURS, /* bitset */
216 ETHTOOL_A_LINKMODES_PEER, /* bitset */
217 ETHTOOL_A_LINKMODES_SPEED, /* u32 */
218 ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */
bdbdac76
OR
219 ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
220 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
f625aa9b
MK
221
222 /* add new constants above here */
223 __ETHTOOL_A_LINKMODES_CNT,
224 ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
225};
226
3d2b847f
MK
227/* LINKSTATE */
228
229enum {
230 ETHTOOL_A_LINKSTATE_UNSPEC,
231 ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */
232 ETHTOOL_A_LINKSTATE_LINK, /* u8 */
233
234 /* add new constants above here */
235 __ETHTOOL_A_LINKSTATE_CNT,
236 ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
237};
238
6a94b8cc
MK
239/* DEBUG */
240
241enum {
242 ETHTOOL_A_DEBUG_UNSPEC,
243 ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */
244 ETHTOOL_A_DEBUG_MSGMASK, /* bitset */
245
246 /* add new constants above here */
247 __ETHTOOL_A_DEBUG_CNT,
248 ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1
249};
250
51ea22b0
MK
251/* WOL */
252
253enum {
254 ETHTOOL_A_WOL_UNSPEC,
255 ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */
256 ETHTOOL_A_WOL_MODES, /* bitset */
257 ETHTOOL_A_WOL_SOPASS, /* binary */
258
259 /* add new constants above here */
260 __ETHTOOL_A_WOL_CNT,
261 ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
262};
263
0524399d
MK
264/* FEATURES */
265
266enum {
267 ETHTOOL_A_FEATURES_UNSPEC,
268 ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */
269 ETHTOOL_A_FEATURES_HW, /* bitset */
270 ETHTOOL_A_FEATURES_WANTED, /* bitset */
271 ETHTOOL_A_FEATURES_ACTIVE, /* bitset */
272 ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */
273
274 /* add new constants above here */
275 __ETHTOOL_A_FEATURES_CNT,
276 ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1
277};
278
e16c3386
MK
279/* PRIVFLAGS */
280
281enum {
282 ETHTOOL_A_PRIVFLAGS_UNSPEC,
283 ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */
284 ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */
285
286 /* add new constants above here */
287 __ETHTOOL_A_PRIVFLAGS_CNT,
288 ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1
289};
290
e4a1717b
MK
291/* RINGS */
292
293enum {
294 ETHTOOL_A_RINGS_UNSPEC,
295 ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */
296 ETHTOOL_A_RINGS_RX_MAX, /* u32 */
297 ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */
298 ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */
299 ETHTOOL_A_RINGS_TX_MAX, /* u32 */
300 ETHTOOL_A_RINGS_RX, /* u32 */
301 ETHTOOL_A_RINGS_RX_MINI, /* u32 */
302 ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */
303 ETHTOOL_A_RINGS_TX, /* u32 */
304
305 /* add new constants above here */
306 __ETHTOOL_A_RINGS_CNT,
307 ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
308};
309
0c84979c
MK
310/* CHANNELS */
311
312enum {
313 ETHTOOL_A_CHANNELS_UNSPEC,
314 ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */
315 ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */
316 ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */
317 ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */
318 ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */
319 ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */
320 ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */
321 ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */
322 ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */
323
324 /* add new constants above here */
325 __ETHTOOL_A_CHANNELS_CNT,
326 ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
327};
328
21727545
MK
329/* COALESCE */
330
331enum {
332 ETHTOOL_A_COALESCE_UNSPEC,
333 ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */
334 ETHTOOL_A_COALESCE_RX_USECS, /* u32 */
335 ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */
336 ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */
337 ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */
338 ETHTOOL_A_COALESCE_TX_USECS, /* u32 */
339 ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */
340 ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */
341 ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */
342 ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */
343 ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */
344 ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */
345 ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */
346 ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */
347 ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */
348 ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */
349 ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */
350 ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */
351 ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */
352 ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */
353 ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */
354 ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */
355 ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */
356
357 /* add new constants above here */
358 __ETHTOOL_A_COALESCE_CNT,
359 ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
360};
361
7f59fb32
MK
362/* PAUSE */
363
364enum {
365 ETHTOOL_A_PAUSE_UNSPEC,
366 ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */
367 ETHTOOL_A_PAUSE_AUTONEG, /* u8 */
368 ETHTOOL_A_PAUSE_RX, /* u8 */
369 ETHTOOL_A_PAUSE_TX, /* u8 */
370
371 /* add new constants above here */
372 __ETHTOOL_A_PAUSE_CNT,
373 ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
374};
375
b7eeefe7
MK
376/* EEE */
377
378enum {
379 ETHTOOL_A_EEE_UNSPEC,
380 ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */
381 ETHTOOL_A_EEE_MODES_OURS, /* bitset */
382 ETHTOOL_A_EEE_MODES_PEER, /* bitset */
383 ETHTOOL_A_EEE_ACTIVE, /* u8 */
384 ETHTOOL_A_EEE_ENABLED, /* u8 */
385 ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */
386 ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */
387
388 /* add new constants above here */
389 __ETHTOOL_A_EEE_CNT,
390 ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)
391};
392
5b071c59
MK
393/* TSINFO */
394
395enum {
396 ETHTOOL_A_TSINFO_UNSPEC,
397 ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */
398 ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */
399 ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */
400 ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */
401 ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */
402
403 /* add new constants above here */
404 __ETHTOOL_A_TSINFO_CNT,
405 ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
406};
407
2b4a8990
MK
408/* generic netlink info */
409#define ETHTOOL_GENL_NAME "ethtool"
410#define ETHTOOL_GENL_VERSION 1
411
6b08d6c1
MK
412#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
413
2b4a8990 414#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */