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