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