1*37d9df22SJakub Kicinski# SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2*37d9df22SJakub 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
168b784db7aSJakub Kicinski
169b784db7aSJakub Kicinski  -
170b784db7aSJakub Kicinski    name: mm-stat
171b784db7aSJakub Kicinski    attributes:
172b784db7aSJakub Kicinski      -
173b784db7aSJakub Kicinski        name: pad
174b784db7aSJakub Kicinski        type: pad
175b784db7aSJakub Kicinski      -
176b784db7aSJakub Kicinski        name: reassembly-errors
177b784db7aSJakub Kicinski        type: u64
178b784db7aSJakub Kicinski      -
179b784db7aSJakub Kicinski        name: smd-errors
180b784db7aSJakub Kicinski        type: u64
181b784db7aSJakub Kicinski      -
182b784db7aSJakub Kicinski        name: reassembly-ok
183b784db7aSJakub Kicinski        type: u64
184b784db7aSJakub Kicinski      -
185b784db7aSJakub Kicinski        name: rx-frag-count
186b784db7aSJakub Kicinski        type: u64
187b784db7aSJakub Kicinski      -
188b784db7aSJakub Kicinski        name: tx-frag-count
189b784db7aSJakub Kicinski        type: u64
190b784db7aSJakub Kicinski      -
191b784db7aSJakub Kicinski        name: hold-count
192b784db7aSJakub Kicinski        type: u64
193b784db7aSJakub Kicinski  -
194b784db7aSJakub Kicinski    name: mm
195b784db7aSJakub Kicinski    attributes:
196b784db7aSJakub Kicinski      -
197b784db7aSJakub Kicinski        name: header
198b784db7aSJakub Kicinski        type: nest
199b784db7aSJakub Kicinski        nested-attributes: header
200b784db7aSJakub Kicinski      -
201b784db7aSJakub Kicinski        name: pmac-enabled
202b784db7aSJakub Kicinski        type: u8
203b784db7aSJakub Kicinski      -
204b784db7aSJakub Kicinski        name: tx-enabled
205b784db7aSJakub Kicinski        type: u8
206b784db7aSJakub Kicinski      -
207b784db7aSJakub Kicinski        name: tx-active
208b784db7aSJakub Kicinski        type: u8
209b784db7aSJakub Kicinski      -
210b784db7aSJakub Kicinski        name: tx-min-frag-size
211b784db7aSJakub Kicinski        type: u32
212b784db7aSJakub Kicinski      -
213b784db7aSJakub Kicinski        name: tx-min-frag-size
214b784db7aSJakub Kicinski        type: u32
215b784db7aSJakub Kicinski      -
216b784db7aSJakub Kicinski        name: verify-enabled
217b784db7aSJakub Kicinski        type: u8
218b784db7aSJakub Kicinski      -
219b784db7aSJakub Kicinski        name: verify-status
220b784db7aSJakub Kicinski        type: u8
221b784db7aSJakub Kicinski      -
222b784db7aSJakub Kicinski        name: verify-time
223b784db7aSJakub Kicinski        type: u32
224b784db7aSJakub Kicinski      -
225b784db7aSJakub Kicinski        name: max-verify-time
226b784db7aSJakub Kicinski        type: u32
227b784db7aSJakub Kicinski      -
228b784db7aSJakub Kicinski        name: stats
229b784db7aSJakub Kicinski        type: nest
230b784db7aSJakub Kicinski        nested-attributes: mm-stat
231b784db7aSJakub Kicinski
232b784db7aSJakub Kicinskioperations:
233b784db7aSJakub Kicinski  enum-model: directional
234b784db7aSJakub Kicinski  list:
235b784db7aSJakub Kicinski    -
236b784db7aSJakub Kicinski      name: strset-get
237b784db7aSJakub Kicinski      doc: Get string set from the kernel.
238b784db7aSJakub Kicinski
239b784db7aSJakub Kicinski      attribute-set: strset
240b784db7aSJakub Kicinski
241b784db7aSJakub Kicinski      do: &strset-get-op
242b784db7aSJakub Kicinski        request:
243b784db7aSJakub Kicinski          attributes:
244b784db7aSJakub Kicinski            - header
245b784db7aSJakub Kicinski            - stringsets
246b784db7aSJakub Kicinski            - counts-only
247b784db7aSJakub Kicinski        reply:
248b784db7aSJakub Kicinski          attributes:
249b784db7aSJakub Kicinski            - header
250b784db7aSJakub Kicinski            - stringsets
251b784db7aSJakub Kicinski      dump: *strset-get-op
252b784db7aSJakub Kicinski
253b784db7aSJakub Kicinski    # TODO: fill in the requests in between
254b784db7aSJakub Kicinski
255b784db7aSJakub Kicinski    -
256b784db7aSJakub Kicinski      name: privflags-get
257b784db7aSJakub Kicinski      doc: Get device private flags.
258b784db7aSJakub Kicinski
259b784db7aSJakub Kicinski      attribute-set: privflags
260b784db7aSJakub Kicinski
261b784db7aSJakub Kicinski      do: &privflag-get-op
262b784db7aSJakub Kicinski        request:
263b784db7aSJakub Kicinski          value: 13
264b784db7aSJakub Kicinski          attributes:
265b784db7aSJakub Kicinski            - header
266b784db7aSJakub Kicinski        reply:
267b784db7aSJakub Kicinski          value: 14
268b784db7aSJakub Kicinski          attributes:
269b784db7aSJakub Kicinski            - header
270b784db7aSJakub Kicinski            - flags
271b784db7aSJakub Kicinski      dump: *privflag-get-op
272b784db7aSJakub Kicinski    -
273b784db7aSJakub Kicinski      name: privflags-set
274b784db7aSJakub Kicinski      doc: Set device private flags.
275b784db7aSJakub Kicinski
276b784db7aSJakub Kicinski      attribute-set: privflags
277b784db7aSJakub Kicinski
278b784db7aSJakub Kicinski      do:
279b784db7aSJakub Kicinski        request:
280b784db7aSJakub Kicinski          attributes:
281b784db7aSJakub Kicinski            - header
282b784db7aSJakub Kicinski            - flags
283b784db7aSJakub Kicinski    -
284b784db7aSJakub Kicinski      name: privflags-ntf
285b784db7aSJakub Kicinski      doc: Notification for change in device private flags.
286b784db7aSJakub Kicinski      notify: privflags-get
287b784db7aSJakub Kicinski
288b784db7aSJakub Kicinski    -
289b784db7aSJakub Kicinski      name: rings-get
290b784db7aSJakub Kicinski      doc: Get ring params.
291b784db7aSJakub Kicinski
292b784db7aSJakub Kicinski      attribute-set: rings
293b784db7aSJakub Kicinski
294b784db7aSJakub Kicinski      do: &ring-get-op
295b784db7aSJakub Kicinski        request:
296b784db7aSJakub Kicinski          attributes:
297b784db7aSJakub Kicinski            - header
298b784db7aSJakub Kicinski        reply:
299b784db7aSJakub Kicinski          attributes:
300b784db7aSJakub Kicinski            - header
301b784db7aSJakub Kicinski            - rx-max
302b784db7aSJakub Kicinski            - rx-mini-max
303b784db7aSJakub Kicinski            - rx-jumbo-max
304b784db7aSJakub Kicinski            - tx-max
305b784db7aSJakub Kicinski            - rx
306b784db7aSJakub Kicinski            - rx-mini
307b784db7aSJakub Kicinski            - rx-jumbo
308b784db7aSJakub Kicinski            - tx
309b784db7aSJakub Kicinski            - rx-buf-len
310b784db7aSJakub Kicinski            - tcp-data-split
311b784db7aSJakub Kicinski            - cqe-size
312b784db7aSJakub Kicinski            - tx-push
3131ed32ad4SJakub Kicinski            - rx-push
314b784db7aSJakub Kicinski      dump: *ring-get-op
315b784db7aSJakub Kicinski    -
316b784db7aSJakub Kicinski      name: rings-set
317b784db7aSJakub Kicinski      doc: Set ring params.
318b784db7aSJakub Kicinski
319b784db7aSJakub Kicinski      attribute-set: rings
320b784db7aSJakub Kicinski
321b784db7aSJakub Kicinski      do:
322b784db7aSJakub Kicinski        request:
323b784db7aSJakub Kicinski          attributes:
324b784db7aSJakub Kicinski            - header
325b784db7aSJakub Kicinski            - rx
326b784db7aSJakub Kicinski            - rx-mini
327b784db7aSJakub Kicinski            - rx-jumbo
328b784db7aSJakub Kicinski            - tx
329b784db7aSJakub Kicinski            - rx-buf-len
330b784db7aSJakub Kicinski            - tcp-data-split
331b784db7aSJakub Kicinski            - cqe-size
332b784db7aSJakub Kicinski            - tx-push
3331ed32ad4SJakub Kicinski            - rx-push
334b784db7aSJakub Kicinski    -
335b784db7aSJakub Kicinski      name: rings-ntf
336b784db7aSJakub Kicinski      doc: Notification for change in ring params.
337b784db7aSJakub Kicinski      notify: rings-get
338b784db7aSJakub Kicinski
339b784db7aSJakub Kicinski    # TODO: fill in the requests in between
340b784db7aSJakub Kicinski
341b784db7aSJakub Kicinski    -
342b784db7aSJakub Kicinski      name: mm-get
343b784db7aSJakub Kicinski      doc: Get MAC Merge configuration and state
344b784db7aSJakub Kicinski
345b784db7aSJakub Kicinski      attribute-set: mm
346b784db7aSJakub Kicinski
347b784db7aSJakub Kicinski      do: &mm-get-op
348b784db7aSJakub Kicinski        request:
349b784db7aSJakub Kicinski          value: 42
350b784db7aSJakub Kicinski          attributes:
351b784db7aSJakub Kicinski            - header
352b784db7aSJakub Kicinski        reply:
353b784db7aSJakub Kicinski          value: 42
354b784db7aSJakub Kicinski          attributes:
355b784db7aSJakub Kicinski            - header
356b784db7aSJakub Kicinski            - pmac-enabled
357b784db7aSJakub Kicinski            - tx-enabled
358b784db7aSJakub Kicinski            - tx-active
359b784db7aSJakub Kicinski            - tx-min-frag-size
360b784db7aSJakub Kicinski            - rx-min-frag-size
361b784db7aSJakub Kicinski            - verify-enabled
362b784db7aSJakub Kicinski            - verify-time
363b784db7aSJakub Kicinski            - max-verify-time
364b784db7aSJakub Kicinski            - stats
365b784db7aSJakub Kicinski      dump: *mm-get-op
366b784db7aSJakub Kicinski    -
367b784db7aSJakub Kicinski      name: mm-set
368b784db7aSJakub Kicinski      doc: Set MAC Merge configuration
369b784db7aSJakub Kicinski
370b784db7aSJakub Kicinski      attribute-set: mm
371b784db7aSJakub Kicinski
372b784db7aSJakub Kicinski      do:
373b784db7aSJakub Kicinski        request:
374b784db7aSJakub Kicinski          attributes:
375b784db7aSJakub Kicinski            - header
376b784db7aSJakub Kicinski            - verify-enabled
377b784db7aSJakub Kicinski            - verify-time
378b784db7aSJakub Kicinski            - tx-enabled
379b784db7aSJakub Kicinski            - pmac-enabled
380b784db7aSJakub Kicinski            - tx-min-frag-size
381b784db7aSJakub Kicinski    -
382b784db7aSJakub Kicinski      name: mm-ntf
383b784db7aSJakub Kicinski      doc: Notification for change in MAC Merge configuration.
384b784db7aSJakub Kicinski      notify: mm-get
385