xref: /linux/Documentation/netlink/specs/ethtool.yaml (revision 024bfd2e9d80d7131f1178eb2235030b96f7ef0e)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: ethtool
4
5protocol: genetlink-legacy
6
7doc: Partial family for Ethtool Netlink.
8uapi-header: linux/ethtool_netlink_generated.h
9
10definitions:
11  -
12    name: udp-tunnel-type
13    enum-name:
14    type: enum
15    entries: [ vxlan, geneve, vxlan-gpe ]
16    enum-cnt-name: __ethtool-udp-tunnel-type-cnt
17    render-max: true
18  -
19    name: stringset
20    type: enum
21    entries: []
22    header: linux/ethtool.h # skip rendering, no actual definition
23  -
24    name: header-flags
25    type: flags
26    name-prefix: ethtool-flag-
27    doc: common ethtool header flags
28    entries:
29      -
30        name: compact-bitsets
31        doc: use compact bitsets in reply
32      -
33        name: omit-reply
34        doc: provide optional reply for SET or ACT requests
35      -
36        name: stats
37        doc: request statistics, if supported by the driver
38  -
39    name: module-fw-flash-status
40    type: enum
41    doc: plug-in module firmware flashing status
42    header: linux/ethtool.h
43    entries:
44      -
45        name: started
46        doc: The firmware flashing process has started.
47      -
48        name: in_progress
49        doc: The firmware flashing process is in progress.
50      -
51        name: completed
52        doc: The firmware flashing process was completed successfully.
53      -
54        name: error
55        doc: The firmware flashing process was stopped due to an error.
56  -
57    name: c33-pse-ext-state
58    doc: "groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4 Variables"
59    type: enum
60    name-prefix: ethtool-c33-pse-ext-state-
61    header: linux/ethtool.h
62    entries:
63        -
64          name: none
65          doc: none
66        -
67          name: error-condition
68          doc: Group of error_condition states
69        -
70          name: mr-mps-valid
71          doc: Group of mr_mps_valid states
72        -
73          name: mr-pse-enable
74          doc: Group of mr_pse_enable states
75        -
76          name: option-detect-ted
77          doc: Group of option_detect_ted states
78        -
79          name: option-vport-lim
80          doc: Group of option_vport_lim states
81        -
82          name: ovld-detected
83          doc: Group of ovld_detected states
84        -
85          name: power-not-available
86          doc: Group of power_not_available states
87        -
88          name: short-detected
89          doc: Group of short_detected states
90  -
91    name: phy-upstream-type
92    enum-name:
93    type: enum
94    entries: [ mac, phy ]
95  -
96    name: tcp-data-split
97    type: enum
98    entries: [ unknown, disabled, enabled ]
99
100attribute-sets:
101  -
102    name: header
103    attr-cnt-name: __ethtool-a-header-cnt
104    attributes:
105      -
106        name: unspec
107        type: unused
108        value: 0
109      -
110        name: dev-index
111        type: u32
112      -
113        name: dev-name
114        type: string
115      -
116        name: flags
117        type: u32
118        enum: header-flags
119      -
120        name: phy-index
121        type: u32
122
123  -
124    name: bitset-bit
125    attr-cnt-name: __ethtool-a-bitset-bit-cnt
126    attributes:
127      -
128        name: unspec
129        type: unused
130        value: 0
131      -
132        name: index
133        type: u32
134      -
135        name: name
136        type: string
137      -
138        name: value
139        type: flag
140  -
141    name: bitset-bits
142    attr-cnt-name: __ethtool-a-bitset-bits-cnt
143    attributes:
144      -
145        name: unspec
146        type: unused
147        value: 0
148      -
149        name: bit
150        type: nest
151        multi-attr: true
152        nested-attributes: bitset-bit
153  -
154    name: bitset
155    attr-cnt-name: __ethtool-a-bitset-cnt
156    attributes:
157      -
158        name: unspec
159        type: unused
160        value: 0
161      -
162        name: nomask
163        type: flag
164      -
165        name: size
166        type: u32
167      -
168        name: bits
169        type: nest
170        nested-attributes: bitset-bits
171      -
172        name: value
173        type: binary
174      -
175        name: mask
176        type: binary
177  -
178    name: string
179    attr-cnt-name: __ethtool-a-string-cnt
180    attributes:
181      -
182        name: unspec
183        type: unused
184        value: 0
185      -
186        name: index
187        type: u32
188      -
189        name: value
190        type: string
191  -
192    name: strings
193    attr-cnt-name: __ethtool-a-strings-cnt
194    attributes:
195      -
196        name: unspec
197        type: unused
198        value: 0
199      -
200        name: unspec
201        type: unused
202        value: 0
203      -
204        name: string
205        type: nest
206        multi-attr: true
207        nested-attributes: string
208  -
209    name: stringset
210    attr-cnt-name: __ethtool-a-stringset-cnt
211    attributes:
212      -
213        name: unspec
214        type: unused
215        value: 0
216      -
217        name: id
218        type: u32
219      -
220        name: count
221        type: u32
222      -
223        name: strings
224        type: nest
225        multi-attr: true
226        nested-attributes: strings
227  -
228    name: stringsets
229    attr-cnt-name: __ethtool-a-stringsets-cnt
230    attributes:
231      -
232        name: unspec
233        type: unused
234        value: 0
235      -
236        name: stringset
237        type: nest
238        multi-attr: true
239        nested-attributes: stringset
240  -
241    name: strset
242    attr-cnt-name: __ethtool-a-strset-cnt
243    attributes:
244      -
245        name: unspec
246        type: unused
247        value: 0
248      -
249        name: header
250        type: nest
251        nested-attributes: header
252      -
253        name: stringsets
254        type: nest
255        nested-attributes: stringsets
256      -
257        name: counts-only
258        type: flag
259
260  -
261    name: privflags
262    attr-cnt-name: __ethtool-a-privflags-cnt
263    attributes:
264      -
265        name: unspec
266        type: unused
267        value: 0
268      -
269        name: header
270        type: nest
271        nested-attributes: header
272      -
273        name: flags
274        type: nest
275        nested-attributes: bitset
276
277  -
278    name: rings
279    attr-cnt-name: __ethtool-a-rings-cnt
280    attributes:
281      -
282        name: unspec
283        type: unused
284        value: 0
285      -
286        name: header
287        type: nest
288        nested-attributes: header
289      -
290        name: rx-max
291        type: u32
292      -
293        name: rx-mini-max
294        type: u32
295      -
296        name: rx-jumbo-max
297        type: u32
298      -
299        name: tx-max
300        type: u32
301      -
302        name: rx
303        type: u32
304      -
305        name: rx-mini
306        type: u32
307      -
308        name: rx-jumbo
309        type: u32
310      -
311        name: tx
312        type: u32
313      -
314        name: rx-buf-len
315        type: u32
316      -
317        name: tcp-data-split
318        type: u8
319        enum: tcp-data-split
320      -
321        name: cqe-size
322        type: u32
323      -
324        name: tx-push
325        type: u8
326      -
327        name: rx-push
328        type: u8
329      -
330        name: tx-push-buf-len
331        type: u32
332      -
333        name: tx-push-buf-len-max
334        type: u32
335
336  -
337    name: mm-stat
338    attr-cnt-name: __ethtool-a-mm-stat-cnt
339    doc: MAC Merge (802.3)
340    attributes:
341      -
342        name: unspec
343        type: unused
344        value: 0
345      -
346        name: pad
347        type: pad
348      -
349        name: reassembly-errors
350        doc: aMACMergeFrameAssErrorCount
351        type: u64
352      -
353        name: smd-errors
354        doc: aMACMergeFrameSmdErrorCount
355        type: u64
356      -
357        name: reassembly-ok
358        doc: aMACMergeFrameAssOkCount
359        type: u64
360      -
361        name: rx-frag-count
362        doc: aMACMergeFragCountRx
363        type: u64
364      -
365        name: tx-frag-count
366        doc: aMACMergeFragCountTx
367        type: u64
368      -
369        name: hold-count
370        doc: aMACMergeHoldCount
371        type: u64
372  -
373    name: mm
374    attr-cnt-name: __ethtool-a-mm-cnt
375    attributes:
376      -
377        name: unspec
378        type: unused
379        value: 0
380      -
381        name: header
382        type: nest
383        nested-attributes: header
384      -
385        name: pmac-enabled
386        type: u8
387      -
388        name: tx-enabled
389        type: u8
390      -
391        name: tx-active
392        type: u8
393      -
394        name: tx-min-frag-size
395        type: u32
396      -
397        name: rx-min-frag-size
398        type: u32
399      -
400        name: verify-enabled
401        type: u8
402      -
403        name: verify-status
404        type: u8
405      -
406        name: verify-time
407        type: u32
408      -
409        name: max-verify-time
410        type: u32
411      -
412        name: stats
413        type: nest
414        nested-attributes: mm-stat
415  -
416    name: linkinfo
417    attr-cnt-name: __ethtool-a-linkinfo-cnt
418    attributes:
419      -
420        name: unspec
421        type: unused
422        value: 0
423      -
424        name: header
425        type: nest
426        nested-attributes: header
427      -
428        name: port
429        type: u8
430      -
431        name: phyaddr
432        type: u8
433      -
434        name: tp-mdix
435        type: u8
436      -
437        name: tp-mdix-ctrl
438        type: u8
439      -
440        name: transceiver
441        type: u8
442  -
443    name: linkmodes
444    attr-cnt-name: __ethtool-a-linkmodes-cnt
445    attributes:
446      -
447        name: unspec
448        type: unused
449        value: 0
450      -
451        name: header
452        type: nest
453        nested-attributes: header
454      -
455        name: autoneg
456        type: u8
457      -
458        name: ours
459        type: nest
460        nested-attributes: bitset
461      -
462        name: peer
463        type: nest
464        nested-attributes: bitset
465      -
466        name: speed
467        type: u32
468      -
469        name: duplex
470        type: u8
471      -
472        name: master-slave-cfg
473        type: u8
474      -
475        name: master-slave-state
476        type: u8
477      -
478        name: lanes
479        type: u32
480      -
481        name: rate-matching
482        type: u8
483  -
484    name: linkstate
485    attr-cnt-name: __ethtool-a-linkstate-cnt
486    attributes:
487      -
488        name: unspec
489        type: unused
490        value: 0
491      -
492        name: header
493        type: nest
494        nested-attributes: header
495      -
496        name: link
497        type: u8
498      -
499        name: sqi
500        type: u32
501      -
502        name: sqi-max
503        type: u32
504      -
505        name: ext-state
506        type: u8
507      -
508        name: ext-substate
509        type: u8
510      -
511        name: ext-down-cnt
512        type: u32
513  -
514    name: debug
515    attr-cnt-name: __ethtool-a-debug-cnt
516    attributes:
517      -
518        name: unspec
519        type: unused
520        value: 0
521      -
522        name: header
523        type: nest
524        nested-attributes: header
525      -
526        name: msgmask
527        type: nest
528        nested-attributes: bitset
529  -
530    name: wol
531    attr-cnt-name: __ethtool-a-wol-cnt
532    attributes:
533      -
534        name: unspec
535        type: unused
536        value: 0
537      -
538        name: header
539        type: nest
540        nested-attributes: header
541      -
542        name: modes
543        type: nest
544        nested-attributes: bitset
545      -
546        name: sopass
547        type: binary
548  -
549    name: features
550    attr-cnt-name: __ethtool-a-features-cnt
551    attributes:
552      -
553        name: unspec
554        type: unused
555        value: 0
556      -
557        name: header
558        type: nest
559        nested-attributes: header
560      -
561        name: hw
562        type: nest
563        nested-attributes: bitset
564      -
565        name: wanted
566        type: nest
567        nested-attributes: bitset
568      -
569        name: active
570        type: nest
571        nested-attributes: bitset
572      -
573        name: nochange
574        type: nest
575        nested-attributes: bitset
576  -
577    name: channels
578    attr-cnt-name: __ethtool-a-channels-cnt
579    attributes:
580      -
581        name: unspec
582        type: unused
583        value: 0
584      -
585        name: header
586        type: nest
587        nested-attributes: header
588      -
589        name: rx-max
590        type: u32
591      -
592        name: tx-max
593        type: u32
594      -
595        name: other-max
596        type: u32
597      -
598        name: combined-max
599        type: u32
600      -
601        name: rx-count
602        type: u32
603      -
604        name: tx-count
605        type: u32
606      -
607        name: other-count
608        type: u32
609      -
610        name: combined-count
611        type: u32
612
613  -
614    name: irq-moderation
615    attr-cnt-name: __ethtool-a-irq-moderation-cnt
616    attributes:
617      -
618        name: unspec
619        type: unused
620        value: 0
621      -
622        name: usec
623        type: u32
624      -
625        name: pkts
626        type: u32
627      -
628        name: comps
629        type: u32
630  -
631    name: profile
632    attr-cnt-name: __ethtool-a-profile-cnt
633    attributes:
634      -
635        name: unspec
636        type: unused
637        value: 0
638      -
639        name: irq-moderation
640        type: nest
641        multi-attr: true
642        nested-attributes: irq-moderation
643  -
644    name: coalesce
645    attr-cnt-name: __ethtool-a-coalesce-cnt
646    attributes:
647      -
648        name: unspec
649        type: unused
650        value: 0
651      -
652        name: header
653        type: nest
654        nested-attributes: header
655      -
656        name: rx-usecs
657        type: u32
658      -
659        name: rx-max-frames
660        type: u32
661      -
662        name: rx-usecs-irq
663        type: u32
664      -
665        name: rx-max-frames-irq
666        type: u32
667      -
668        name: tx-usecs
669        type: u32
670      -
671        name: tx-max-frames
672        type: u32
673      -
674        name: tx-usecs-irq
675        type: u32
676      -
677        name: tx-max-frames-irq
678        type: u32
679      -
680        name: stats-block-usecs
681        type: u32
682      -
683        name: use-adaptive-rx
684        type: u8
685      -
686        name: use-adaptive-tx
687        type: u8
688      -
689        name: pkt-rate-low
690        type: u32
691      -
692        name: rx-usecs-low
693        type: u32
694      -
695        name: rx-max-frames-low
696        type: u32
697      -
698        name: tx-usecs-low
699        type: u32
700      -
701        name: tx-max-frames-low
702        type: u32
703      -
704        name: pkt-rate-high
705        type: u32
706      -
707        name: rx-usecs-high
708        type: u32
709      -
710        name: rx-max-frames-high
711        type: u32
712      -
713        name: tx-usecs-high
714        type: u32
715      -
716        name: tx-max-frames-high
717        type: u32
718      -
719        name: rate-sample-interval
720        type: u32
721      -
722        name: use-cqe-mode-tx
723        type: u8
724      -
725        name: use-cqe-mode-rx
726        type: u8
727      -
728        name: tx-aggr-max-bytes
729        type: u32
730      -
731        name: tx-aggr-max-frames
732        type: u32
733      -
734        name: tx-aggr-time-usecs
735        type: u32
736      -
737        name: rx-profile
738        type: nest
739        nested-attributes: profile
740      -
741        name: tx-profile
742        type: nest
743        nested-attributes: profile
744
745  -
746    name: pause-stat
747    attr-cnt-name: __ethtool-a-pause-stat-cnt
748    attributes:
749      -
750        name: unspec
751        type: unused
752        value: 0
753      -
754        name: pad
755        type: pad
756      -
757        name: tx-frames
758        type: u64
759      -
760        name: rx-frames
761        type: u64
762  -
763    name: pause
764    attr-cnt-name: __ethtool-a-pause-cnt
765    attributes:
766      -
767        name: unspec
768        type: unused
769        value: 0
770      -
771        name: header
772        type: nest
773        nested-attributes: header
774      -
775        name: autoneg
776        type: u8
777      -
778        name: rx
779        type: u8
780      -
781        name: tx
782        type: u8
783      -
784        name: stats
785        type: nest
786        nested-attributes: pause-stat
787      -
788        name: stats-src
789        type: u32
790  -
791    name: eee
792    attr-cnt-name: __ethtool-a-eee-cnt
793    attributes:
794      -
795        name: unspec
796        type: unused
797        value: 0
798      -
799        name: header
800        type: nest
801        nested-attributes: header
802      -
803        name: modes-ours
804        type: nest
805        nested-attributes: bitset
806      -
807        name: modes-peer
808        type: nest
809        nested-attributes: bitset
810      -
811        name: active
812        type: u8
813      -
814        name: enabled
815        type: u8
816      -
817        name: tx-lpi-enabled
818        type: u8
819      -
820        name: tx-lpi-timer
821        type: u32
822  -
823    name: ts-stat
824    attr-cnt-name: __ethtool-a-ts-stat-cnt
825    attributes:
826      -
827        name: unspec
828        type: unused
829        value: 0
830      -
831        name: tx-pkts
832        type: uint
833      -
834        name: tx-lost
835        type: uint
836      -
837        name: tx-err
838        type: uint
839  -
840    name: tsinfo
841    attr-cnt-name: __ethtool-a-tsinfo-cnt
842    attributes:
843      -
844        name: unspec
845        type: unused
846        value: 0
847      -
848        name: header
849        type: nest
850        nested-attributes: header
851      -
852        name: timestamping
853        type: nest
854        nested-attributes: bitset
855      -
856        name: tx-types
857        type: nest
858        nested-attributes: bitset
859      -
860        name: rx-filters
861        type: nest
862        nested-attributes: bitset
863      -
864        name: phc-index
865        type: u32
866      -
867        name: stats
868        type: nest
869        nested-attributes: ts-stat
870  -
871    name: cable-result
872    attr-cnt-name: __ethtool-a-cable-result-cnt
873    attributes:
874      -
875        name: unspec
876        type: unused
877        value: 0
878      -
879        name: pair
880        doc: ETHTOOL_A_CABLE_PAIR
881        type: u8
882      -
883        name: code
884        doc: ETHTOOL_A_CABLE_RESULT_CODE
885        type: u8
886      -
887        name: src
888        doc: ETHTOOL_A_CABLE_INF_SRC
889        type: u32
890  -
891    name: cable-fault-length
892    attr-cnt-name: __ethtool-a-cable-fault-length-cnt
893    attributes:
894      -
895        name: unspec
896        type: unused
897        value: 0
898      -
899        name: pair
900        type: u8
901      -
902        name: cm
903        type: u32
904      -
905        name: src
906        type: u32
907  -
908    name: cable-nest
909    attr-cnt-name: __ethtool-a-cable-nest-cnt
910    attributes:
911      -
912        name: unspec
913        type: unused
914        value: 0
915      -
916        name: result
917        type: nest
918        nested-attributes: cable-result
919      -
920        name: fault-length
921        type: nest
922        nested-attributes: cable-fault-length
923  -
924    name: cable-test
925    attr-cnt-name: __ethtool-a-cable-test-cnt
926    attributes:
927      -
928        name: unspec
929        type: unused
930        value: 0
931      -
932        name: header
933        type: nest
934        nested-attributes: header
935  -
936    name: cable-test-ntf
937    attr-cnt-name: __ethtool-a-cable-test-ntf-cnt
938    attributes:
939      -
940        name: unspec
941        type: unused
942        value: 0
943      -
944        name: header
945        type: nest
946        nested-attributes: header
947      -
948        name: status
949        doc: _STARTED/_COMPLETE
950        type: u8
951      -
952        name: nest
953        type: nest
954        nested-attributes: cable-nest
955  -
956    name: cable-test-tdr-cfg
957    attr-cnt-name: __ethtool-a-cable-test-tdr-cfg-cnt
958    attributes:
959      -
960        name: unspec
961        type: unused
962        value: 0
963      -
964        name: first
965        type: u32
966      -
967        name: last
968        type: u32
969      -
970        name: step
971        type: u32
972      -
973        name: pair
974        type: u8
975  -
976    name: cable-test-tdr-ntf
977    attr-cnt-name: __ethtool-a-cable-test-tdr-ntf-cnt
978    attributes:
979      -
980        name: unspec
981        type: unused
982        value: 0
983      -
984        name: header
985        type: nest
986        nested-attributes: header
987      -
988        name: status
989        type: u8
990      -
991        name: nest
992        type: nest
993        nested-attributes: cable-nest
994  -
995    name: cable-test-tdr
996    attr-cnt-name: __ethtool-a-cable-test-tdr-cnt
997    attributes:
998      -
999        name: unspec
1000        type: unused
1001        value: 0
1002      -
1003        name: header
1004        type: nest
1005        nested-attributes: header
1006      -
1007        name: cfg
1008        type: nest
1009        nested-attributes: cable-test-tdr-cfg
1010  -
1011    name: tunnel-udp-entry
1012    attr-cnt-name: __ethtool-a-tunnel-udp-entry-cnt
1013    attributes:
1014      -
1015        name: unspec
1016        type: unused
1017        value: 0
1018      -
1019        name: port
1020        type: u16
1021        byte-order: big-endian
1022      -
1023        name: type
1024        type: u32
1025        enum: udp-tunnel-type
1026  -
1027    name: tunnel-udp-table
1028    attr-cnt-name: __ethtool-a-tunnel-udp-table-cnt
1029    attributes:
1030      -
1031        name: unspec
1032        type: unused
1033        value: 0
1034      -
1035        name: size
1036        type: u32
1037      -
1038        name: types
1039        type: nest
1040        nested-attributes: bitset
1041      -
1042        name: entry
1043        type: nest
1044        multi-attr: true
1045        nested-attributes: tunnel-udp-entry
1046  -
1047    name: tunnel-udp
1048    attr-cnt-name: __ethtool-a-tunnel-udp-cnt
1049    attributes:
1050      -
1051        name: unspec
1052        type: unused
1053        value: 0
1054      -
1055        name: table
1056        type: nest
1057        nested-attributes: tunnel-udp-table
1058  -
1059    name: tunnel-info
1060    attr-cnt-name: __ethtool-a-tunnel-info-cnt
1061    attributes:
1062      -
1063        name: unspec
1064        type: unused
1065        value: 0
1066      -
1067        name: header
1068        type: nest
1069        nested-attributes: header
1070      -
1071        name: udp-ports
1072        type: nest
1073        nested-attributes: tunnel-udp
1074  -
1075    name: fec-stat
1076    attr-cnt-name: __ethtool-a-fec-stat-cnt
1077    attributes:
1078      -
1079        name: unspec
1080        type: unused
1081        value: 0
1082      -
1083        name: pad
1084        type: pad
1085      -
1086        name: corrected
1087        type: binary
1088        sub-type: u64
1089      -
1090        name: uncorr
1091        type: binary
1092        sub-type: u64
1093      -
1094        name: corr-bits
1095        type: binary
1096        sub-type: u64
1097  -
1098    name: fec
1099    attr-cnt-name: __ethtool-a-fec-cnt
1100    attributes:
1101      -
1102        name: unspec
1103        type: unused
1104        value: 0
1105      -
1106        name: header
1107        type: nest
1108        nested-attributes: header
1109      -
1110        name: modes
1111        type: nest
1112        nested-attributes: bitset
1113      -
1114        name: auto
1115        type: u8
1116      -
1117        name: active
1118        type: u32
1119      -
1120        name: stats
1121        type: nest
1122        nested-attributes: fec-stat
1123  -
1124    name: module-eeprom
1125    attr-cnt-name: __ethtool-a-module-eeprom-cnt
1126    attributes:
1127      -
1128        name: unspec
1129        type: unused
1130        value: 0
1131      -
1132        name: header
1133        type: nest
1134        nested-attributes: header
1135      -
1136        name: offset
1137        type: u32
1138      -
1139        name: length
1140        type: u32
1141      -
1142        name: page
1143        type: u8
1144      -
1145        name: bank
1146        type: u8
1147      -
1148        name: i2c-address
1149        type: u8
1150      -
1151        name: data
1152        type: binary
1153  -
1154    name: stats-grp
1155    attr-cnt-name: __ethtool-a-stats-grp-cnt
1156    attributes:
1157      -
1158        name: unspec
1159        type: unused
1160        value: 0
1161      -
1162        name: pad
1163        type: pad
1164      -
1165        name: id
1166        type: u32
1167      -
1168        name: ss-id
1169        type: u32
1170      -
1171        name: stat
1172        type: u64
1173        type-value: [ id ]
1174      -
1175        name: hist-rx
1176        type: nest
1177        nested-attributes: stats-grp-hist
1178      -
1179        name: hist-tx
1180        type: nest
1181        nested-attributes: stats-grp-hist
1182      -
1183        name: hist-bkt-low
1184        type: u32
1185      -
1186        name: hist-bkt-hi
1187        type: u32
1188      -
1189        name: hist-val
1190        type: u64
1191  -
1192    name: stats-grp-hist
1193    subset-of: stats-grp
1194    attributes:
1195      -
1196        name: hist-bkt-low
1197      -
1198        name: hist-bkt-hi
1199      -
1200        name: hist-val
1201  -
1202    name: stats
1203    attr-cnt-name: __ethtool-a-stats-cnt
1204    attributes:
1205      -
1206        name: unspec
1207        type: unused
1208        value: 0
1209      -
1210        name: pad
1211        type: pad
1212      -
1213        name: header
1214        type: nest
1215        nested-attributes: header
1216      -
1217        name: groups
1218        type: nest
1219        nested-attributes: bitset
1220      -
1221        name: grp
1222        type: nest
1223        nested-attributes: stats-grp
1224      -
1225        name: src
1226        type: u32
1227  -
1228    name: phc-vclocks
1229    attr-cnt-name: __ethtool-a-phc-vclocks-cnt
1230    attributes:
1231      -
1232        name: unspec
1233        type: unused
1234        value: 0
1235      -
1236        name: header
1237        type: nest
1238        nested-attributes: header
1239      -
1240        name: num
1241        type: u32
1242      -
1243        name: index
1244        type: binary
1245        sub-type: s32
1246  -
1247    name: module
1248    attr-cnt-name: __ethtool-a-module-cnt
1249    attributes:
1250      -
1251        name: unspec
1252        type: unused
1253        value: 0
1254      -
1255        name: header
1256        type: nest
1257        nested-attributes: header
1258      -
1259        name: power-mode-policy
1260        type: u8
1261      -
1262        name: power-mode
1263        type: u8
1264  -
1265    name: c33-pse-pw-limit
1266    attr-cnt-name: __ethtool-a-c33-pse-pw-limit-cnt
1267    attr-max-name: __ethtool-a-c33-pse-pw-limit-max
1268    attributes:
1269      -
1270        name: unspec
1271        type: unused
1272        value: 0
1273      -
1274        name: min
1275        type: u32
1276      -
1277        name: max
1278        type: u32
1279  -
1280    name: pse
1281    attr-cnt-name: __ethtool-a-pse-cnt
1282    attributes:
1283      -
1284        name: unspec
1285        type: unused
1286        value: 0
1287      -
1288        name: header
1289        type: nest
1290        nested-attributes: header
1291      -
1292        name: podl-pse-admin-state
1293        type: u32
1294        name-prefix: ethtool-a-
1295      -
1296        name: podl-pse-admin-control
1297        type: u32
1298        name-prefix: ethtool-a-
1299      -
1300        name: podl-pse-pw-d-status
1301        type: u32
1302        name-prefix: ethtool-a-
1303      -
1304        name: c33-pse-admin-state
1305        type: u32
1306        name-prefix: ethtool-a-
1307      -
1308        name: c33-pse-admin-control
1309        type: u32
1310        name-prefix: ethtool-a-
1311      -
1312        name: c33-pse-pw-d-status
1313        type: u32
1314        name-prefix: ethtool-a-
1315      -
1316        name: c33-pse-pw-class
1317        type: u32
1318        name-prefix: ethtool-a-
1319      -
1320        name: c33-pse-actual-pw
1321        type: u32
1322        name-prefix: ethtool-a-
1323      -
1324        name: c33-pse-ext-state
1325        type: u32
1326        name-prefix: ethtool-a-
1327        enum: c33-pse-ext-state
1328      -
1329        name: c33-pse-ext-substate
1330        type: u32
1331        name-prefix: ethtool-a-
1332      -
1333        name: c33-pse-avail-pw-limit
1334        type: u32
1335        name-prefix: ethtool-a-
1336      -
1337        name: c33-pse-pw-limit-ranges
1338        name-prefix: ethtool-a-
1339        type: nest
1340        multi-attr: true
1341        nested-attributes: c33-pse-pw-limit
1342  -
1343    name: rss
1344    attr-cnt-name: __ethtool-a-rss-cnt
1345    attributes:
1346      -
1347        name: unspec
1348        type: unused
1349        value: 0
1350      -
1351        name: header
1352        type: nest
1353        nested-attributes: header
1354      -
1355        name: context
1356        type: u32
1357      -
1358        name: hfunc
1359        type: u32
1360      -
1361        name: indir
1362        type: binary
1363        sub-type: u32
1364      -
1365        name: hkey
1366        type: binary
1367      -
1368        name: input_xfrm
1369        type: u32
1370      -
1371        name: start-context
1372        type: u32
1373  -
1374    name: plca
1375    attr-cnt-name: __ethtool-a-plca-cnt
1376    attributes:
1377      -
1378        name: unspec
1379        type: unused
1380        value: 0
1381      -
1382        name: header
1383        type: nest
1384        nested-attributes: header
1385      -
1386        name: version
1387        type: u16
1388      -
1389        name: enabled
1390        type: u8
1391      -
1392        name: status
1393        type: u8
1394      -
1395        name: node-cnt
1396        type: u32
1397      -
1398        name: node-id
1399        type: u32
1400      -
1401        name: to-tmr
1402        type: u32
1403      -
1404        name: burst-cnt
1405        type: u32
1406      -
1407        name: burst-tmr
1408        type: u32
1409  -
1410    name: module-fw-flash
1411    attr-cnt-name: __ethtool-a-module-fw-flash-cnt
1412    attributes:
1413      -
1414        name: unspec
1415        type: unused
1416        value: 0
1417      -
1418        name: header
1419        type: nest
1420        nested-attributes: header
1421      -
1422        name: file-name
1423        type: string
1424      -
1425        name: password
1426        type: u32
1427      -
1428        name: status
1429        type: u32
1430        enum: module-fw-flash-status
1431      -
1432        name: status-msg
1433        type: string
1434      -
1435        name: done
1436        type: uint
1437      -
1438        name: total
1439        type: uint
1440  -
1441    name: phy
1442    attr-cnt-name: __ethtool-a-phy-cnt
1443    attributes:
1444      -
1445        name: unspec
1446        type: unused
1447        value: 0
1448      -
1449        name: header
1450        type: nest
1451        nested-attributes: header
1452      -
1453        name: index
1454        type: u32
1455      -
1456        name: drvname
1457        type: string
1458      -
1459        name: name
1460        type: string
1461      -
1462        name: upstream-type
1463        type: u32
1464        enum: phy-upstream-type
1465      -
1466        name: upstream-index
1467        type: u32
1468      -
1469        name: upstream-sfp-name
1470        type: string
1471      -
1472        name: downstream-sfp-name
1473        type: string
1474
1475operations:
1476  enum-model: directional
1477  name-prefix: ethtool-msg-
1478  list:
1479    -
1480      name: strset-get
1481      doc: Get string set from the kernel.
1482
1483      attribute-set: strset
1484
1485      do: &strset-get-op
1486        request:
1487          attributes:
1488            - header
1489            - stringsets
1490            - counts-only
1491        reply:
1492          attributes:
1493            - header
1494            - stringsets
1495      dump: *strset-get-op
1496    -
1497      name: linkinfo-get
1498      doc: Get link info.
1499
1500      attribute-set: linkinfo
1501
1502      do: &linkinfo-get-op
1503        request:
1504          attributes:
1505            - header
1506        reply:
1507          attributes: &linkinfo
1508            - header
1509            - port
1510            - phyaddr
1511            - tp-mdix
1512            - tp-mdix-ctrl
1513            - transceiver
1514      dump: *linkinfo-get-op
1515    -
1516      name: linkinfo-set
1517      doc: Set link info.
1518
1519      attribute-set: linkinfo
1520
1521      do:
1522        request:
1523          attributes: *linkinfo
1524    -
1525      name: linkinfo-ntf
1526      doc: Notification for change in link info.
1527      notify: linkinfo-get
1528    -
1529      name: linkmodes-get
1530      doc: Get link modes.
1531
1532      attribute-set: linkmodes
1533
1534      do: &linkmodes-get-op
1535        request:
1536          attributes:
1537            - header
1538        reply:
1539          attributes: &linkmodes
1540            - header
1541            - autoneg
1542            - ours
1543            - peer
1544            - speed
1545            - duplex
1546            - master-slave-cfg
1547            - master-slave-state
1548            - lanes
1549            - rate-matching
1550      dump: *linkmodes-get-op
1551    -
1552      name: linkmodes-set
1553      doc: Set link modes.
1554
1555      attribute-set: linkmodes
1556
1557      do:
1558        request:
1559          attributes: *linkmodes
1560    -
1561      name: linkmodes-ntf
1562      doc: Notification for change in link modes.
1563      notify: linkmodes-get
1564    -
1565      name: linkstate-get
1566      doc: Get link state.
1567
1568      attribute-set: linkstate
1569
1570      do: &linkstate-get-op
1571        request:
1572          attributes:
1573            - header
1574        reply:
1575          attributes:
1576            - header
1577            - link
1578            - sqi
1579            - sqi-max
1580            - ext-state
1581            - ext-substate
1582            - ext-down-cnt
1583      dump: *linkstate-get-op
1584    -
1585      name: debug-get
1586      doc: Get debug message mask.
1587
1588      attribute-set: debug
1589
1590      do: &debug-get-op
1591        request:
1592          attributes:
1593            - header
1594        reply:
1595          attributes: &debug
1596            - header
1597            - msgmask
1598      dump: *debug-get-op
1599    -
1600      name: debug-set
1601      doc: Set debug message mask.
1602
1603      attribute-set: debug
1604
1605      do:
1606        request:
1607          attributes: *debug
1608    -
1609      name: debug-ntf
1610      doc: Notification for change in debug message mask.
1611      notify: debug-get
1612    -
1613      name: wol-get
1614      doc: Get WOL params.
1615
1616      attribute-set: wol
1617
1618      do: &wol-get-op
1619        request:
1620          attributes:
1621            - header
1622        reply:
1623          attributes: &wol
1624            - header
1625            - modes
1626            - sopass
1627      dump: *wol-get-op
1628    -
1629      name: wol-set
1630      doc: Set WOL params.
1631
1632      attribute-set: wol
1633
1634      do:
1635        request:
1636          attributes: *wol
1637    -
1638      name: wol-ntf
1639      doc: Notification for change in WOL params.
1640      notify: wol-get
1641    -
1642      name: features-get
1643      doc: Get features.
1644
1645      attribute-set: features
1646
1647      do: &feature-get-op
1648        request:
1649          attributes:
1650            - header
1651        reply:
1652          attributes: &feature
1653            - header
1654            # User-changeable features.
1655            - hw
1656            # User-requested features.
1657            - wanted
1658            # Currently active features.
1659            - active
1660            # Unchangeable features.
1661            - nochange
1662      dump: *feature-get-op
1663    -
1664      name: features-set
1665      doc: Set features.
1666
1667      attribute-set: features
1668
1669      do: &feature-set-op
1670        request:
1671          attributes: *feature
1672        reply:
1673          attributes: *feature
1674    -
1675      name: features-ntf
1676      doc: Notification for change in features.
1677      notify: features-get
1678    -
1679      name: privflags-get
1680      doc: Get device private flags.
1681
1682      attribute-set: privflags
1683
1684      do: &privflag-get-op
1685        request:
1686          attributes:
1687            - header
1688        reply:
1689          attributes: &privflag
1690            - header
1691            - flags
1692      dump: *privflag-get-op
1693    -
1694      name: privflags-set
1695      doc: Set device private flags.
1696
1697      attribute-set: privflags
1698
1699      do:
1700        request:
1701          attributes: *privflag
1702    -
1703      name: privflags-ntf
1704      doc: Notification for change in device private flags.
1705      notify: privflags-get
1706
1707    -
1708      name: rings-get
1709      doc: Get ring params.
1710
1711      attribute-set: rings
1712
1713      do: &ring-get-op
1714        request:
1715          attributes:
1716            - header
1717        reply:
1718          attributes: &ring
1719            - header
1720            - rx-max
1721            - rx-mini-max
1722            - rx-jumbo-max
1723            - tx-max
1724            - rx
1725            - rx-mini
1726            - rx-jumbo
1727            - tx
1728            - rx-buf-len
1729            - tcp-data-split
1730            - cqe-size
1731            - tx-push
1732            - rx-push
1733            - tx-push-buf-len
1734            - tx-push-buf-len-max
1735      dump: *ring-get-op
1736    -
1737      name: rings-set
1738      doc: Set ring params.
1739
1740      attribute-set: rings
1741
1742      do:
1743        request:
1744          attributes: *ring
1745    -
1746      name: rings-ntf
1747      doc: Notification for change in ring params.
1748      notify: rings-get
1749    -
1750      name: channels-get
1751      doc: Get channel params.
1752
1753      attribute-set: channels
1754
1755      do: &channel-get-op
1756        request:
1757          attributes:
1758            - header
1759        reply:
1760          attributes: &channel
1761            - header
1762            - rx-max
1763            - tx-max
1764            - other-max
1765            - combined-max
1766            - rx-count
1767            - tx-count
1768            - other-count
1769            - combined-count
1770      dump: *channel-get-op
1771    -
1772      name: channels-set
1773      doc: Set channel params.
1774
1775      attribute-set: channels
1776
1777      do:
1778        request:
1779          attributes: *channel
1780    -
1781      name: channels-ntf
1782      doc: Notification for change in channel params.
1783      notify: channels-get
1784    -
1785      name: coalesce-get
1786      doc: Get coalesce params.
1787
1788      attribute-set: coalesce
1789
1790      do: &coalesce-get-op
1791        request:
1792          attributes:
1793            - header
1794        reply:
1795          attributes: &coalesce
1796            - header
1797            - rx-usecs
1798            - rx-max-frames
1799            - rx-usecs-irq
1800            - rx-max-frames-irq
1801            - tx-usecs
1802            - tx-max-frames
1803            - tx-usecs-irq
1804            - tx-max-frames-irq
1805            - stats-block-usecs
1806            - use-adaptive-rx
1807            - use-adaptive-tx
1808            - pkt-rate-low
1809            - rx-usecs-low
1810            - rx-max-frames-low
1811            - tx-usecs-low
1812            - tx-max-frames-low
1813            - pkt-rate-high
1814            - rx-usecs-high
1815            - rx-max-frames-high
1816            - tx-usecs-high
1817            - tx-max-frames-high
1818            - rate-sample-interval
1819            - use-cqe-mode-tx
1820            - use-cqe-mode-rx
1821            - tx-aggr-max-bytes
1822            - tx-aggr-max-frames
1823            - tx-aggr-time-usecs
1824            - rx-profile
1825            - tx-profile
1826      dump: *coalesce-get-op
1827    -
1828      name: coalesce-set
1829      doc: Set coalesce params.
1830
1831      attribute-set: coalesce
1832
1833      do:
1834        request:
1835          attributes: *coalesce
1836    -
1837      name: coalesce-ntf
1838      doc: Notification for change in coalesce params.
1839      notify: coalesce-get
1840    -
1841      name: pause-get
1842      doc: Get pause params.
1843
1844      attribute-set: pause
1845
1846      do: &pause-get-op
1847        request:
1848          attributes:
1849            - header
1850        reply:
1851          attributes: &pause
1852            - header
1853            - autoneg
1854            - rx
1855            - tx
1856            - stats
1857            - stats-src
1858      dump: *pause-get-op
1859    -
1860      name: pause-set
1861      doc: Set pause params.
1862
1863      attribute-set: pause
1864
1865      do:
1866        request:
1867          attributes: *pause
1868    -
1869      name: pause-ntf
1870      doc: Notification for change in pause params.
1871      notify: pause-get
1872    -
1873      name: eee-get
1874      doc: Get eee params.
1875
1876      attribute-set: eee
1877
1878      do: &eee-get-op
1879        request:
1880          attributes:
1881            - header
1882        reply:
1883          attributes: &eee
1884            - header
1885            - modes-ours
1886            - modes-peer
1887            - active
1888            - enabled
1889            - tx-lpi-enabled
1890            - tx-lpi-timer
1891      dump: *eee-get-op
1892    -
1893      name: eee-set
1894      doc: Set eee params.
1895
1896      attribute-set: eee
1897
1898      do:
1899        request:
1900          attributes: *eee
1901    -
1902      name: eee-ntf
1903      doc: Notification for change in eee params.
1904      notify: eee-get
1905    -
1906      name: tsinfo-get
1907      doc: Get tsinfo params.
1908
1909      attribute-set: tsinfo
1910
1911      do: &tsinfo-get-op
1912        request:
1913          attributes:
1914            - header
1915        reply:
1916          attributes:
1917            - header
1918            - timestamping
1919            - tx-types
1920            - rx-filters
1921            - phc-index
1922            - stats
1923      dump: *tsinfo-get-op
1924    -
1925      name: cable-test-act
1926      doc: Cable test.
1927
1928      attribute-set: cable-test
1929
1930      do:
1931        request:
1932          attributes:
1933            - header
1934    -
1935      name: cable-test-ntf
1936      doc: Cable test notification.
1937
1938      attribute-set: cable-test-ntf
1939
1940      event:
1941        attributes:
1942          - header
1943          - status
1944    -
1945      name: cable-test-tdr-act
1946      doc: Cable test TDR.
1947
1948      attribute-set: cable-test-tdr
1949
1950      do:
1951        request:
1952          attributes:
1953            - header
1954    -
1955      name: cable-test-tdr-ntf
1956      doc: Cable test TDR notification.
1957
1958      attribute-set: cable-test-tdr-ntf
1959
1960      event:
1961        attributes:
1962          - header
1963          - status
1964          - nest
1965    -
1966      name: tunnel-info-get
1967      doc: Get tsinfo params.
1968
1969      attribute-set: tunnel-info
1970
1971      do: &tunnel-info-get-op
1972        request:
1973          attributes:
1974            - header
1975        reply:
1976          attributes:
1977            - header
1978            - udp-ports
1979      dump: *tunnel-info-get-op
1980    -
1981      name: fec-get
1982      doc: Get FEC params.
1983
1984      attribute-set: fec
1985
1986      do: &fec-get-op
1987        request:
1988          attributes:
1989            - header
1990        reply:
1991          attributes: &fec
1992            - header
1993            - modes
1994            - auto
1995            - active
1996            - stats
1997      dump: *fec-get-op
1998    -
1999      name: fec-set
2000      doc: Set FEC params.
2001
2002      attribute-set: fec
2003
2004      do:
2005        request:
2006          attributes: *fec
2007    -
2008      name: fec-ntf
2009      doc: Notification for change in FEC params.
2010      notify: fec-get
2011    -
2012      name: module-eeprom-get
2013      doc: Get module EEPROM params.
2014
2015      attribute-set: module-eeprom
2016
2017      do: &module-eeprom-get-op
2018        request:
2019          attributes:
2020            - header
2021        reply:
2022          attributes:
2023            - header
2024            - offset
2025            - length
2026            - page
2027            - bank
2028            - i2c-address
2029            - data
2030      dump: *module-eeprom-get-op
2031    -
2032      name: stats-get
2033      doc: Get statistics.
2034
2035      attribute-set: stats
2036
2037      do: &stats-get-op
2038        request:
2039          attributes:
2040            - header
2041            - groups
2042        reply:
2043          attributes:
2044            - header
2045            - groups
2046            - grp
2047            - src
2048      dump: *stats-get-op
2049    -
2050      name: phc-vclocks-get
2051      doc: Get PHC VCLOCKs.
2052
2053      attribute-set: phc-vclocks
2054
2055      do: &phc-vclocks-get-op
2056        request:
2057          attributes:
2058            - header
2059        reply:
2060          attributes:
2061            - header
2062            - num
2063      dump: *phc-vclocks-get-op
2064    -
2065      name: module-get
2066      doc: Get module params.
2067
2068      attribute-set: module
2069
2070      do: &module-get-op
2071        request:
2072          attributes:
2073            - header
2074        reply:
2075          attributes: &module
2076            - header
2077            - power-mode-policy
2078            - power-mode
2079      dump: *module-get-op
2080    -
2081      name: module-set
2082      doc: Set module params.
2083
2084      attribute-set: module
2085
2086      do:
2087        request:
2088          attributes: *module
2089    -
2090      name: module-ntf
2091      doc: Notification for change in module params.
2092      notify: module-get
2093    -
2094      name: pse-get
2095      doc: Get Power Sourcing Equipment params.
2096
2097      attribute-set: pse
2098
2099      do: &pse-get-op
2100        request:
2101          attributes:
2102            - header
2103        reply:
2104          attributes:
2105            - header
2106            - podl-pse-admin-state
2107            - podl-pse-admin-control
2108            - podl-pse-pw-d-status
2109            - c33-pse-admin-state
2110            - c33-pse-admin-control
2111            - c33-pse-pw-d-status
2112            - c33-pse-pw-class
2113            - c33-pse-actual-pw
2114            - c33-pse-ext-state
2115            - c33-pse-ext-substate
2116            - c33-pse-avail-pw-limit
2117            - c33-pse-pw-limit-ranges
2118      dump: *pse-get-op
2119    -
2120      name: pse-set
2121      doc: Set Power Sourcing Equipment params.
2122
2123      attribute-set: pse
2124
2125      do:
2126        request:
2127          attributes:
2128            - header
2129            - podl-pse-admin-control
2130            - c33-pse-admin-control
2131            - c33-pse-avail-pw-limit
2132    -
2133      name: rss-get
2134      doc: Get RSS params.
2135
2136      attribute-set: rss
2137
2138      do:
2139        request:
2140          attributes:
2141            - header
2142            - context
2143        reply: &rss-reply
2144          attributes:
2145            - header
2146            - context
2147            - hfunc
2148            - indir
2149            - hkey
2150            - input_xfrm
2151      dump:
2152        request:
2153          attributes:
2154            - header
2155            - start-context
2156        reply: *rss-reply
2157    -
2158      name: plca-get-cfg
2159      doc: Get PLCA params.
2160
2161      attribute-set: plca
2162
2163      do: &plca-get-op
2164        request:
2165          attributes:
2166            - header
2167        reply:
2168          attributes: &plca
2169            - header
2170            - version
2171            - enabled
2172            - status
2173            - node-cnt
2174            - node-id
2175            - to-tmr
2176            - burst-cnt
2177            - burst-tmr
2178      dump: *plca-get-op
2179    -
2180      name: plca-set-cfg
2181      doc: Set PLCA params.
2182
2183      attribute-set: plca
2184
2185      do:
2186        request:
2187          attributes: *plca
2188    -
2189      name: plca-get-status
2190      doc: Get PLCA status params.
2191
2192      attribute-set: plca
2193
2194      do: &plca-get-status-op
2195        request:
2196          attributes:
2197            - header
2198        reply:
2199          attributes: *plca
2200      dump: *plca-get-status-op
2201    -
2202      name: plca-ntf
2203      doc: Notification for change in PLCA params.
2204      notify: plca-get-cfg
2205    -
2206      name: mm-get
2207      doc: Get MAC Merge configuration and state
2208
2209      attribute-set: mm
2210
2211      do: &mm-get-op
2212        request:
2213          attributes:
2214            - header
2215        reply:
2216          attributes:
2217            - header
2218            - pmac-enabled
2219            - tx-enabled
2220            - tx-active
2221            - tx-min-frag-size
2222            - rx-min-frag-size
2223            - verify-enabled
2224            - verify-time
2225            - max-verify-time
2226            - stats
2227      dump: *mm-get-op
2228    -
2229      name: mm-set
2230      doc: Set MAC Merge configuration
2231
2232      attribute-set: mm
2233
2234      do:
2235        request:
2236          attributes:
2237            - header
2238            - verify-enabled
2239            - verify-time
2240            - tx-enabled
2241            - pmac-enabled
2242            - tx-min-frag-size
2243    -
2244      name: mm-ntf
2245      doc: Notification for change in MAC Merge configuration.
2246      notify: mm-get
2247    -
2248      name: module-fw-flash-act
2249      doc: Flash transceiver module firmware.
2250
2251      attribute-set: module-fw-flash
2252
2253      do:
2254        request:
2255          attributes:
2256            - header
2257            - file-name
2258            - password
2259    -
2260      name: module-fw-flash-ntf
2261      doc: Notification for firmware flashing progress and status.
2262
2263      attribute-set: module-fw-flash
2264
2265      event:
2266        attributes:
2267          - header
2268          - status
2269          - status-msg
2270          - done
2271          - total
2272    -
2273      name: phy-get
2274      doc: Get PHY devices attached to an interface
2275
2276      attribute-set: phy
2277
2278      do: &phy-get-op
2279        request:
2280          attributes:
2281            - header
2282        reply:
2283          attributes:
2284            - header
2285            - index
2286            - drvname
2287            - name
2288            - upstream-type
2289            - upstream-index
2290            - upstream-sfp-name
2291            - downstream-sfp-name
2292      dump: *phy-get-op
2293    -
2294      name: phy-ntf
2295      doc: Notification for change in PHY devices.
2296      notify: phy-get
2297