14e16b6a7SJakub Kicinski# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
237d9df22SJakub Kicinski
3b784db7aSJakub Kicinskiname: ethtool
4b784db7aSJakub Kicinski
5b784db7aSJakub Kicinskiprotocol: genetlink-legacy
6b784db7aSJakub Kicinski
7b784db7aSJakub Kicinskidoc: Partial family for Ethtool Netlink.
8b784db7aSJakub Kicinski
9b784db7aSJakub Kicinskiattribute-sets:
10b784db7aSJakub Kicinski  -
11b784db7aSJakub Kicinski    name: header
12b784db7aSJakub Kicinski    attributes:
13b784db7aSJakub Kicinski      -
14b784db7aSJakub Kicinski        name: dev-index
15b784db7aSJakub Kicinski        type: u32
16b784db7aSJakub Kicinski      -
17b784db7aSJakub Kicinski        name: dev-name
18b784db7aSJakub Kicinski        type: string
19b784db7aSJakub Kicinski      -
20b784db7aSJakub Kicinski        name: flags
21b784db7aSJakub Kicinski        type: u32
22b784db7aSJakub Kicinski
23b784db7aSJakub Kicinski  -
24b784db7aSJakub Kicinski    name: bitset-bit
25b784db7aSJakub Kicinski    attributes:
26b784db7aSJakub Kicinski      -
27b784db7aSJakub Kicinski        name: index
28b784db7aSJakub Kicinski        type: u32
29b784db7aSJakub Kicinski      -
30b784db7aSJakub Kicinski        name: name
31b784db7aSJakub Kicinski        type: string
32b784db7aSJakub Kicinski      -
33b784db7aSJakub Kicinski        name: value
34b784db7aSJakub Kicinski        type: flag
35b784db7aSJakub Kicinski  -
36b784db7aSJakub Kicinski    name: bitset-bits
37b784db7aSJakub Kicinski    attributes:
38b784db7aSJakub Kicinski      -
39b784db7aSJakub Kicinski        name: bit
40b784db7aSJakub Kicinski        type: nest
41b784db7aSJakub Kicinski        nested-attributes: bitset-bit
42b784db7aSJakub Kicinski  -
43b784db7aSJakub Kicinski    name: bitset
44b784db7aSJakub Kicinski    attributes:
45b784db7aSJakub Kicinski      -
46b784db7aSJakub Kicinski        name: nomask
47b784db7aSJakub Kicinski        type: flag
48b784db7aSJakub Kicinski      -
49b784db7aSJakub Kicinski        name: size
50b784db7aSJakub Kicinski        type: u32
51b784db7aSJakub Kicinski      -
52b784db7aSJakub Kicinski        name: bits
53b784db7aSJakub Kicinski        type: nest
54b784db7aSJakub Kicinski        nested-attributes: bitset-bits
55b784db7aSJakub Kicinski
56b784db7aSJakub Kicinski  -
57b784db7aSJakub Kicinski    name: string
58b784db7aSJakub Kicinski    attributes:
59b784db7aSJakub Kicinski      -
60b784db7aSJakub Kicinski        name: index
61b784db7aSJakub Kicinski        type: u32
62b784db7aSJakub Kicinski      -
63b784db7aSJakub Kicinski        name: value
64b784db7aSJakub Kicinski        type: string
65b784db7aSJakub Kicinski  -
66b784db7aSJakub Kicinski    name: strings
67b784db7aSJakub Kicinski    attributes:
68b784db7aSJakub Kicinski      -
69b784db7aSJakub Kicinski        name: string
70b784db7aSJakub Kicinski        type: nest
71b784db7aSJakub Kicinski        multi-attr: true
72b784db7aSJakub Kicinski        nested-attributes: string
73b784db7aSJakub Kicinski  -
74b784db7aSJakub Kicinski    name: stringset
75b784db7aSJakub Kicinski    attributes:
76b784db7aSJakub Kicinski      -
77b784db7aSJakub Kicinski        name: id
78b784db7aSJakub Kicinski        type: u32
79b784db7aSJakub Kicinski      -
80b784db7aSJakub Kicinski        name: count
81b784db7aSJakub Kicinski        type: u32
82b784db7aSJakub Kicinski      -
83b784db7aSJakub Kicinski        name: strings
84b784db7aSJakub Kicinski        type: nest
85b784db7aSJakub Kicinski        multi-attr: true
86b784db7aSJakub Kicinski        nested-attributes: strings
87b784db7aSJakub Kicinski  -
88b784db7aSJakub Kicinski    name: stringsets
89b784db7aSJakub Kicinski    attributes:
90b784db7aSJakub Kicinski      -
91b784db7aSJakub Kicinski        name: stringset
92b784db7aSJakub Kicinski        type: nest
93b784db7aSJakub Kicinski        multi-attr: true
94b784db7aSJakub Kicinski        nested-attributes: stringset
95b784db7aSJakub Kicinski  -
96b784db7aSJakub Kicinski    name: strset
97b784db7aSJakub Kicinski    attributes:
98b784db7aSJakub Kicinski      -
99b784db7aSJakub Kicinski        name: header
100b784db7aSJakub Kicinski        type: nest
101b784db7aSJakub Kicinski        nested-attributes: header
102b784db7aSJakub Kicinski      -
103b784db7aSJakub Kicinski        name: stringsets
104b784db7aSJakub Kicinski        type: nest
105b784db7aSJakub Kicinski        nested-attributes: stringsets
106b784db7aSJakub Kicinski      -
107b784db7aSJakub Kicinski        name: counts-only
108b784db7aSJakub Kicinski        type: flag
109b784db7aSJakub Kicinski
110b784db7aSJakub Kicinski  -
111b784db7aSJakub Kicinski    name: privflags
112b784db7aSJakub Kicinski    attributes:
113b784db7aSJakub Kicinski      -
114b784db7aSJakub Kicinski        name: header
115b784db7aSJakub Kicinski        type: nest
116b784db7aSJakub Kicinski        nested-attributes: header
117b784db7aSJakub Kicinski      -
118b784db7aSJakub Kicinski        name: flags
119b784db7aSJakub Kicinski        type: nest
120b784db7aSJakub Kicinski        nested-attributes: bitset
121b784db7aSJakub Kicinski
122b784db7aSJakub Kicinski  -
123b784db7aSJakub Kicinski    name: rings
124b784db7aSJakub Kicinski    attributes:
125b784db7aSJakub Kicinski      -
126b784db7aSJakub Kicinski        name: header
127b784db7aSJakub Kicinski        type: nest
128b784db7aSJakub Kicinski        nested-attributes: header
129b784db7aSJakub Kicinski      -
130b784db7aSJakub Kicinski        name: rx-max
131b784db7aSJakub Kicinski        type: u32
132b784db7aSJakub Kicinski      -
133b784db7aSJakub Kicinski        name: rx-mini-max
134b784db7aSJakub Kicinski        type: u32
135b784db7aSJakub Kicinski      -
136b784db7aSJakub Kicinski        name: rx-jumbo-max
137b784db7aSJakub Kicinski        type: u32
138b784db7aSJakub Kicinski      -
139b784db7aSJakub Kicinski        name: tx-max
140b784db7aSJakub Kicinski        type: u32
141b784db7aSJakub Kicinski      -
142b784db7aSJakub Kicinski        name: rx
143b784db7aSJakub Kicinski        type: u32
144b784db7aSJakub Kicinski      -
145b784db7aSJakub Kicinski        name: rx-mini
146b784db7aSJakub Kicinski        type: u32
147b784db7aSJakub Kicinski      -
148b784db7aSJakub Kicinski        name: rx-jumbo
149b784db7aSJakub Kicinski        type: u32
150b784db7aSJakub Kicinski      -
151b784db7aSJakub Kicinski        name: tx
152b784db7aSJakub Kicinski        type: u32
153b784db7aSJakub Kicinski      -
154b784db7aSJakub Kicinski        name: rx-buf-len
155b784db7aSJakub Kicinski        type: u32
156b784db7aSJakub Kicinski      -
157b784db7aSJakub Kicinski        name: tcp-data-split
158b784db7aSJakub Kicinski        type: u8
159b784db7aSJakub Kicinski      -
160b784db7aSJakub Kicinski        name: cqe-size
161b784db7aSJakub Kicinski        type: u32
162b784db7aSJakub Kicinski      -
163b784db7aSJakub Kicinski        name: tx-push
164b784db7aSJakub Kicinski        type: u8
1651ed32ad4SJakub Kicinski      -
1661ed32ad4SJakub Kicinski        name: rx-push
1671ed32ad4SJakub Kicinski        type: u8
168*233eb4e7SShay Agroskin      -
169*233eb4e7SShay Agroskin        name: tx-push-buf-len
170*233eb4e7SShay Agroskin        type: u32
171*233eb4e7SShay Agroskin      -
172*233eb4e7SShay Agroskin        name: tx-push-buf-len-max
173*233eb4e7SShay Agroskin        type: u32
174b784db7aSJakub Kicinski
175b784db7aSJakub Kicinski  -
176b784db7aSJakub Kicinski    name: mm-stat
177b784db7aSJakub Kicinski    attributes:
178b784db7aSJakub Kicinski      -
179b784db7aSJakub Kicinski        name: pad
180b784db7aSJakub Kicinski        type: pad
181b784db7aSJakub Kicinski      -
182b784db7aSJakub Kicinski        name: reassembly-errors
183b784db7aSJakub Kicinski        type: u64
184b784db7aSJakub Kicinski      -
185b784db7aSJakub Kicinski        name: smd-errors
186b784db7aSJakub Kicinski        type: u64
187b784db7aSJakub Kicinski      -
188b784db7aSJakub Kicinski        name: reassembly-ok
189b784db7aSJakub Kicinski        type: u64
190b784db7aSJakub Kicinski      -
191b784db7aSJakub Kicinski        name: rx-frag-count
192b784db7aSJakub Kicinski        type: u64
193b784db7aSJakub Kicinski      -
194b784db7aSJakub Kicinski        name: tx-frag-count
195b784db7aSJakub Kicinski        type: u64
196b784db7aSJakub Kicinski      -
197b784db7aSJakub Kicinski        name: hold-count
198b784db7aSJakub Kicinski        type: u64
199b784db7aSJakub Kicinski  -
200b784db7aSJakub Kicinski    name: mm
201b784db7aSJakub Kicinski    attributes:
202b784db7aSJakub Kicinski      -
203b784db7aSJakub Kicinski        name: header
204b784db7aSJakub Kicinski        type: nest
205b784db7aSJakub Kicinski        nested-attributes: header
206b784db7aSJakub Kicinski      -
207b784db7aSJakub Kicinski        name: pmac-enabled
208b784db7aSJakub Kicinski        type: u8
209b784db7aSJakub Kicinski      -
210b784db7aSJakub Kicinski        name: tx-enabled
211b784db7aSJakub Kicinski        type: u8
212b784db7aSJakub Kicinski      -
213b784db7aSJakub Kicinski        name: tx-active
214b784db7aSJakub Kicinski        type: u8
215b784db7aSJakub Kicinski      -
216b784db7aSJakub Kicinski        name: tx-min-frag-size
217b784db7aSJakub Kicinski        type: u32
218b784db7aSJakub Kicinski      -
219b784db7aSJakub Kicinski        name: tx-min-frag-size
220b784db7aSJakub Kicinski        type: u32
221b784db7aSJakub Kicinski      -
222b784db7aSJakub Kicinski        name: verify-enabled
223b784db7aSJakub Kicinski        type: u8
224b784db7aSJakub Kicinski      -
225b784db7aSJakub Kicinski        name: verify-status
226b784db7aSJakub Kicinski        type: u8
227b784db7aSJakub Kicinski      -
228b784db7aSJakub Kicinski        name: verify-time
229b784db7aSJakub Kicinski        type: u32
230b784db7aSJakub Kicinski      -
231b784db7aSJakub Kicinski        name: max-verify-time
232b784db7aSJakub Kicinski        type: u32
233b784db7aSJakub Kicinski      -
234b784db7aSJakub Kicinski        name: stats
235b784db7aSJakub Kicinski        type: nest
236b784db7aSJakub Kicinski        nested-attributes: mm-stat
237b784db7aSJakub Kicinski
238b784db7aSJakub Kicinskioperations:
239b784db7aSJakub Kicinski  enum-model: directional
240b784db7aSJakub Kicinski  list:
241b784db7aSJakub Kicinski    -
242b784db7aSJakub Kicinski      name: strset-get
243b784db7aSJakub Kicinski      doc: Get string set from the kernel.
244b784db7aSJakub Kicinski
245b784db7aSJakub Kicinski      attribute-set: strset
246b784db7aSJakub Kicinski
247b784db7aSJakub Kicinski      do: &strset-get-op
248b784db7aSJakub Kicinski        request:
249b784db7aSJakub Kicinski          attributes:
250b784db7aSJakub Kicinski            - header
251b784db7aSJakub Kicinski            - stringsets
252b784db7aSJakub Kicinski            - counts-only
253b784db7aSJakub Kicinski        reply:
254b784db7aSJakub Kicinski          attributes:
255b784db7aSJakub Kicinski            - header
256b784db7aSJakub Kicinski            - stringsets
257b784db7aSJakub Kicinski      dump: *strset-get-op
258b784db7aSJakub Kicinski
259b784db7aSJakub Kicinski    # TODO: fill in the requests in between
260b784db7aSJakub Kicinski
261b784db7aSJakub Kicinski    -
262b784db7aSJakub Kicinski      name: privflags-get
263b784db7aSJakub Kicinski      doc: Get device private flags.
264b784db7aSJakub Kicinski
265b784db7aSJakub Kicinski      attribute-set: privflags
266b784db7aSJakub Kicinski
267b784db7aSJakub Kicinski      do: &privflag-get-op
268b784db7aSJakub Kicinski        request:
269b784db7aSJakub Kicinski          value: 13
270b784db7aSJakub Kicinski          attributes:
271b784db7aSJakub Kicinski            - header
272b784db7aSJakub Kicinski        reply:
273b784db7aSJakub Kicinski          value: 14
274b784db7aSJakub Kicinski          attributes:
275b784db7aSJakub Kicinski            - header
276b784db7aSJakub Kicinski            - flags
277b784db7aSJakub Kicinski      dump: *privflag-get-op
278b784db7aSJakub Kicinski    -
279b784db7aSJakub Kicinski      name: privflags-set
280b784db7aSJakub Kicinski      doc: Set device private flags.
281b784db7aSJakub Kicinski
282b784db7aSJakub Kicinski      attribute-set: privflags
283b784db7aSJakub Kicinski
284b784db7aSJakub Kicinski      do:
285b784db7aSJakub Kicinski        request:
286b784db7aSJakub Kicinski          attributes:
287b784db7aSJakub Kicinski            - header
288b784db7aSJakub Kicinski            - flags
289b784db7aSJakub Kicinski    -
290b784db7aSJakub Kicinski      name: privflags-ntf
291b784db7aSJakub Kicinski      doc: Notification for change in device private flags.
292b784db7aSJakub Kicinski      notify: privflags-get
293b784db7aSJakub Kicinski
294b784db7aSJakub Kicinski    -
295b784db7aSJakub Kicinski      name: rings-get
296b784db7aSJakub Kicinski      doc: Get ring params.
297b784db7aSJakub Kicinski
298b784db7aSJakub Kicinski      attribute-set: rings
299b784db7aSJakub Kicinski
300b784db7aSJakub Kicinski      do: &ring-get-op
301b784db7aSJakub Kicinski        request:
302b784db7aSJakub Kicinski          attributes:
303b784db7aSJakub Kicinski            - header
304b784db7aSJakub Kicinski        reply:
305b784db7aSJakub Kicinski          attributes:
306b784db7aSJakub Kicinski            - header
307b784db7aSJakub Kicinski            - rx-max
308b784db7aSJakub Kicinski            - rx-mini-max
309b784db7aSJakub Kicinski            - rx-jumbo-max
310b784db7aSJakub Kicinski            - tx-max
311b784db7aSJakub Kicinski            - rx
312b784db7aSJakub Kicinski            - rx-mini
313b784db7aSJakub Kicinski            - rx-jumbo
314b784db7aSJakub Kicinski            - tx
315b784db7aSJakub Kicinski            - rx-buf-len
316b784db7aSJakub Kicinski            - tcp-data-split
317b784db7aSJakub Kicinski            - cqe-size
318b784db7aSJakub Kicinski            - tx-push
3191ed32ad4SJakub Kicinski            - rx-push
320*233eb4e7SShay Agroskin            - tx-push-buf-len
321*233eb4e7SShay Agroskin            - tx-push-buf-len-max
322b784db7aSJakub Kicinski      dump: *ring-get-op
323b784db7aSJakub Kicinski    -
324b784db7aSJakub Kicinski      name: rings-set
325b784db7aSJakub Kicinski      doc: Set ring params.
326b784db7aSJakub Kicinski
327b784db7aSJakub Kicinski      attribute-set: rings
328b784db7aSJakub Kicinski
329b784db7aSJakub Kicinski      do:
330b784db7aSJakub Kicinski        request:
331b784db7aSJakub Kicinski          attributes:
332b784db7aSJakub Kicinski            - header
333b784db7aSJakub Kicinski            - rx
334b784db7aSJakub Kicinski            - rx-mini
335b784db7aSJakub Kicinski            - rx-jumbo
336b784db7aSJakub Kicinski            - tx
337b784db7aSJakub Kicinski            - rx-buf-len
338b784db7aSJakub Kicinski            - tcp-data-split
339b784db7aSJakub Kicinski            - cqe-size
340b784db7aSJakub Kicinski            - tx-push
3411ed32ad4SJakub Kicinski            - rx-push
342b784db7aSJakub Kicinski    -
343b784db7aSJakub Kicinski      name: rings-ntf
344b784db7aSJakub Kicinski      doc: Notification for change in ring params.
345b784db7aSJakub Kicinski      notify: rings-get
346b784db7aSJakub Kicinski
347b784db7aSJakub Kicinski    # TODO: fill in the requests in between
348b784db7aSJakub Kicinski
349b784db7aSJakub Kicinski    -
350b784db7aSJakub Kicinski      name: mm-get
351b784db7aSJakub Kicinski      doc: Get MAC Merge configuration and state
352b784db7aSJakub Kicinski
353b784db7aSJakub Kicinski      attribute-set: mm
354b784db7aSJakub Kicinski
355b784db7aSJakub Kicinski      do: &mm-get-op
356b784db7aSJakub Kicinski        request:
357b784db7aSJakub Kicinski          value: 42
358b784db7aSJakub Kicinski          attributes:
359b784db7aSJakub Kicinski            - header
360b784db7aSJakub Kicinski        reply:
361b784db7aSJakub Kicinski          value: 42
362b784db7aSJakub Kicinski          attributes:
363b784db7aSJakub Kicinski            - header
364b784db7aSJakub Kicinski            - pmac-enabled
365b784db7aSJakub Kicinski            - tx-enabled
366b784db7aSJakub Kicinski            - tx-active
367b784db7aSJakub Kicinski            - tx-min-frag-size
368b784db7aSJakub Kicinski            - rx-min-frag-size
369b784db7aSJakub Kicinski            - verify-enabled
370b784db7aSJakub Kicinski            - verify-time
371b784db7aSJakub Kicinski            - max-verify-time
372b784db7aSJakub Kicinski            - stats
373b784db7aSJakub Kicinski      dump: *mm-get-op
374b784db7aSJakub Kicinski    -
375b784db7aSJakub Kicinski      name: mm-set
376b784db7aSJakub Kicinski      doc: Set MAC Merge configuration
377b784db7aSJakub Kicinski
378b784db7aSJakub Kicinski      attribute-set: mm
379b784db7aSJakub Kicinski
380b784db7aSJakub Kicinski      do:
381b784db7aSJakub Kicinski        request:
382b784db7aSJakub Kicinski          attributes:
383b784db7aSJakub Kicinski            - header
384b784db7aSJakub Kicinski            - verify-enabled
385b784db7aSJakub Kicinski            - verify-time
386b784db7aSJakub Kicinski            - tx-enabled
387b784db7aSJakub Kicinski            - pmac-enabled
388b784db7aSJakub Kicinski            - tx-min-frag-size
389b784db7aSJakub Kicinski    -
390b784db7aSJakub Kicinski      name: mm-ntf
391b784db7aSJakub Kicinski      doc: Notification for change in MAC Merge configuration.
392b784db7aSJakub Kicinski      notify: mm-get
393