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