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