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