xref: /linux/Documentation/netlink/specs/ethtool.yaml (revision 566ab427f827b0256d3e8ce0235d088e6a9c28bd)
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: src
672        type: u32
673  -
674    name: cable-fault-length
675    attributes:
676      -
677        name: pair
678        type: u8
679      -
680        name: cm
681        type: u32
682      -
683        name: src
684        type: u32
685  -
686    name: cable-nest
687    attributes:
688      -
689        name: result
690        type: nest
691        nested-attributes: cable-result
692      -
693        name: fault-length
694        type: nest
695        nested-attributes: cable-fault-length
696  -
697    name: cable-test
698    attributes:
699      -
700        name: header
701        type: nest
702        nested-attributes: header
703  -
704    name: cable-test-ntf
705    attributes:
706      -
707        name: header
708        type: nest
709        nested-attributes: header
710      -
711        name: status
712        type: u8
713      -
714        name: nest
715        type: nest
716        nested-attributes: cable-nest
717  -
718    name: cable-test-tdr-cfg
719    attributes:
720      -
721        name: first
722        type: u32
723      -
724        name: last
725        type: u32
726      -
727        name: step
728        type: u32
729      -
730        name: pair
731        type: u8
732  -
733    name: cable-test-tdr-ntf
734    attributes:
735      -
736        name: header
737        type: nest
738        nested-attributes: header
739      -
740        name: status
741        type: u8
742      -
743        name: nest
744        type: nest
745        nested-attributes: cable-nest
746  -
747    name: cable-test-tdr
748    attributes:
749      -
750        name: header
751        type: nest
752        nested-attributes: header
753      -
754        name: cfg
755        type: nest
756        nested-attributes: cable-test-tdr-cfg
757  -
758    name: tunnel-udp-entry
759    attributes:
760      -
761        name: port
762        type: u16
763        byte-order: big-endian
764      -
765        name: type
766        type: u32
767        enum: udp-tunnel-type
768  -
769    name: tunnel-udp-table
770    attributes:
771      -
772        name: size
773        type: u32
774      -
775        name: types
776        type: nest
777        nested-attributes: bitset
778      -
779        name: entry
780        type: nest
781        multi-attr: true
782        nested-attributes: tunnel-udp-entry
783  -
784    name: tunnel-udp
785    attributes:
786      -
787        name: table
788        type: nest
789        nested-attributes: tunnel-udp-table
790  -
791    name: tunnel-info
792    attributes:
793      -
794        name: header
795        type: nest
796        nested-attributes: header
797      -
798        name: udp-ports
799        type: nest
800        nested-attributes: tunnel-udp
801  -
802    name: fec-stat
803    attributes:
804      -
805        name: pad
806        type: pad
807      -
808        name: corrected
809        type: binary
810        sub-type: u64
811      -
812        name: uncorr
813        type: binary
814        sub-type: u64
815      -
816        name: corr-bits
817        type: binary
818        sub-type: u64
819  -
820    name: fec
821    attributes:
822      -
823        name: header
824        type: nest
825        nested-attributes: header
826      -
827        name: modes
828        type: nest
829        nested-attributes: bitset
830      -
831        name: auto
832        type: u8
833      -
834        name: active
835        type: u32
836      -
837        name: stats
838        type: nest
839        nested-attributes: fec-stat
840  -
841    name: module-eeprom
842    attributes:
843      -
844        name: header
845        type: nest
846        nested-attributes: header
847      -
848        name: offset
849        type: u32
850      -
851        name: length
852        type: u32
853      -
854        name: page
855        type: u8
856      -
857        name: bank
858        type: u8
859      -
860        name: i2c-address
861        type: u8
862      -
863        name: data
864        type: binary
865  -
866    name: stats-grp
867    attributes:
868      -
869        name: pad
870        type: pad
871      -
872        name: id
873        type: u32
874      -
875        name: ss-id
876        type: u32
877      -
878        name: stat
879        type: u64
880        type-value: [ id ]
881      -
882        name: hist-rx
883        type: nest
884        nested-attributes: stats-grp-hist
885      -
886        name: hist-tx
887        type: nest
888        nested-attributes: stats-grp-hist
889      -
890        name: hist-bkt-low
891        type: u32
892      -
893        name: hist-bkt-hi
894        type: u32
895      -
896        name: hist-val
897        type: u64
898  -
899    name: stats-grp-hist
900    subset-of: stats-grp
901    attributes:
902      -
903        name: hist-bkt-low
904      -
905        name: hist-bkt-hi
906      -
907        name: hist-val
908  -
909    name: stats
910    attributes:
911      -
912        name: pad
913        type: pad
914      -
915        name: header
916        type: nest
917        nested-attributes: header
918      -
919        name: groups
920        type: nest
921        nested-attributes: bitset
922      -
923        name: grp
924        type: nest
925        nested-attributes: stats-grp
926      -
927        name: src
928        type: u32
929  -
930    name: phc-vclocks
931    attributes:
932      -
933        name: header
934        type: nest
935        nested-attributes: header
936      -
937        name: num
938        type: u32
939      -
940        name: index
941        type: binary
942        sub-type: s32
943  -
944    name: module
945    attributes:
946      -
947        name: header
948        type: nest
949        nested-attributes: header
950      -
951        name: power-mode-policy
952        type: u8
953      -
954        name: power-mode
955        type: u8
956  -
957    name: c33-pse-pw-limit
958    attributes:
959      -
960        name: min
961        type: u32
962      -
963        name: max
964        type: u32
965  -
966    name: pse
967    attributes:
968      -
969        name: header
970        type: nest
971        nested-attributes: header
972      -
973        name: podl-pse-admin-state
974        type: u32
975        name-prefix: ethtool-a-
976      -
977        name: podl-pse-admin-control
978        type: u32
979        name-prefix: ethtool-a-
980      -
981        name: podl-pse-pw-d-status
982        type: u32
983        name-prefix: ethtool-a-
984      -
985        name: c33-pse-admin-state
986        type: u32
987        name-prefix: ethtool-a-
988      -
989        name: c33-pse-admin-control
990        type: u32
991        name-prefix: ethtool-a-
992      -
993        name: c33-pse-pw-d-status
994        type: u32
995        name-prefix: ethtool-a-
996      -
997        name: c33-pse-pw-class
998        type: u32
999        name-prefix: ethtool-a-
1000      -
1001        name: c33-pse-actual-pw
1002        type: u32
1003        name-prefix: ethtool-a-
1004      -
1005        name: c33-pse-ext-state
1006        type: u32
1007        name-prefix: ethtool-a-
1008        enum: c33-pse-ext-state
1009      -
1010        name: c33-pse-ext-substate
1011        type: u32
1012        name-prefix: ethtool-a-
1013      -
1014        name: c33-pse-avail-pw-limit
1015        type: u32
1016        name-prefix: ethtool-a-
1017      -
1018        name: c33-pse-pw-limit-ranges
1019        name-prefix: ethtool-a-
1020        type: nest
1021        multi-attr: true
1022        nested-attributes: c33-pse-pw-limit
1023  -
1024    name: rss
1025    attributes:
1026      -
1027        name: header
1028        type: nest
1029        nested-attributes: header
1030      -
1031        name: context
1032        type: u32
1033      -
1034        name: hfunc
1035        type: u32
1036      -
1037        name: indir
1038        type: binary
1039        sub-type: u32
1040      -
1041        name: hkey
1042        type: binary
1043      -
1044        name: input_xfrm
1045        type: u32
1046      -
1047        name: start-context
1048        type: u32
1049  -
1050    name: plca
1051    attributes:
1052      -
1053        name: header
1054        type: nest
1055        nested-attributes: header
1056      -
1057        name: version
1058        type: u16
1059      -
1060        name: enabled
1061        type: u8
1062      -
1063        name: status
1064        type: u8
1065      -
1066        name: node-cnt
1067        type: u32
1068      -
1069        name: node-id
1070        type: u32
1071      -
1072        name: to-tmr
1073        type: u32
1074      -
1075        name: burst-cnt
1076        type: u32
1077      -
1078        name: burst-tmr
1079        type: u32
1080  -
1081    name: module-fw-flash
1082    attributes:
1083      -
1084        name: header
1085        type: nest
1086        nested-attributes: header
1087      -
1088        name: file-name
1089        type: string
1090      -
1091        name: password
1092        type: u32
1093      -
1094        name: status
1095        type: u32
1096        enum: module-fw-flash-status
1097      -
1098        name: status-msg
1099        type: string
1100      -
1101        name: done
1102        type: uint
1103      -
1104        name: total
1105        type: uint
1106  -
1107    name: phy
1108    attributes:
1109      -
1110        name: header
1111        type: nest
1112        nested-attributes: header
1113      -
1114        name: index
1115        type: u32
1116      -
1117        name: drvname
1118        type: string
1119      -
1120        name: name
1121        type: string
1122      -
1123        name: upstream-type
1124        type: u32
1125        enum: phy-upstream-type
1126      -
1127        name: upstream-index
1128        type: u32
1129      -
1130        name: upstream-sfp-name
1131        type: string
1132      -
1133        name: downstream-sfp-name
1134        type: string
1135
1136operations:
1137  enum-model: directional
1138  name-prefix: ethtool-msg-
1139  list:
1140    -
1141      name: strset-get
1142      doc: Get string set from the kernel.
1143
1144      attribute-set: strset
1145
1146      do: &strset-get-op
1147        request:
1148          attributes:
1149            - header
1150            - stringsets
1151            - counts-only
1152        reply:
1153          attributes:
1154            - header
1155            - stringsets
1156      dump: *strset-get-op
1157    -
1158      name: linkinfo-get
1159      doc: Get link info.
1160
1161      attribute-set: linkinfo
1162
1163      do: &linkinfo-get-op
1164        request:
1165          attributes:
1166            - header
1167        reply:
1168          attributes: &linkinfo
1169            - header
1170            - port
1171            - phyaddr
1172            - tp-mdix
1173            - tp-mdix-ctrl
1174            - transceiver
1175      dump: *linkinfo-get-op
1176    -
1177      name: linkinfo-set
1178      doc: Set link info.
1179
1180      attribute-set: linkinfo
1181
1182      do:
1183        request:
1184          attributes: *linkinfo
1185    -
1186      name: linkinfo-ntf
1187      doc: Notification for change in link info.
1188      notify: linkinfo-get
1189    -
1190      name: linkmodes-get
1191      doc: Get link modes.
1192
1193      attribute-set: linkmodes
1194
1195      do: &linkmodes-get-op
1196        request:
1197          attributes:
1198            - header
1199        reply:
1200          attributes: &linkmodes
1201            - header
1202            - autoneg
1203            - ours
1204            - peer
1205            - speed
1206            - duplex
1207            - master-slave-cfg
1208            - master-slave-state
1209            - lanes
1210            - rate-matching
1211      dump: *linkmodes-get-op
1212    -
1213      name: linkmodes-set
1214      doc: Set link modes.
1215
1216      attribute-set: linkmodes
1217
1218      do:
1219        request:
1220          attributes: *linkmodes
1221    -
1222      name: linkmodes-ntf
1223      doc: Notification for change in link modes.
1224      notify: linkmodes-get
1225    -
1226      name: linkstate-get
1227      doc: Get link state.
1228
1229      attribute-set: linkstate
1230
1231      do: &linkstate-get-op
1232        request:
1233          attributes:
1234            - header
1235        reply:
1236          attributes:
1237            - header
1238            - link
1239            - sqi
1240            - sqi-max
1241            - ext-state
1242            - ext-substate
1243            - ext-down-cnt
1244      dump: *linkstate-get-op
1245    -
1246      name: debug-get
1247      doc: Get debug message mask.
1248
1249      attribute-set: debug
1250
1251      do: &debug-get-op
1252        request:
1253          attributes:
1254            - header
1255        reply:
1256          attributes: &debug
1257            - header
1258            - msgmask
1259      dump: *debug-get-op
1260    -
1261      name: debug-set
1262      doc: Set debug message mask.
1263
1264      attribute-set: debug
1265
1266      do:
1267        request:
1268          attributes: *debug
1269    -
1270      name: debug-ntf
1271      doc: Notification for change in debug message mask.
1272      notify: debug-get
1273    -
1274      name: wol-get
1275      doc: Get WOL params.
1276
1277      attribute-set: wol
1278
1279      do: &wol-get-op
1280        request:
1281          attributes:
1282            - header
1283        reply:
1284          attributes: &wol
1285            - header
1286            - modes
1287            - sopass
1288      dump: *wol-get-op
1289    -
1290      name: wol-set
1291      doc: Set WOL params.
1292
1293      attribute-set: wol
1294
1295      do:
1296        request:
1297          attributes: *wol
1298    -
1299      name: wol-ntf
1300      doc: Notification for change in WOL params.
1301      notify: wol-get
1302    -
1303      name: features-get
1304      doc: Get features.
1305
1306      attribute-set: features
1307
1308      do: &feature-get-op
1309        request:
1310          attributes:
1311            - header
1312        reply:
1313          attributes: &feature
1314            - header
1315            # User-changeable features.
1316            - hw
1317            # User-requested features.
1318            - wanted
1319            # Currently active features.
1320            - active
1321            # Unchangeable features.
1322            - nochange
1323      dump: *feature-get-op
1324    -
1325      name: features-set
1326      doc: Set features.
1327
1328      attribute-set: features
1329
1330      do: &feature-set-op
1331        request:
1332          attributes: *feature
1333        reply:
1334          attributes: *feature
1335    -
1336      name: features-ntf
1337      doc: Notification for change in features.
1338      notify: features-get
1339    -
1340      name: privflags-get
1341      doc: Get device private flags.
1342
1343      attribute-set: privflags
1344
1345      do: &privflag-get-op
1346        request:
1347          attributes:
1348            - header
1349        reply:
1350          attributes: &privflag
1351            - header
1352            - flags
1353      dump: *privflag-get-op
1354    -
1355      name: privflags-set
1356      doc: Set device private flags.
1357
1358      attribute-set: privflags
1359
1360      do:
1361        request:
1362          attributes: *privflag
1363    -
1364      name: privflags-ntf
1365      doc: Notification for change in device private flags.
1366      notify: privflags-get
1367
1368    -
1369      name: rings-get
1370      doc: Get ring params.
1371
1372      attribute-set: rings
1373
1374      do: &ring-get-op
1375        request:
1376          attributes:
1377            - header
1378        reply:
1379          attributes: &ring
1380            - header
1381            - rx-max
1382            - rx-mini-max
1383            - rx-jumbo-max
1384            - tx-max
1385            - rx
1386            - rx-mini
1387            - rx-jumbo
1388            - tx
1389            - rx-buf-len
1390            - tcp-data-split
1391            - cqe-size
1392            - tx-push
1393            - rx-push
1394            - tx-push-buf-len
1395            - tx-push-buf-len-max
1396      dump: *ring-get-op
1397    -
1398      name: rings-set
1399      doc: Set ring params.
1400
1401      attribute-set: rings
1402
1403      do:
1404        request:
1405          attributes: *ring
1406    -
1407      name: rings-ntf
1408      doc: Notification for change in ring params.
1409      notify: rings-get
1410    -
1411      name: channels-get
1412      doc: Get channel params.
1413
1414      attribute-set: channels
1415
1416      do: &channel-get-op
1417        request:
1418          attributes:
1419            - header
1420        reply:
1421          attributes: &channel
1422            - header
1423            - rx-max
1424            - tx-max
1425            - other-max
1426            - combined-max
1427            - rx-count
1428            - tx-count
1429            - other-count
1430            - combined-count
1431      dump: *channel-get-op
1432    -
1433      name: channels-set
1434      doc: Set channel params.
1435
1436      attribute-set: channels
1437
1438      do:
1439        request:
1440          attributes: *channel
1441    -
1442      name: channels-ntf
1443      doc: Notification for change in channel params.
1444      notify: channels-get
1445    -
1446      name: coalesce-get
1447      doc: Get coalesce params.
1448
1449      attribute-set: coalesce
1450
1451      do: &coalesce-get-op
1452        request:
1453          attributes:
1454            - header
1455        reply:
1456          attributes: &coalesce
1457            - header
1458            - rx-usecs
1459            - rx-max-frames
1460            - rx-usecs-irq
1461            - rx-max-frames-irq
1462            - tx-usecs
1463            - tx-max-frames
1464            - tx-usecs-irq
1465            - tx-max-frames-irq
1466            - stats-block-usecs
1467            - use-adaptive-rx
1468            - use-adaptive-tx
1469            - pkt-rate-low
1470            - rx-usecs-low
1471            - rx-max-frames-low
1472            - tx-usecs-low
1473            - tx-max-frames-low
1474            - pkt-rate-high
1475            - rx-usecs-high
1476            - rx-max-frames-high
1477            - tx-usecs-high
1478            - tx-max-frames-high
1479            - rate-sample-interval
1480            - use-cqe-mode-tx
1481            - use-cqe-mode-rx
1482            - tx-aggr-max-bytes
1483            - tx-aggr-max-frames
1484            - tx-aggr-time-usecs
1485            - rx-profile
1486            - tx-profile
1487      dump: *coalesce-get-op
1488    -
1489      name: coalesce-set
1490      doc: Set coalesce params.
1491
1492      attribute-set: coalesce
1493
1494      do:
1495        request:
1496          attributes: *coalesce
1497    -
1498      name: coalesce-ntf
1499      doc: Notification for change in coalesce params.
1500      notify: coalesce-get
1501    -
1502      name: pause-get
1503      doc: Get pause params.
1504
1505      attribute-set: pause
1506
1507      do: &pause-get-op
1508        request:
1509          attributes:
1510            - header
1511        reply:
1512          attributes: &pause
1513            - header
1514            - autoneg
1515            - rx
1516            - tx
1517            - stats
1518            - stats-src
1519      dump: *pause-get-op
1520    -
1521      name: pause-set
1522      doc: Set pause params.
1523
1524      attribute-set: pause
1525
1526      do:
1527        request:
1528          attributes: *pause
1529    -
1530      name: pause-ntf
1531      doc: Notification for change in pause params.
1532      notify: pause-get
1533    -
1534      name: eee-get
1535      doc: Get eee params.
1536
1537      attribute-set: eee
1538
1539      do: &eee-get-op
1540        request:
1541          attributes:
1542            - header
1543        reply:
1544          attributes: &eee
1545            - header
1546            - modes-ours
1547            - modes-peer
1548            - active
1549            - enabled
1550            - tx-lpi-enabled
1551            - tx-lpi-timer
1552      dump: *eee-get-op
1553    -
1554      name: eee-set
1555      doc: Set eee params.
1556
1557      attribute-set: eee
1558
1559      do:
1560        request:
1561          attributes: *eee
1562    -
1563      name: eee-ntf
1564      doc: Notification for change in eee params.
1565      notify: eee-get
1566    -
1567      name: tsinfo-get
1568      doc: Get tsinfo params.
1569
1570      attribute-set: tsinfo
1571
1572      do: &tsinfo-get-op
1573        request:
1574          attributes:
1575            - header
1576        reply:
1577          attributes:
1578            - header
1579            - timestamping
1580            - tx-types
1581            - rx-filters
1582            - phc-index
1583            - stats
1584      dump: *tsinfo-get-op
1585    -
1586      name: cable-test-act
1587      doc: Cable test.
1588
1589      attribute-set: cable-test
1590
1591      do:
1592        request:
1593          attributes:
1594            - header
1595    -
1596      name: cable-test-ntf
1597      doc: Cable test notification.
1598
1599      attribute-set: cable-test-ntf
1600
1601      event:
1602        attributes:
1603          - header
1604          - status
1605    -
1606      name: cable-test-tdr-act
1607      doc: Cable test TDR.
1608
1609      attribute-set: cable-test-tdr
1610
1611      do:
1612        request:
1613          attributes:
1614            - header
1615    -
1616      name: cable-test-tdr-ntf
1617      doc: Cable test TDR notification.
1618
1619      attribute-set: cable-test-tdr-ntf
1620
1621      event:
1622        attributes:
1623          - header
1624          - status
1625          - nest
1626    -
1627      name: tunnel-info-get
1628      doc: Get tsinfo params.
1629
1630      attribute-set: tunnel-info
1631
1632      do: &tunnel-info-get-op
1633        request:
1634          attributes:
1635            - header
1636        reply:
1637          attributes:
1638            - header
1639            - udp-ports
1640      dump: *tunnel-info-get-op
1641    -
1642      name: fec-get
1643      doc: Get FEC params.
1644
1645      attribute-set: fec
1646
1647      do: &fec-get-op
1648        request:
1649          attributes:
1650            - header
1651        reply:
1652          attributes: &fec
1653            - header
1654            - modes
1655            - auto
1656            - active
1657            - stats
1658      dump: *fec-get-op
1659    -
1660      name: fec-set
1661      doc: Set FEC params.
1662
1663      attribute-set: fec
1664
1665      do:
1666        request:
1667          attributes: *fec
1668    -
1669      name: fec-ntf
1670      doc: Notification for change in FEC params.
1671      notify: fec-get
1672    -
1673      name: module-eeprom-get
1674      doc: Get module EEPROM params.
1675
1676      attribute-set: module-eeprom
1677
1678      do: &module-eeprom-get-op
1679        request:
1680          attributes:
1681            - header
1682        reply:
1683          attributes:
1684            - header
1685            - offset
1686            - length
1687            - page
1688            - bank
1689            - i2c-address
1690            - data
1691      dump: *module-eeprom-get-op
1692    -
1693      name: stats-get
1694      doc: Get statistics.
1695
1696      attribute-set: stats
1697
1698      do: &stats-get-op
1699        request:
1700          attributes:
1701            - header
1702            - groups
1703        reply:
1704          attributes:
1705            - header
1706            - groups
1707            - grp
1708            - src
1709      dump: *stats-get-op
1710    -
1711      name: phc-vclocks-get
1712      doc: Get PHC VCLOCKs.
1713
1714      attribute-set: phc-vclocks
1715
1716      do: &phc-vclocks-get-op
1717        request:
1718          attributes:
1719            - header
1720        reply:
1721          attributes:
1722            - header
1723            - num
1724      dump: *phc-vclocks-get-op
1725    -
1726      name: module-get
1727      doc: Get module params.
1728
1729      attribute-set: module
1730
1731      do: &module-get-op
1732        request:
1733          attributes:
1734            - header
1735        reply:
1736          attributes: &module
1737            - header
1738            - power-mode-policy
1739            - power-mode
1740      dump: *module-get-op
1741    -
1742      name: module-set
1743      doc: Set module params.
1744
1745      attribute-set: module
1746
1747      do:
1748        request:
1749          attributes: *module
1750    -
1751      name: module-ntf
1752      doc: Notification for change in module params.
1753      notify: module-get
1754    -
1755      name: pse-get
1756      doc: Get Power Sourcing Equipment params.
1757
1758      attribute-set: pse
1759
1760      do: &pse-get-op
1761        request:
1762          attributes:
1763            - header
1764        reply:
1765          attributes:
1766            - header
1767            - podl-pse-admin-state
1768            - podl-pse-admin-control
1769            - podl-pse-pw-d-status
1770            - c33-pse-admin-state
1771            - c33-pse-admin-control
1772            - c33-pse-pw-d-status
1773            - c33-pse-pw-class
1774            - c33-pse-actual-pw
1775            - c33-pse-ext-state
1776            - c33-pse-ext-substate
1777            - c33-pse-avail-pw-limit
1778            - c33-pse-pw-limit-ranges
1779      dump: *pse-get-op
1780    -
1781      name: pse-set
1782      doc: Set Power Sourcing Equipment params.
1783
1784      attribute-set: pse
1785
1786      do:
1787        request:
1788          attributes:
1789            - header
1790            - podl-pse-admin-control
1791            - c33-pse-admin-control
1792            - c33-pse-avail-pw-limit
1793    -
1794      name: rss-get
1795      doc: Get RSS params.
1796
1797      attribute-set: rss
1798
1799      do:
1800        request:
1801          attributes:
1802            - header
1803            - context
1804        reply: &rss-reply
1805          attributes:
1806            - header
1807            - context
1808            - hfunc
1809            - indir
1810            - hkey
1811            - input_xfrm
1812      dump:
1813        request:
1814          attributes:
1815            - header
1816            - start-context
1817        reply: *rss-reply
1818    -
1819      name: plca-get-cfg
1820      doc: Get PLCA params.
1821
1822      attribute-set: plca
1823
1824      do: &plca-get-op
1825        request:
1826          attributes:
1827            - header
1828        reply:
1829          attributes: &plca
1830            - header
1831            - version
1832            - enabled
1833            - status
1834            - node-cnt
1835            - node-id
1836            - to-tmr
1837            - burst-cnt
1838            - burst-tmr
1839      dump: *plca-get-op
1840    -
1841      name: plca-set-cfg
1842      doc: Set PLCA params.
1843
1844      attribute-set: plca
1845
1846      do:
1847        request:
1848          attributes: *plca
1849    -
1850      name: plca-get-status
1851      doc: Get PLCA status params.
1852
1853      attribute-set: plca
1854
1855      do: &plca-get-status-op
1856        request:
1857          attributes:
1858            - header
1859        reply:
1860          attributes: *plca
1861      dump: *plca-get-status-op
1862    -
1863      name: plca-ntf
1864      doc: Notification for change in PLCA params.
1865      notify: plca-get-cfg
1866    -
1867      name: mm-get
1868      doc: Get MAC Merge configuration and state
1869
1870      attribute-set: mm
1871
1872      do: &mm-get-op
1873        request:
1874          attributes:
1875            - header
1876        reply:
1877          attributes:
1878            - header
1879            - pmac-enabled
1880            - tx-enabled
1881            - tx-active
1882            - tx-min-frag-size
1883            - rx-min-frag-size
1884            - verify-enabled
1885            - verify-time
1886            - max-verify-time
1887            - stats
1888      dump: *mm-get-op
1889    -
1890      name: mm-set
1891      doc: Set MAC Merge configuration
1892
1893      attribute-set: mm
1894
1895      do:
1896        request:
1897          attributes:
1898            - header
1899            - verify-enabled
1900            - verify-time
1901            - tx-enabled
1902            - pmac-enabled
1903            - tx-min-frag-size
1904    -
1905      name: mm-ntf
1906      doc: Notification for change in MAC Merge configuration.
1907      notify: mm-get
1908    -
1909      name: module-fw-flash-act
1910      doc: Flash transceiver module firmware.
1911
1912      attribute-set: module-fw-flash
1913
1914      do:
1915        request:
1916          attributes:
1917            - header
1918            - file-name
1919            - password
1920    -
1921      name: module-fw-flash-ntf
1922      doc: Notification for firmware flashing progress and status.
1923
1924      attribute-set: module-fw-flash
1925
1926      event:
1927        attributes:
1928          - header
1929          - status
1930          - status-msg
1931          - done
1932          - total
1933    -
1934      name: phy-get
1935      doc: Get PHY devices attached to an interface
1936
1937      attribute-set: phy
1938
1939      do: &phy-get-op
1940        request:
1941          attributes:
1942            - header
1943        reply:
1944          attributes:
1945            - header
1946            - index
1947            - drvname
1948            - name
1949            - upstream-type
1950            - upstream-index
1951            - upstream-sfp-name
1952            - downstream-sfp-name
1953      dump: *phy-get-op
1954