Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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,
17 ETHTOOL_MSG_STRSET_GET,
18 ETHTOOL_MSG_LINKINFO_GET,
19 ETHTOOL_MSG_LINKINFO_SET,
20 ETHTOOL_MSG_LINKMODES_GET,
21 ETHTOOL_MSG_LINKMODES_SET,
22 ETHTOOL_MSG_LINKSTATE_GET,
23 ETHTOOL_MSG_DEBUG_GET,
24 ETHTOOL_MSG_DEBUG_SET,
25 ETHTOOL_MSG_WOL_GET,
26 ETHTOOL_MSG_WOL_SET,
27
28 /* add new constants above here */
29 __ETHTOOL_MSG_USER_CNT,
30 ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
31};
32
33/* message types - kernel to userspace */
34enum {
35 ETHTOOL_MSG_KERNEL_NONE,
36 ETHTOOL_MSG_STRSET_GET_REPLY,
37 ETHTOOL_MSG_LINKINFO_GET_REPLY,
38 ETHTOOL_MSG_LINKINFO_NTF,
39 ETHTOOL_MSG_LINKMODES_GET_REPLY,
40 ETHTOOL_MSG_LINKMODES_NTF,
41 ETHTOOL_MSG_LINKSTATE_GET_REPLY,
42 ETHTOOL_MSG_DEBUG_GET_REPLY,
43 ETHTOOL_MSG_DEBUG_NTF,
44 ETHTOOL_MSG_WOL_GET_REPLY,
45 ETHTOOL_MSG_WOL_NTF,
46
47 /* add new constants above here */
48 __ETHTOOL_MSG_KERNEL_CNT,
49 ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
50};
51
52/* request header */
53
54/* use compact bitsets in reply */
55#define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0)
56/* provide optional reply for SET or ACT requests */
57#define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
58
59#define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
60 ETHTOOL_FLAG_OMIT_REPLY)
61
62enum {
63 ETHTOOL_A_HEADER_UNSPEC,
64 ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */
65 ETHTOOL_A_HEADER_DEV_NAME, /* string */
66 ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */
67
68 /* add new constants above here */
69 __ETHTOOL_A_HEADER_CNT,
70 ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1
71};
72
73/* bit sets */
74
75enum {
76 ETHTOOL_A_BITSET_BIT_UNSPEC,
77 ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */
78 ETHTOOL_A_BITSET_BIT_NAME, /* string */
79 ETHTOOL_A_BITSET_BIT_VALUE, /* flag */
80
81 /* add new constants above here */
82 __ETHTOOL_A_BITSET_BIT_CNT,
83 ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1
84};
85
86enum {
87 ETHTOOL_A_BITSET_BITS_UNSPEC,
88 ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */
89
90 /* add new constants above here */
91 __ETHTOOL_A_BITSET_BITS_CNT,
92 ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1
93};
94
95enum {
96 ETHTOOL_A_BITSET_UNSPEC,
97 ETHTOOL_A_BITSET_NOMASK, /* flag */
98 ETHTOOL_A_BITSET_SIZE, /* u32 */
99 ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */
100 ETHTOOL_A_BITSET_VALUE, /* binary */
101 ETHTOOL_A_BITSET_MASK, /* binary */
102
103 /* add new constants above here */
104 __ETHTOOL_A_BITSET_CNT,
105 ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1
106};
107
108/* string sets */
109
110enum {
111 ETHTOOL_A_STRING_UNSPEC,
112 ETHTOOL_A_STRING_INDEX, /* u32 */
113 ETHTOOL_A_STRING_VALUE, /* string */
114
115 /* add new constants above here */
116 __ETHTOOL_A_STRING_CNT,
117 ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1
118};
119
120enum {
121 ETHTOOL_A_STRINGS_UNSPEC,
122 ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */
123
124 /* add new constants above here */
125 __ETHTOOL_A_STRINGS_CNT,
126 ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1
127};
128
129enum {
130 ETHTOOL_A_STRINGSET_UNSPEC,
131 ETHTOOL_A_STRINGSET_ID, /* u32 */
132 ETHTOOL_A_STRINGSET_COUNT, /* u32 */
133 ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */
134
135 /* add new constants above here */
136 __ETHTOOL_A_STRINGSET_CNT,
137 ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1
138};
139
140enum {
141 ETHTOOL_A_STRINGSETS_UNSPEC,
142 ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */
143
144 /* add new constants above here */
145 __ETHTOOL_A_STRINGSETS_CNT,
146 ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1
147};
148
149/* STRSET */
150
151enum {
152 ETHTOOL_A_STRSET_UNSPEC,
153 ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */
154 ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */
155 ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */
156
157 /* add new constants above here */
158 __ETHTOOL_A_STRSET_CNT,
159 ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1
160};
161
162/* LINKINFO */
163
164enum {
165 ETHTOOL_A_LINKINFO_UNSPEC,
166 ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */
167 ETHTOOL_A_LINKINFO_PORT, /* u8 */
168 ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */
169 ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */
170 ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */
171 ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */
172
173 /* add new constants above here */
174 __ETHTOOL_A_LINKINFO_CNT,
175 ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
176};
177
178/* LINKMODES */
179
180enum {
181 ETHTOOL_A_LINKMODES_UNSPEC,
182 ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */
183 ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */
184 ETHTOOL_A_LINKMODES_OURS, /* bitset */
185 ETHTOOL_A_LINKMODES_PEER, /* bitset */
186 ETHTOOL_A_LINKMODES_SPEED, /* u32 */
187 ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */
188
189 /* add new constants above here */
190 __ETHTOOL_A_LINKMODES_CNT,
191 ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
192};
193
194/* LINKSTATE */
195
196enum {
197 ETHTOOL_A_LINKSTATE_UNSPEC,
198 ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */
199 ETHTOOL_A_LINKSTATE_LINK, /* u8 */
200
201 /* add new constants above here */
202 __ETHTOOL_A_LINKSTATE_CNT,
203 ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
204};
205
206/* DEBUG */
207
208enum {
209 ETHTOOL_A_DEBUG_UNSPEC,
210 ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */
211 ETHTOOL_A_DEBUG_MSGMASK, /* bitset */
212
213 /* add new constants above here */
214 __ETHTOOL_A_DEBUG_CNT,
215 ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1
216};
217
218/* WOL */
219
220enum {
221 ETHTOOL_A_WOL_UNSPEC,
222 ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */
223 ETHTOOL_A_WOL_MODES, /* bitset */
224 ETHTOOL_A_WOL_SOPASS, /* binary */
225
226 /* add new constants above here */
227 __ETHTOOL_A_WOL_CNT,
228 ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
229};
230
231/* generic netlink info */
232#define ETHTOOL_GENL_NAME "ethtool"
233#define ETHTOOL_GENL_VERSION 1
234
235#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
236
237#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */