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