xref: /linux/Documentation/netlink/specs/ethtool.yaml (revision 7adf0efb41fc386daed9f74b9fe8d7e28f0f6f3d)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2---
3name: ethtool
4
5protocol: genetlink-legacy
6
7doc: Partial family for Ethtool Netlink.
8uapi-header: linux/ethtool_netlink_generated.h
9
10c-family-name: ethtool-genl-name
11c-version-name: ethtool-genl-version
12
13definitions:
14  -
15    name: udp-tunnel-type
16    enum-name:
17    type: enum
18    entries: [vxlan, geneve, vxlan-gpe]
19    enum-cnt-name: __ethtool-udp-tunnel-type-cnt
20    render-max: true
21  -
22    name: stringset
23    type: enum
24    entries: []
25    header: linux/ethtool.h  # skip rendering, no actual definition
26  -
27    name: header-flags
28    type: flags
29    name-prefix: ethtool-flag-
30    doc: common ethtool header flags
31    entries:
32      -
33        name: compact-bitsets
34        doc: use compact bitsets in reply
35      -
36        name: omit-reply
37        doc: provide optional reply for SET or ACT requests
38      -
39        name: stats
40        doc: request statistics, if supported by the driver
41  -
42    name: module-fw-flash-status
43    type: enum
44    doc: plug-in module firmware flashing status
45    header: linux/ethtool.h
46    entries:
47      -
48        name: started
49        doc: The firmware flashing process has started.
50      -
51        name: in-progress
52        doc: The firmware flashing process is in progress.
53      -
54        name: completed
55        doc: The firmware flashing process was completed successfully.
56      -
57        name: error
58        doc: The firmware flashing process was stopped due to an error.
59  -
60    name: c33-pse-ext-state
61    doc: |
62      "groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4
63      Variables"
64    type: enum
65    name-prefix: ethtool-c33-pse-ext-state-
66    header: linux/ethtool.h
67    entries:
68      -
69        name: none
70        doc: none
71      -
72        name: error-condition
73        doc: Group of error_condition states
74      -
75        name: mr-mps-valid
76        doc: Group of mr_mps_valid states
77      -
78        name: mr-pse-enable
79        doc: Group of mr_pse_enable states
80      -
81        name: option-detect-ted
82        doc: Group of option_detect_ted states
83      -
84        name: option-vport-lim
85        doc: Group of option_vport_lim states
86      -
87        name: ovld-detected
88        doc: Group of ovld_detected states
89      -
90        name: power-not-available
91        doc: Group of power_not_available states
92      -
93        name: short-detected
94        doc: Group of short_detected states
95  -
96    name: phy-upstream-type
97    enum-name: phy-upstream
98    header: linux/ethtool.h
99    type: enum
100    name-prefix: phy-upstream
101    entries: [mac, phy]
102  -
103    name: tcp-data-split
104    type: enum
105    entries: [unknown, disabled, enabled]
106  -
107    name: hwtstamp-source
108    doc: Source of the hardware timestamp
109    enum-name: hwtstamp-source
110    name-prefix: hwtstamp-source-
111    type: enum
112    entries:
113      -
114        name: netdev
115        doc: |
116          Hardware timestamp comes from a MAC or a device
117          which has MAC and PHY integrated
118        value: 1
119      -
120        name: phylib
121        doc: |
122          Hardware timestamp comes from one PHY device
123          of the network topology
124  -
125    name: pse-event
126    doc: PSE event list for the PSE controller
127    type: flags
128    name-prefix: ethtool-
129    entries:
130      -
131        name: pse-event-over-current
132        doc: PSE output current is too high
133      -
134        name: pse-event-over-temp
135        doc: PSE in over temperature state
136      -
137        name: c33-pse-event-detection
138        doc: |
139          detection process occur on the PSE. IEEE 802.3-2022 33.2.5 and
140          145.2.6 PSE detection of PDs. IEEE 802.3-202 30.9.1.1.5
141          aPSEPowerDetectionStatus
142      -
143        name: c33-pse-event-classification
144        doc: |
145          classification process occur on the PSE. IEEE 802.3-2022 33.2.6
146          and 145.2.8 classification of PDs mutual identification.
147          IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification.
148      -
149        name: c33-pse-event-disconnection
150        doc: |
151          PD has been disconnected on the PSE. IEEE 802.3-2022 33.3.8
152          and 145.3.9 PD Maintain Power Signature. IEEE 802.3-2022
153          33.5.1.2.9 MPS Absent. IEEE 802.3-2022 30.9.1.1.20
154          aPSEMPSAbsentCounter.
155      -
156        name: pse-event-over-budget
157        doc: PSE turned off due to over budget situation
158      -
159        name: pse-event-sw-pw-control-error
160        doc: PSE faced an error managing the power control from software
161  -
162    name: input-xfrm
163    doc: RSS hash function transformations.
164    type: flags
165    enum-name:
166    name-prefix: rxh-xfrm-
167    header: linux/ethtool.h
168    entries:
169      -
170        name: sym-xor
171        doc: >-
172          XOR the corresponding source and destination fields of each specified
173          protocol. Both copies of the XOR'ed fields are fed into the RSS and
174          RXHASH calculation. Note that this XORing reduces the input set
175          entropy and could be exploited to reduce the RSS queue spread.
176      -
177        name: sym-or-xor
178        doc: >-
179          Similar to SYM_XOR, except that one copy of the XOR'ed fields is
180          replaced by an OR of the same fields.
181  -
182    name: rxfh-fields
183    name-prefix: rxh-
184    enum-name:
185    header: linux/ethtool.h
186    type: flags
187    entries:
188      -
189        name: l2da
190        value: 1
191      -
192        name: vlan
193      -
194        name: l3-proto
195      -
196        name: ip-src
197      -
198        name: ip-dst
199      -
200        name: l4-b-0-1
201        doc: src port in case of TCP/UDP/SCTP
202      -
203        name: l4-b-2-3
204        doc: dst port in case of TCP/UDP/SCTP
205      -
206        name: gtp-teid
207      -
208        name: ip6-fl
209        doc: IPv6 Flow Label
210      -
211        name: discard
212        value: 31
213
214attribute-sets:
215  -
216    name: header
217    attr-cnt-name: __ethtool-a-header-cnt
218    attributes:
219      -
220        name: unspec
221        type: unused
222        value: 0
223      -
224        name: dev-index
225        type: u32
226      -
227        name: dev-name
228        type: string
229      -
230        name: flags
231        type: u32
232        enum: header-flags
233      -
234        name: phy-index
235        type: u32
236
237  -
238    name: bitset-bit
239    attr-cnt-name: __ethtool-a-bitset-bit-cnt
240    attributes:
241      -
242        name: unspec
243        type: unused
244        value: 0
245      -
246        name: index
247        type: u32
248      -
249        name: name
250        type: string
251      -
252        name: value
253        type: flag
254  -
255    name: bitset-bits
256    attr-cnt-name: __ethtool-a-bitset-bits-cnt
257    attributes:
258      -
259        name: unspec
260        type: unused
261        value: 0
262      -
263        name: bit
264        type: nest
265        multi-attr: true
266        nested-attributes: bitset-bit
267  -
268    name: bitset
269    attr-cnt-name: __ethtool-a-bitset-cnt
270    attributes:
271      -
272        name: unspec
273        type: unused
274        value: 0
275      -
276        name: nomask
277        type: flag
278      -
279        name: size
280        type: u32
281      -
282        name: bits
283        type: nest
284        nested-attributes: bitset-bits
285      -
286        name: value
287        type: binary
288      -
289        name: mask
290        type: binary
291  -
292    name: string
293    attr-cnt-name: __ethtool-a-string-cnt
294    attributes:
295      -
296        name: unspec
297        type: unused
298        value: 0
299      -
300        name: index
301        type: u32
302      -
303        name: value
304        type: string
305  -
306    name: strings
307    attr-cnt-name: __ethtool-a-strings-cnt
308    attributes:
309      -
310        name: unspec
311        type: unused
312        value: 0
313      -
314        name: unspec
315        type: unused
316        value: 0
317      -
318        name: string
319        type: nest
320        multi-attr: true
321        nested-attributes: string
322  -
323    name: stringset
324    attr-cnt-name: __ethtool-a-stringset-cnt
325    attributes:
326      -
327        name: unspec
328        type: unused
329        value: 0
330      -
331        name: id
332        type: u32
333      -
334        name: count
335        type: u32
336      -
337        name: strings
338        type: nest
339        multi-attr: true
340        nested-attributes: strings
341  -
342    name: stringsets
343    attr-cnt-name: __ethtool-a-stringsets-cnt
344    attributes:
345      -
346        name: unspec
347        type: unused
348        value: 0
349      -
350        name: stringset
351        type: nest
352        multi-attr: true
353        nested-attributes: stringset
354  -
355    name: strset
356    attr-cnt-name: __ethtool-a-strset-cnt
357    attributes:
358      -
359        name: unspec
360        type: unused
361        value: 0
362      -
363        name: header
364        type: nest
365        nested-attributes: header
366      -
367        name: stringsets
368        type: nest
369        nested-attributes: stringsets
370      -
371        name: counts-only
372        type: flag
373
374  -
375    name: privflags
376    attr-cnt-name: __ethtool-a-privflags-cnt
377    attributes:
378      -
379        name: unspec
380        type: unused
381        value: 0
382      -
383        name: header
384        type: nest
385        nested-attributes: header
386      -
387        name: flags
388        type: nest
389        nested-attributes: bitset
390
391  -
392    name: rings
393    attr-cnt-name: __ethtool-a-rings-cnt
394    attributes:
395      -
396        name: unspec
397        type: unused
398        value: 0
399      -
400        name: header
401        type: nest
402        nested-attributes: header
403      -
404        name: rx-max
405        type: u32
406      -
407        name: rx-mini-max
408        type: u32
409      -
410        name: rx-jumbo-max
411        type: u32
412      -
413        name: tx-max
414        type: u32
415      -
416        name: rx
417        type: u32
418      -
419        name: rx-mini
420        type: u32
421      -
422        name: rx-jumbo
423        type: u32
424      -
425        name: tx
426        type: u32
427      -
428        name: rx-buf-len
429        type: u32
430      -
431        name: tcp-data-split
432        type: u8
433        enum: tcp-data-split
434      -
435        name: cqe-size
436        type: u32
437      -
438        name: tx-push
439        type: u8
440      -
441        name: rx-push
442        type: u8
443      -
444        name: tx-push-buf-len
445        type: u32
446      -
447        name: tx-push-buf-len-max
448        type: u32
449      -
450        name: hds-thresh
451        type: u32
452      -
453        name: hds-thresh-max
454        type: u32
455
456  -
457    name: mm-stat
458    attr-cnt-name: __ethtool-a-mm-stat-cnt
459    doc: MAC Merge (802.3)
460    attributes:
461      -
462        name: unspec
463        type: unused
464        value: 0
465      -
466        name: pad
467        type: pad
468      -
469        name: reassembly-errors
470        doc: aMACMergeFrameAssErrorCount
471        type: u64
472      -
473        name: smd-errors
474        doc: aMACMergeFrameSmdErrorCount
475        type: u64
476      -
477        name: reassembly-ok
478        doc: aMACMergeFrameAssOkCount
479        type: u64
480      -
481        name: rx-frag-count
482        doc: aMACMergeFragCountRx
483        type: u64
484      -
485        name: tx-frag-count
486        doc: aMACMergeFragCountTx
487        type: u64
488      -
489        name: hold-count
490        doc: aMACMergeHoldCount
491        type: u64
492  -
493    name: mm
494    attr-cnt-name: __ethtool-a-mm-cnt
495    attributes:
496      -
497        name: unspec
498        type: unused
499        value: 0
500      -
501        name: header
502        type: nest
503        nested-attributes: header
504      -
505        name: pmac-enabled
506        type: u8
507      -
508        name: tx-enabled
509        type: u8
510      -
511        name: tx-active
512        type: u8
513      -
514        name: tx-min-frag-size
515        type: u32
516      -
517        name: rx-min-frag-size
518        type: u32
519      -
520        name: verify-enabled
521        type: u8
522      -
523        name: verify-status
524        type: u8
525      -
526        name: verify-time
527        type: u32
528      -
529        name: max-verify-time
530        type: u32
531      -
532        name: stats
533        type: nest
534        nested-attributes: mm-stat
535  -
536    name: linkinfo
537    attr-cnt-name: __ethtool-a-linkinfo-cnt
538    attributes:
539      -
540        name: unspec
541        type: unused
542        value: 0
543      -
544        name: header
545        type: nest
546        nested-attributes: header
547      -
548        name: port
549        type: u8
550      -
551        name: phyaddr
552        type: u8
553      -
554        name: tp-mdix
555        type: u8
556      -
557        name: tp-mdix-ctrl
558        type: u8
559      -
560        name: transceiver
561        type: u8
562  -
563    name: linkmodes
564    attr-cnt-name: __ethtool-a-linkmodes-cnt
565    attributes:
566      -
567        name: unspec
568        type: unused
569        value: 0
570      -
571        name: header
572        type: nest
573        nested-attributes: header
574      -
575        name: autoneg
576        type: u8
577      -
578        name: ours
579        type: nest
580        nested-attributes: bitset
581      -
582        name: peer
583        type: nest
584        nested-attributes: bitset
585      -
586        name: speed
587        type: u32
588      -
589        name: duplex
590        type: u8
591      -
592        name: master-slave-cfg
593        type: u8
594      -
595        name: master-slave-state
596        type: u8
597      -
598        name: lanes
599        type: u32
600      -
601        name: rate-matching
602        type: u8
603  -
604    name: linkstate
605    attr-cnt-name: __ethtool-a-linkstate-cnt
606    attributes:
607      -
608        name: unspec
609        type: unused
610        value: 0
611      -
612        name: header
613        type: nest
614        nested-attributes: header
615      -
616        name: link
617        type: u8
618      -
619        name: sqi
620        type: u32
621      -
622        name: sqi-max
623        type: u32
624      -
625        name: ext-state
626        type: u8
627      -
628        name: ext-substate
629        type: u8
630      -
631        name: ext-down-cnt
632        type: u32
633  -
634    name: debug
635    attr-cnt-name: __ethtool-a-debug-cnt
636    attributes:
637      -
638        name: unspec
639        type: unused
640        value: 0
641      -
642        name: header
643        type: nest
644        nested-attributes: header
645      -
646        name: msgmask
647        type: nest
648        nested-attributes: bitset
649  -
650    name: wol
651    attr-cnt-name: __ethtool-a-wol-cnt
652    attributes:
653      -
654        name: unspec
655        type: unused
656        value: 0
657      -
658        name: header
659        type: nest
660        nested-attributes: header
661      -
662        name: modes
663        type: nest
664        nested-attributes: bitset
665      -
666        name: sopass
667        type: binary
668  -
669    name: features
670    attr-cnt-name: __ethtool-a-features-cnt
671    attributes:
672      -
673        name: unspec
674        type: unused
675        value: 0
676      -
677        name: header
678        type: nest
679        nested-attributes: header
680      -
681        name: hw
682        type: nest
683        nested-attributes: bitset
684      -
685        name: wanted
686        type: nest
687        nested-attributes: bitset
688      -
689        name: active
690        type: nest
691        nested-attributes: bitset
692      -
693        name: nochange
694        type: nest
695        nested-attributes: bitset
696  -
697    name: channels
698    attr-cnt-name: __ethtool-a-channels-cnt
699    attributes:
700      -
701        name: unspec
702        type: unused
703        value: 0
704      -
705        name: header
706        type: nest
707        nested-attributes: header
708      -
709        name: rx-max
710        type: u32
711      -
712        name: tx-max
713        type: u32
714      -
715        name: other-max
716        type: u32
717      -
718        name: combined-max
719        type: u32
720      -
721        name: rx-count
722        type: u32
723      -
724        name: tx-count
725        type: u32
726      -
727        name: other-count
728        type: u32
729      -
730        name: combined-count
731        type: u32
732
733  -
734    name: irq-moderation
735    attr-cnt-name: __ethtool-a-irq-moderation-cnt
736    attributes:
737      -
738        name: unspec
739        type: unused
740        value: 0
741      -
742        name: usec
743        type: u32
744      -
745        name: pkts
746        type: u32
747      -
748        name: comps
749        type: u32
750  -
751    name: profile
752    attr-cnt-name: __ethtool-a-profile-cnt
753    attributes:
754      -
755        name: unspec
756        type: unused
757        value: 0
758      -
759        name: irq-moderation
760        type: nest
761        multi-attr: true
762        nested-attributes: irq-moderation
763  -
764    name: coalesce
765    attr-cnt-name: __ethtool-a-coalesce-cnt
766    attributes:
767      -
768        name: unspec
769        type: unused
770        value: 0
771      -
772        name: header
773        type: nest
774        nested-attributes: header
775      -
776        name: rx-usecs
777        type: u32
778      -
779        name: rx-max-frames
780        type: u32
781      -
782        name: rx-usecs-irq
783        type: u32
784      -
785        name: rx-max-frames-irq
786        type: u32
787      -
788        name: tx-usecs
789        type: u32
790      -
791        name: tx-max-frames
792        type: u32
793      -
794        name: tx-usecs-irq
795        type: u32
796      -
797        name: tx-max-frames-irq
798        type: u32
799      -
800        name: stats-block-usecs
801        type: u32
802      -
803        name: use-adaptive-rx
804        type: u8
805      -
806        name: use-adaptive-tx
807        type: u8
808      -
809        name: pkt-rate-low
810        type: u32
811      -
812        name: rx-usecs-low
813        type: u32
814      -
815        name: rx-max-frames-low
816        type: u32
817      -
818        name: tx-usecs-low
819        type: u32
820      -
821        name: tx-max-frames-low
822        type: u32
823      -
824        name: pkt-rate-high
825        type: u32
826      -
827        name: rx-usecs-high
828        type: u32
829      -
830        name: rx-max-frames-high
831        type: u32
832      -
833        name: tx-usecs-high
834        type: u32
835      -
836        name: tx-max-frames-high
837        type: u32
838      -
839        name: rate-sample-interval
840        type: u32
841      -
842        name: use-cqe-mode-tx
843        type: u8
844      -
845        name: use-cqe-mode-rx
846        type: u8
847      -
848        name: tx-aggr-max-bytes
849        type: u32
850      -
851        name: tx-aggr-max-frames
852        type: u32
853      -
854        name: tx-aggr-time-usecs
855        type: u32
856      -
857        name: rx-profile
858        type: nest
859        nested-attributes: profile
860      -
861        name: tx-profile
862        type: nest
863        nested-attributes: profile
864
865  -
866    name: pause-stat
867    attr-cnt-name: __ethtool-a-pause-stat-cnt
868    attributes:
869      -
870        name: unspec
871        type: unused
872        value: 0
873      -
874        name: pad
875        type: pad
876      -
877        name: tx-frames
878        type: u64
879      -
880        name: rx-frames
881        type: u64
882  -
883    name: pause
884    attr-cnt-name: __ethtool-a-pause-cnt
885    attributes:
886      -
887        name: unspec
888        type: unused
889        value: 0
890      -
891        name: header
892        type: nest
893        nested-attributes: header
894      -
895        name: autoneg
896        type: u8
897      -
898        name: rx
899        type: u8
900      -
901        name: tx
902        type: u8
903      -
904        name: stats
905        type: nest
906        nested-attributes: pause-stat
907      -
908        name: stats-src
909        type: u32
910  -
911    name: eee
912    attr-cnt-name: __ethtool-a-eee-cnt
913    attributes:
914      -
915        name: unspec
916        type: unused
917        value: 0
918      -
919        name: header
920        type: nest
921        nested-attributes: header
922      -
923        name: modes-ours
924        type: nest
925        nested-attributes: bitset
926      -
927        name: modes-peer
928        type: nest
929        nested-attributes: bitset
930      -
931        name: active
932        type: u8
933      -
934        name: enabled
935        type: u8
936      -
937        name: tx-lpi-enabled
938        type: u8
939      -
940        name: tx-lpi-timer
941        type: u32
942  -
943    name: ts-stat
944    attr-cnt-name: __ethtool-a-ts-stat-cnt
945    attributes:
946      -
947        name: unspec
948        type: unused
949        value: 0
950      -
951        name: tx-pkts
952        type: uint
953      -
954        name: tx-lost
955        type: uint
956      -
957        name: tx-err
958        type: uint
959      -
960        name: tx-onestep-pkts-unconfirmed
961        type: uint
962  -
963    name: ts-hwtstamp-provider
964    attr-cnt-name: __ethtool-a-ts-hwtstamp-provider-cnt
965    attributes:
966      -
967        name: unspec
968        type: unused
969        value: 0
970      -
971        name: index
972        type: u32
973      -
974        name: qualifier
975        type: u32
976  -
977    name: tsinfo
978    attr-cnt-name: __ethtool-a-tsinfo-cnt
979    attributes:
980      -
981        name: unspec
982        type: unused
983        value: 0
984      -
985        name: header
986        type: nest
987        nested-attributes: header
988      -
989        name: timestamping
990        type: nest
991        nested-attributes: bitset
992      -
993        name: tx-types
994        type: nest
995        nested-attributes: bitset
996      -
997        name: rx-filters
998        type: nest
999        nested-attributes: bitset
1000      -
1001        name: phc-index
1002        type: u32
1003      -
1004        name: stats
1005        type: nest
1006        nested-attributes: ts-stat
1007      -
1008        name: hwtstamp-provider
1009        type: nest
1010        nested-attributes: ts-hwtstamp-provider
1011      -
1012        name: hwtstamp-source
1013        type: u32
1014        enum: hwtstamp-source
1015      -
1016        name: hwtstamp-phyindex
1017        type: u32
1018  -
1019    name: cable-result
1020    attr-cnt-name: __ethtool-a-cable-result-cnt
1021    attributes:
1022      -
1023        name: unspec
1024        type: unused
1025        value: 0
1026      -
1027        name: pair
1028        doc: ETHTOOL_A_CABLE_PAIR
1029        type: u8
1030      -
1031        name: code
1032        doc: ETHTOOL_A_CABLE_RESULT_CODE
1033        type: u8
1034      -
1035        name: src
1036        doc: ETHTOOL_A_CABLE_INF_SRC
1037        type: u32
1038  -
1039    name: cable-fault-length
1040    attr-cnt-name: __ethtool-a-cable-fault-length-cnt
1041    attributes:
1042      -
1043        name: unspec
1044        type: unused
1045        value: 0
1046      -
1047        name: pair
1048        type: u8
1049      -
1050        name: cm
1051        type: u32
1052      -
1053        name: src
1054        type: u32
1055  -
1056    name: cable-nest
1057    attr-cnt-name: __ethtool-a-cable-nest-cnt
1058    attributes:
1059      -
1060        name: unspec
1061        type: unused
1062        value: 0
1063      -
1064        name: result
1065        type: nest
1066        nested-attributes: cable-result
1067      -
1068        name: fault-length
1069        type: nest
1070        nested-attributes: cable-fault-length
1071  -
1072    name: cable-test
1073    attr-cnt-name: __ethtool-a-cable-test-cnt
1074    attributes:
1075      -
1076        name: unspec
1077        type: unused
1078        value: 0
1079      -
1080        name: header
1081        type: nest
1082        nested-attributes: header
1083  -
1084    name: cable-test-ntf
1085    attr-cnt-name: __ethtool-a-cable-test-ntf-cnt
1086    attributes:
1087      -
1088        name: unspec
1089        type: unused
1090        value: 0
1091      -
1092        name: header
1093        type: nest
1094        nested-attributes: header
1095      -
1096        name: status
1097        doc: _STARTED/_COMPLETE
1098        type: u8
1099      -
1100        name: nest
1101        type: nest
1102        nested-attributes: cable-nest
1103  -
1104    name: cable-test-tdr-cfg
1105    attr-cnt-name: __ethtool-a-cable-test-tdr-cfg-cnt
1106    attributes:
1107      -
1108        name: unspec
1109        type: unused
1110        value: 0
1111      -
1112        name: first
1113        type: u32
1114      -
1115        name: last
1116        type: u32
1117      -
1118        name: step
1119        type: u32
1120      -
1121        name: pair
1122        type: u8
1123  -
1124    name: cable-test-tdr-ntf
1125    attr-cnt-name: __ethtool-a-cable-test-tdr-ntf-cnt
1126    attributes:
1127      -
1128        name: unspec
1129        type: unused
1130        value: 0
1131      -
1132        name: header
1133        type: nest
1134        nested-attributes: header
1135      -
1136        name: status
1137        type: u8
1138      -
1139        name: nest
1140        type: nest
1141        nested-attributes: cable-nest
1142  -
1143    name: cable-test-tdr
1144    attr-cnt-name: __ethtool-a-cable-test-tdr-cnt
1145    attributes:
1146      -
1147        name: unspec
1148        type: unused
1149        value: 0
1150      -
1151        name: header
1152        type: nest
1153        nested-attributes: header
1154      -
1155        name: cfg
1156        type: nest
1157        nested-attributes: cable-test-tdr-cfg
1158  -
1159    name: tunnel-udp-entry
1160    attr-cnt-name: __ethtool-a-tunnel-udp-entry-cnt
1161    attributes:
1162      -
1163        name: unspec
1164        type: unused
1165        value: 0
1166      -
1167        name: port
1168        type: u16
1169        byte-order: big-endian
1170      -
1171        name: type
1172        type: u32
1173        enum: udp-tunnel-type
1174  -
1175    name: tunnel-udp-table
1176    attr-cnt-name: __ethtool-a-tunnel-udp-table-cnt
1177    attributes:
1178      -
1179        name: unspec
1180        type: unused
1181        value: 0
1182      -
1183        name: size
1184        type: u32
1185      -
1186        name: types
1187        type: nest
1188        nested-attributes: bitset
1189      -
1190        name: entry
1191        type: nest
1192        multi-attr: true
1193        nested-attributes: tunnel-udp-entry
1194  -
1195    name: tunnel-udp
1196    attr-cnt-name: __ethtool-a-tunnel-udp-cnt
1197    attributes:
1198      -
1199        name: unspec
1200        type: unused
1201        value: 0
1202      -
1203        name: table
1204        type: nest
1205        nested-attributes: tunnel-udp-table
1206  -
1207    name: tunnel-info
1208    attr-cnt-name: __ethtool-a-tunnel-info-cnt
1209    attributes:
1210      -
1211        name: unspec
1212        type: unused
1213        value: 0
1214      -
1215        name: header
1216        type: nest
1217        nested-attributes: header
1218      -
1219        name: udp-ports
1220        type: nest
1221        nested-attributes: tunnel-udp
1222  -
1223    name: fec-hist
1224    attr-cnt-name: --ethtool-a-fec-hist-cnt
1225    attributes:
1226      -
1227        name: pad
1228        type: pad
1229      -
1230        name: bin-low
1231        type: u32
1232        doc: Low bound of FEC bin (inclusive)
1233      -
1234        name: bin-high
1235        type: u32
1236        doc: High bound of FEC bin (inclusive)
1237      -
1238        name: bin-val
1239        type: uint
1240        doc: Error count in the bin (optional if per-lane values exist)
1241      -
1242        name: bin-val-per-lane
1243        type: binary
1244        sub-type: u64
1245        doc: An array of per-lane error counters in the bin (optional)
1246  -
1247    name: fec-stat
1248    attr-cnt-name: __ethtool-a-fec-stat-cnt
1249    attributes:
1250      -
1251        name: unspec
1252        type: unused
1253        value: 0
1254      -
1255        name: pad
1256        type: pad
1257      -
1258        name: corrected
1259        type: binary
1260        sub-type: u64
1261      -
1262        name: uncorr
1263        type: binary
1264        sub-type: u64
1265      -
1266        name: corr-bits
1267        type: binary
1268        sub-type: u64
1269      -
1270        name: hist
1271        type: nest
1272        multi-attr: true
1273        nested-attributes: fec-hist
1274  -
1275    name: fec
1276    attr-cnt-name: __ethtool-a-fec-cnt
1277    attributes:
1278      -
1279        name: unspec
1280        type: unused
1281        value: 0
1282      -
1283        name: header
1284        type: nest
1285        nested-attributes: header
1286      -
1287        name: modes
1288        type: nest
1289        nested-attributes: bitset
1290      -
1291        name: auto
1292        type: u8
1293      -
1294        name: active
1295        type: u32
1296      -
1297        name: stats
1298        type: nest
1299        nested-attributes: fec-stat
1300  -
1301    name: module-eeprom
1302    attr-cnt-name: __ethtool-a-module-eeprom-cnt
1303    attributes:
1304      -
1305        name: unspec
1306        type: unused
1307        value: 0
1308      -
1309        name: header
1310        type: nest
1311        nested-attributes: header
1312      -
1313        name: offset
1314        type: u32
1315      -
1316        name: length
1317        type: u32
1318      -
1319        name: page
1320        type: u8
1321      -
1322        name: bank
1323        type: u8
1324      -
1325        name: i2c-address
1326        type: u8
1327      -
1328        name: data
1329        type: binary
1330  -
1331    name: stats-grp
1332    attr-cnt-name: __ethtool-a-stats-grp-cnt
1333    attributes:
1334      -
1335        name: unspec
1336        type: unused
1337        value: 0
1338      -
1339        name: pad
1340        type: pad
1341      -
1342        name: id
1343        type: u32
1344      -
1345        name: ss-id
1346        type: u32
1347      -
1348        name: stat
1349        type: u64
1350        type-value: [id]
1351      -
1352        name: hist-rx
1353        type: nest
1354        nested-attributes: stats-grp-hist
1355      -
1356        name: hist-tx
1357        type: nest
1358        nested-attributes: stats-grp-hist
1359      -
1360        name: hist-bkt-low
1361        type: u32
1362      -
1363        name: hist-bkt-hi
1364        type: u32
1365      -
1366        name: hist-val
1367        type: u64
1368  -
1369    name: stats-grp-hist
1370    subset-of: stats-grp
1371    attributes:
1372      -
1373        name: hist-bkt-low
1374      -
1375        name: hist-bkt-hi
1376      -
1377        name: hist-val
1378  -
1379    name: stats
1380    attr-cnt-name: __ethtool-a-stats-cnt
1381    attributes:
1382      -
1383        name: unspec
1384        type: unused
1385        value: 0
1386      -
1387        name: pad
1388        type: pad
1389      -
1390        name: header
1391        type: nest
1392        nested-attributes: header
1393      -
1394        name: groups
1395        type: nest
1396        nested-attributes: bitset
1397      -
1398        name: grp
1399        type: nest
1400        nested-attributes: stats-grp
1401      -
1402        name: src
1403        type: u32
1404  -
1405    name: phc-vclocks
1406    attr-cnt-name: __ethtool-a-phc-vclocks-cnt
1407    attributes:
1408      -
1409        name: unspec
1410        type: unused
1411        value: 0
1412      -
1413        name: header
1414        type: nest
1415        nested-attributes: header
1416      -
1417        name: num
1418        type: u32
1419      -
1420        name: index
1421        type: binary
1422        sub-type: s32
1423  -
1424    name: module
1425    attr-cnt-name: __ethtool-a-module-cnt
1426    attributes:
1427      -
1428        name: unspec
1429        type: unused
1430        value: 0
1431      -
1432        name: header
1433        type: nest
1434        nested-attributes: header
1435      -
1436        name: power-mode-policy
1437        type: u8
1438      -
1439        name: power-mode
1440        type: u8
1441  -
1442    name: c33-pse-pw-limit
1443    attr-cnt-name: __ethtool-a-c33-pse-pw-limit-cnt
1444    attr-max-name: __ethtool-a-c33-pse-pw-limit-max
1445    attributes:
1446      -
1447        name: unspec
1448        type: unused
1449        value: 0
1450      -
1451        name: min
1452        type: u32
1453      -
1454        name: max
1455        type: u32
1456  -
1457    name: pse
1458    attr-cnt-name: __ethtool-a-pse-cnt
1459    attributes:
1460      -
1461        name: unspec
1462        type: unused
1463        value: 0
1464      -
1465        name: header
1466        type: nest
1467        nested-attributes: header
1468      -
1469        name: podl-pse-admin-state
1470        type: u32
1471        name-prefix: ethtool-a-
1472      -
1473        name: podl-pse-admin-control
1474        type: u32
1475        name-prefix: ethtool-a-
1476      -
1477        name: podl-pse-pw-d-status
1478        type: u32
1479        name-prefix: ethtool-a-
1480      -
1481        name: c33-pse-admin-state
1482        type: u32
1483        name-prefix: ethtool-a-
1484      -
1485        name: c33-pse-admin-control
1486        type: u32
1487        name-prefix: ethtool-a-
1488      -
1489        name: c33-pse-pw-d-status
1490        type: u32
1491        name-prefix: ethtool-a-
1492      -
1493        name: c33-pse-pw-class
1494        type: u32
1495        name-prefix: ethtool-a-
1496      -
1497        name: c33-pse-actual-pw
1498        type: u32
1499        name-prefix: ethtool-a-
1500      -
1501        name: c33-pse-ext-state
1502        type: u32
1503        name-prefix: ethtool-a-
1504        enum: c33-pse-ext-state
1505      -
1506        name: c33-pse-ext-substate
1507        type: u32
1508        name-prefix: ethtool-a-
1509      -
1510        name: c33-pse-avail-pw-limit
1511        type: u32
1512        name-prefix: ethtool-a-
1513      -
1514        name: c33-pse-pw-limit-ranges
1515        name-prefix: ethtool-a-
1516        type: nest
1517        multi-attr: true
1518        nested-attributes: c33-pse-pw-limit
1519      -
1520        name: pse-pw-d-id
1521        type: u32
1522        name-prefix: ethtool-a-
1523      -
1524        name: pse-prio-max
1525        type: u32
1526        name-prefix: ethtool-a-
1527      -
1528        name: pse-prio
1529        type: u32
1530        name-prefix: ethtool-a-
1531  -
1532    name: flow
1533    attr-cnt-name: --ethtool-a-flow-cnt
1534    doc: |
1535      Flow types, corresponding to those defined in the old
1536      ethtool header for RXFH and RXNFC as ${PROTO}_FLOW.
1537      The values are not matching the old ones to avoid carrying
1538      into Netlink the IP_USER_FLOW vs IPV4_FLOW vs IPV4_USER_FLOW confusion.
1539    attributes:
1540      -
1541        name: ether
1542        type: uint
1543        enum: rxfh-fields
1544      -
1545        name: ip4
1546        type: uint
1547        enum: rxfh-fields
1548      -
1549        name: ip6
1550        type: uint
1551        enum: rxfh-fields
1552      -
1553        name: tcp4
1554        type: uint
1555        enum: rxfh-fields
1556      -
1557        name: tcp6
1558        type: uint
1559        enum: rxfh-fields
1560      -
1561        name: udp4
1562        type: uint
1563        enum: rxfh-fields
1564      -
1565        name: udp6
1566        type: uint
1567        enum: rxfh-fields
1568      -
1569        name: sctp4
1570        type: uint
1571        enum: rxfh-fields
1572      -
1573        name: sctp6
1574        type: uint
1575        enum: rxfh-fields
1576      -
1577        name: ah4
1578        type: uint
1579        enum: rxfh-fields
1580      -
1581        name: ah6
1582        type: uint
1583        enum: rxfh-fields
1584      -
1585        name: esp4
1586        type: uint
1587        enum: rxfh-fields
1588      -
1589        name: esp6
1590        type: uint
1591        enum: rxfh-fields
1592      -
1593        name: ah-esp4
1594        type: uint
1595        enum: rxfh-fields
1596      -
1597        name: ah-esp6
1598        type: uint
1599        enum: rxfh-fields
1600      -
1601        name: gtpu4
1602        type: uint
1603        enum: rxfh-fields
1604      -
1605        name: gtpu6
1606        type: uint
1607        enum: rxfh-fields
1608      -
1609        name: gtpc4
1610        type: uint
1611        enum: rxfh-fields
1612      -
1613        name: gtpc6
1614        type: uint
1615        enum: rxfh-fields
1616      -
1617        name: gtpc-teid4
1618        type: uint
1619        enum: rxfh-fields
1620      -
1621        name: gtpc-teid6
1622        type: uint
1623        enum: rxfh-fields
1624      -
1625        name: gtpu-eh4
1626        type: uint
1627        enum: rxfh-fields
1628      -
1629        name: gtpu-eh6
1630        type: uint
1631        enum: rxfh-fields
1632      -
1633        name: gtpu-ul4
1634        type: uint
1635        enum: rxfh-fields
1636      -
1637        name: gtpu-ul6
1638        type: uint
1639        enum: rxfh-fields
1640      -
1641        name: gtpu-dl4
1642        type: uint
1643        enum: rxfh-fields
1644      -
1645        name: gtpu-dl6
1646        type: uint
1647        enum: rxfh-fields
1648  -
1649    name: rss
1650    attr-cnt-name: __ethtool-a-rss-cnt
1651    attributes:
1652      -
1653        name: unspec
1654        type: unused
1655        value: 0
1656      -
1657        name: header
1658        type: nest
1659        nested-attributes: header
1660      -
1661        name: context
1662        type: u32
1663      -
1664        name: hfunc
1665        type: u32
1666      -
1667        name: indir
1668        type: binary
1669        sub-type: u32
1670      -
1671        name: hkey
1672        type: binary
1673      -
1674        name: input-xfrm
1675        type: u32
1676        enum: input-xfrm
1677      -
1678        name: start-context
1679        type: u32
1680      -
1681        name: flow-hash
1682        type: nest
1683        nested-attributes: flow
1684  -
1685    name: plca
1686    attr-cnt-name: __ethtool-a-plca-cnt
1687    attributes:
1688      -
1689        name: unspec
1690        type: unused
1691        value: 0
1692      -
1693        name: header
1694        type: nest
1695        nested-attributes: header
1696      -
1697        name: version
1698        type: u16
1699      -
1700        name: enabled
1701        type: u8
1702      -
1703        name: status
1704        type: u8
1705      -
1706        name: node-cnt
1707        type: u32
1708      -
1709        name: node-id
1710        type: u32
1711      -
1712        name: to-tmr
1713        type: u32
1714      -
1715        name: burst-cnt
1716        type: u32
1717      -
1718        name: burst-tmr
1719        type: u32
1720  -
1721    name: module-fw-flash
1722    attr-cnt-name: __ethtool-a-module-fw-flash-cnt
1723    attributes:
1724      -
1725        name: unspec
1726        type: unused
1727        value: 0
1728      -
1729        name: header
1730        type: nest
1731        nested-attributes: header
1732      -
1733        name: file-name
1734        type: string
1735      -
1736        name: password
1737        type: u32
1738      -
1739        name: status
1740        type: u32
1741        enum: module-fw-flash-status
1742      -
1743        name: status-msg
1744        type: string
1745      -
1746        name: done
1747        type: uint
1748      -
1749        name: total
1750        type: uint
1751  -
1752    name: phy
1753    attr-cnt-name: __ethtool-a-phy-cnt
1754    attributes:
1755      -
1756        name: unspec
1757        type: unused
1758        value: 0
1759      -
1760        name: header
1761        type: nest
1762        nested-attributes: header
1763      -
1764        name: index
1765        type: u32
1766      -
1767        name: drvname
1768        type: string
1769      -
1770        name: name
1771        type: string
1772      -
1773        name: upstream-type
1774        type: u32
1775        enum: phy-upstream-type
1776      -
1777        name: upstream-index
1778        type: u32
1779      -
1780        name: upstream-sfp-name
1781        type: string
1782      -
1783        name: downstream-sfp-name
1784        type: string
1785  -
1786    name: tsconfig
1787    attr-cnt-name: __ethtool-a-tsconfig-cnt
1788    attributes:
1789      -
1790        name: unspec
1791        type: unused
1792        value: 0
1793      -
1794        name: header
1795        type: nest
1796        nested-attributes: header
1797      -
1798        name: hwtstamp-provider
1799        type: nest
1800        nested-attributes: ts-hwtstamp-provider
1801      -
1802        name: tx-types
1803        type: nest
1804        nested-attributes: bitset
1805      -
1806        name: rx-filters
1807        type: nest
1808        nested-attributes: bitset
1809      -
1810        name: hwtstamp-flags
1811        type: nest
1812        nested-attributes: bitset
1813  -
1814    name: pse-ntf
1815    attr-cnt-name: --ethtool-a-pse-ntf-cnt
1816    attributes:
1817      -
1818        name: header
1819        type: nest
1820        nested-attributes: header
1821      -
1822        name: events
1823        type: uint
1824        enum: pse-event
1825        doc: List of events reported by the PSE controller
1826  -
1827    name: mse-capabilities
1828    doc: MSE capabilities attribute set
1829    attr-cnt-name: --ethtool-a-mse-capabilities-cnt
1830    attributes:
1831      -
1832        name: max-average-mse
1833        type: uint
1834      -
1835        name: max-peak-mse
1836        type: uint
1837      -
1838        name: refresh-rate-ps
1839        type: uint
1840      -
1841        name: num-symbols
1842        type: uint
1843  -
1844    name: mse-snapshot
1845    doc: MSE snapshot attribute set
1846    attr-cnt-name: --ethtool-a-mse-snapshot-cnt
1847    attributes:
1848      -
1849        name: average-mse
1850        type: uint
1851      -
1852        name: peak-mse
1853        type: uint
1854      -
1855        name: worst-peak-mse
1856        type: uint
1857  -
1858    name: mse
1859    attr-cnt-name: --ethtool-a-mse-cnt
1860    attributes:
1861      -
1862        name: header
1863        type: nest
1864        nested-attributes: header
1865      -
1866        name: capabilities
1867        type: nest
1868        nested-attributes: mse-capabilities
1869      -
1870        name: channel-a
1871        type: nest
1872        nested-attributes: mse-snapshot
1873      -
1874        name: channel-b
1875        type: nest
1876        nested-attributes: mse-snapshot
1877      -
1878        name: channel-c
1879        type: nest
1880        nested-attributes: mse-snapshot
1881      -
1882        name: channel-d
1883        type: nest
1884        nested-attributes: mse-snapshot
1885      -
1886        name: worst-channel
1887        type: nest
1888        nested-attributes: mse-snapshot
1889      -
1890        name: link
1891        type: nest
1892        nested-attributes: mse-snapshot
1893
1894operations:
1895  enum-model: directional
1896  name-prefix: ethtool-msg-
1897  list:
1898    -
1899      name: strset-get
1900      doc: Get string set from the kernel.
1901
1902      attribute-set: strset
1903
1904      do: &strset-get-op
1905        request:
1906          attributes:
1907            - header
1908            - stringsets
1909            - counts-only
1910        reply:
1911          attributes:
1912            - header
1913            - stringsets
1914      dump: *strset-get-op
1915    -
1916      name: linkinfo-get
1917      doc: Get link info.
1918
1919      attribute-set: linkinfo
1920
1921      do: &linkinfo-get-op
1922        request:
1923          attributes:
1924            - header
1925        reply:
1926          attributes: &linkinfo
1927            - header
1928            - port
1929            - phyaddr
1930            - tp-mdix
1931            - tp-mdix-ctrl
1932            - transceiver
1933      dump: *linkinfo-get-op
1934    -
1935      name: linkinfo-set
1936      doc: Set link info.
1937
1938      attribute-set: linkinfo
1939
1940      do:
1941        request:
1942          attributes: *linkinfo
1943    -
1944      name: linkinfo-ntf
1945      doc: Notification for change in link info.
1946      notify: linkinfo-get
1947    -
1948      name: linkmodes-get
1949      doc: Get link modes.
1950
1951      attribute-set: linkmodes
1952
1953      do: &linkmodes-get-op
1954        request:
1955          attributes:
1956            - header
1957        reply:
1958          attributes: &linkmodes
1959            - header
1960            - autoneg
1961            - ours
1962            - peer
1963            - speed
1964            - duplex
1965            - master-slave-cfg
1966            - master-slave-state
1967            - lanes
1968            - rate-matching
1969      dump: *linkmodes-get-op
1970    -
1971      name: linkmodes-set
1972      doc: Set link modes.
1973
1974      attribute-set: linkmodes
1975
1976      do:
1977        request:
1978          attributes: *linkmodes
1979    -
1980      name: linkmodes-ntf
1981      doc: Notification for change in link modes.
1982      notify: linkmodes-get
1983    -
1984      name: linkstate-get
1985      doc: Get link state.
1986
1987      attribute-set: linkstate
1988
1989      do: &linkstate-get-op
1990        request:
1991          attributes:
1992            - header
1993        reply:
1994          attributes:
1995            - header
1996            - link
1997            - sqi
1998            - sqi-max
1999            - ext-state
2000            - ext-substate
2001            - ext-down-cnt
2002      dump: *linkstate-get-op
2003    -
2004      name: debug-get
2005      doc: Get debug message mask.
2006
2007      attribute-set: debug
2008
2009      do: &debug-get-op
2010        request:
2011          attributes:
2012            - header
2013        reply:
2014          attributes: &debug
2015            - header
2016            - msgmask
2017      dump: *debug-get-op
2018    -
2019      name: debug-set
2020      doc: Set debug message mask.
2021
2022      attribute-set: debug
2023
2024      do:
2025        request:
2026          attributes: *debug
2027    -
2028      name: debug-ntf
2029      doc: Notification for change in debug message mask.
2030      notify: debug-get
2031    -
2032      name: wol-get
2033      doc: Get WOL params.
2034
2035      attribute-set: wol
2036
2037      do: &wol-get-op
2038        request:
2039          attributes:
2040            - header
2041        reply:
2042          attributes: &wol
2043            - header
2044            - modes
2045            - sopass
2046      dump: *wol-get-op
2047    -
2048      name: wol-set
2049      doc: Set WOL params.
2050
2051      attribute-set: wol
2052
2053      do:
2054        request:
2055          attributes: *wol
2056    -
2057      name: wol-ntf
2058      doc: Notification for change in WOL params.
2059      notify: wol-get
2060    -
2061      name: features-get
2062      doc: Get features.
2063
2064      attribute-set: features
2065
2066      do: &feature-get-op
2067        request:
2068          attributes:
2069            - header
2070        reply:
2071          attributes: &feature
2072            - header
2073            # User-changeable features.
2074            - hw
2075            # User-requested features.
2076            - wanted
2077            # Currently active features.
2078            - active
2079            # Unchangeable features.
2080            - nochange
2081      dump: *feature-get-op
2082    -
2083      name: features-set
2084      doc: Set features.
2085
2086      attribute-set: features
2087
2088      do: &feature-set-op
2089        request:
2090          attributes: *feature
2091        reply:
2092          attributes: *feature
2093    -
2094      name: features-ntf
2095      doc: Notification for change in features.
2096      notify: features-get
2097    -
2098      name: privflags-get
2099      doc: Get device private flags.
2100
2101      attribute-set: privflags
2102
2103      do: &privflag-get-op
2104        request:
2105          attributes:
2106            - header
2107        reply:
2108          attributes: &privflag
2109            - header
2110            - flags
2111      dump: *privflag-get-op
2112    -
2113      name: privflags-set
2114      doc: Set device private flags.
2115
2116      attribute-set: privflags
2117
2118      do:
2119        request:
2120          attributes: *privflag
2121    -
2122      name: privflags-ntf
2123      doc: Notification for change in device private flags.
2124      notify: privflags-get
2125
2126    -
2127      name: rings-get
2128      doc: Get ring params.
2129
2130      attribute-set: rings
2131
2132      do: &ring-get-op
2133        request:
2134          attributes:
2135            - header
2136        reply:
2137          attributes: &ring
2138            - header
2139            - rx-max
2140            - rx-mini-max
2141            - rx-jumbo-max
2142            - tx-max
2143            - rx
2144            - rx-mini
2145            - rx-jumbo
2146            - tx
2147            - rx-buf-len
2148            - tcp-data-split
2149            - cqe-size
2150            - tx-push
2151            - rx-push
2152            - tx-push-buf-len
2153            - tx-push-buf-len-max
2154            - hds-thresh
2155            - hds-thresh-max
2156      dump: *ring-get-op
2157    -
2158      name: rings-set
2159      doc: Set ring params.
2160
2161      attribute-set: rings
2162
2163      do:
2164        request:
2165          attributes: *ring
2166    -
2167      name: rings-ntf
2168      doc: Notification for change in ring params.
2169      notify: rings-get
2170    -
2171      name: channels-get
2172      doc: Get channel params.
2173
2174      attribute-set: channels
2175
2176      do: &channel-get-op
2177        request:
2178          attributes:
2179            - header
2180        reply:
2181          attributes: &channel
2182            - header
2183            - rx-max
2184            - tx-max
2185            - other-max
2186            - combined-max
2187            - rx-count
2188            - tx-count
2189            - other-count
2190            - combined-count
2191      dump: *channel-get-op
2192    -
2193      name: channels-set
2194      doc: Set channel params.
2195
2196      attribute-set: channels
2197
2198      do:
2199        request:
2200          attributes: *channel
2201    -
2202      name: channels-ntf
2203      doc: Notification for change in channel params.
2204      notify: channels-get
2205    -
2206      name: coalesce-get
2207      doc: Get coalesce params.
2208
2209      attribute-set: coalesce
2210
2211      do: &coalesce-get-op
2212        request:
2213          attributes:
2214            - header
2215        reply:
2216          attributes: &coalesce
2217            - header
2218            - rx-usecs
2219            - rx-max-frames
2220            - rx-usecs-irq
2221            - rx-max-frames-irq
2222            - tx-usecs
2223            - tx-max-frames
2224            - tx-usecs-irq
2225            - tx-max-frames-irq
2226            - stats-block-usecs
2227            - use-adaptive-rx
2228            - use-adaptive-tx
2229            - pkt-rate-low
2230            - rx-usecs-low
2231            - rx-max-frames-low
2232            - tx-usecs-low
2233            - tx-max-frames-low
2234            - pkt-rate-high
2235            - rx-usecs-high
2236            - rx-max-frames-high
2237            - tx-usecs-high
2238            - tx-max-frames-high
2239            - rate-sample-interval
2240            - use-cqe-mode-tx
2241            - use-cqe-mode-rx
2242            - tx-aggr-max-bytes
2243            - tx-aggr-max-frames
2244            - tx-aggr-time-usecs
2245            - rx-profile
2246            - tx-profile
2247      dump: *coalesce-get-op
2248    -
2249      name: coalesce-set
2250      doc: Set coalesce params.
2251
2252      attribute-set: coalesce
2253
2254      do:
2255        request:
2256          attributes: *coalesce
2257    -
2258      name: coalesce-ntf
2259      doc: Notification for change in coalesce params.
2260      notify: coalesce-get
2261    -
2262      name: pause-get
2263      doc: Get pause params.
2264
2265      attribute-set: pause
2266
2267      do: &pause-get-op
2268        request:
2269          attributes:
2270            - header
2271        reply:
2272          attributes: &pause
2273            - header
2274            - autoneg
2275            - rx
2276            - tx
2277            - stats
2278            - stats-src
2279      dump: *pause-get-op
2280    -
2281      name: pause-set
2282      doc: Set pause params.
2283
2284      attribute-set: pause
2285
2286      do:
2287        request:
2288          attributes: *pause
2289    -
2290      name: pause-ntf
2291      doc: Notification for change in pause params.
2292      notify: pause-get
2293    -
2294      name: eee-get
2295      doc: Get eee params.
2296
2297      attribute-set: eee
2298
2299      do: &eee-get-op
2300        request:
2301          attributes:
2302            - header
2303        reply:
2304          attributes: &eee
2305            - header
2306            - modes-ours
2307            - modes-peer
2308            - active
2309            - enabled
2310            - tx-lpi-enabled
2311            - tx-lpi-timer
2312      dump: *eee-get-op
2313    -
2314      name: eee-set
2315      doc: Set eee params.
2316
2317      attribute-set: eee
2318
2319      do:
2320        request:
2321          attributes: *eee
2322    -
2323      name: eee-ntf
2324      doc: Notification for change in eee params.
2325      notify: eee-get
2326    -
2327      name: tsinfo-get
2328      doc: Get tsinfo params.
2329
2330      attribute-set: tsinfo
2331
2332      do: &tsinfo-get-op
2333        request:
2334          attributes:
2335            - header
2336            - hwtstamp-provider
2337        reply:
2338          attributes:
2339            - header
2340            - timestamping
2341            - tx-types
2342            - rx-filters
2343            - phc-index
2344            - stats
2345            - hwtstamp-provider
2346            - hwtstamp-source
2347            - hwtstamp-phyindex
2348      dump: *tsinfo-get-op
2349    -
2350      name: cable-test-act
2351      doc: Cable test.
2352
2353      attribute-set: cable-test
2354
2355      do:
2356        request:
2357          attributes:
2358            - header
2359    -
2360      name: cable-test-ntf
2361      doc: Cable test notification.
2362
2363      attribute-set: cable-test-ntf
2364
2365      event:
2366        attributes:
2367          - header
2368          - status
2369    -
2370      name: cable-test-tdr-act
2371      doc: Cable test TDR.
2372
2373      attribute-set: cable-test-tdr
2374
2375      do:
2376        request:
2377          attributes:
2378            - header
2379    -
2380      name: cable-test-tdr-ntf
2381      doc: Cable test TDR notification.
2382
2383      attribute-set: cable-test-tdr-ntf
2384
2385      event:
2386        attributes:
2387          - header
2388          - status
2389          - nest
2390    -
2391      name: tunnel-info-get
2392      doc: Get tsinfo params.
2393
2394      attribute-set: tunnel-info
2395
2396      do: &tunnel-info-get-op
2397        request:
2398          attributes:
2399            - header
2400        reply:
2401          attributes:
2402            - header
2403            - udp-ports
2404      dump: *tunnel-info-get-op
2405    -
2406      name: fec-get
2407      doc: Get FEC params.
2408
2409      attribute-set: fec
2410
2411      do: &fec-get-op
2412        request:
2413          attributes:
2414            - header
2415        reply:
2416          attributes: &fec
2417            - header
2418            - modes
2419            - auto
2420            - active
2421            - stats
2422      dump: *fec-get-op
2423    -
2424      name: fec-set
2425      doc: Set FEC params.
2426
2427      attribute-set: fec
2428
2429      do:
2430        request:
2431          attributes: *fec
2432    -
2433      name: fec-ntf
2434      doc: Notification for change in FEC params.
2435      notify: fec-get
2436    -
2437      name: module-eeprom-get
2438      doc: Get module EEPROM params.
2439
2440      attribute-set: module-eeprom
2441
2442      do: &module-eeprom-get-op
2443        request:
2444          attributes:
2445            - header
2446            - offset
2447            - length
2448            - page
2449            - bank
2450            - i2c-address
2451        reply:
2452          attributes:
2453            - header
2454            - data
2455      dump: *module-eeprom-get-op
2456    -
2457      name: stats-get
2458      doc: Get statistics.
2459
2460      attribute-set: stats
2461
2462      do: &stats-get-op
2463        request:
2464          attributes:
2465            - header
2466            - groups
2467        reply:
2468          attributes:
2469            - header
2470            - groups
2471            - grp
2472            - src
2473      dump: *stats-get-op
2474    -
2475      name: phc-vclocks-get
2476      doc: Get PHC VCLOCKs.
2477
2478      attribute-set: phc-vclocks
2479
2480      do: &phc-vclocks-get-op
2481        request:
2482          attributes:
2483            - header
2484        reply:
2485          attributes:
2486            - header
2487            - num
2488      dump: *phc-vclocks-get-op
2489    -
2490      name: module-get
2491      doc: Get module params.
2492
2493      attribute-set: module
2494
2495      do: &module-get-op
2496        request:
2497          attributes:
2498            - header
2499        reply:
2500          attributes: &module
2501            - header
2502            - power-mode-policy
2503            - power-mode
2504      dump: *module-get-op
2505    -
2506      name: module-set
2507      doc: Set module params.
2508
2509      attribute-set: module
2510
2511      do:
2512        request:
2513          attributes: *module
2514    -
2515      name: module-ntf
2516      doc: Notification for change in module params.
2517      notify: module-get
2518    -
2519      name: pse-get
2520      doc: Get Power Sourcing Equipment params.
2521
2522      attribute-set: pse
2523
2524      do: &pse-get-op
2525        request:
2526          attributes:
2527            - header
2528        reply:
2529          attributes:
2530            - header
2531            - podl-pse-admin-state
2532            - podl-pse-admin-control
2533            - podl-pse-pw-d-status
2534            - c33-pse-admin-state
2535            - c33-pse-admin-control
2536            - c33-pse-pw-d-status
2537            - c33-pse-pw-class
2538            - c33-pse-actual-pw
2539            - c33-pse-ext-state
2540            - c33-pse-ext-substate
2541            - c33-pse-avail-pw-limit
2542            - c33-pse-pw-limit-ranges
2543            - pse-pw-d-id
2544            - pse-prio-max
2545            - pse-prio
2546      dump: *pse-get-op
2547    -
2548      name: pse-set
2549      doc: Set Power Sourcing Equipment params.
2550
2551      attribute-set: pse
2552
2553      do:
2554        request:
2555          attributes:
2556            - header
2557            - podl-pse-admin-control
2558            - c33-pse-admin-control
2559            - c33-pse-avail-pw-limit
2560            - pse-prio
2561    -
2562      name: rss-get
2563      doc: Get RSS params.
2564
2565      attribute-set: rss
2566
2567      do:
2568        request:
2569          attributes:
2570            - header
2571            - context
2572        reply: &rss-reply
2573          attributes:
2574            - header
2575            - context
2576            - hfunc
2577            - indir
2578            - hkey
2579            - input-xfrm
2580            - flow-hash
2581      dump:
2582        request:
2583          attributes:
2584            - header
2585            - start-context
2586        reply: *rss-reply
2587    -
2588      name: plca-get-cfg
2589      doc: Get PLCA params.
2590
2591      attribute-set: plca
2592
2593      do: &plca-get-op
2594        request:
2595          attributes:
2596            - header
2597        reply:
2598          attributes: &plca
2599            - header
2600            - version
2601            - enabled
2602            - status
2603            - node-cnt
2604            - node-id
2605            - to-tmr
2606            - burst-cnt
2607            - burst-tmr
2608      dump: *plca-get-op
2609    -
2610      name: plca-set-cfg
2611      doc: Set PLCA params.
2612
2613      attribute-set: plca
2614
2615      do:
2616        request:
2617          attributes: *plca
2618    -
2619      name: plca-get-status
2620      doc: Get PLCA status params.
2621
2622      attribute-set: plca
2623
2624      do: &plca-get-status-op
2625        request:
2626          attributes:
2627            - header
2628        reply:
2629          attributes: *plca
2630      dump: *plca-get-status-op
2631    -
2632      name: plca-ntf
2633      doc: Notification for change in PLCA params.
2634      notify: plca-get-cfg
2635    -
2636      name: mm-get
2637      doc: Get MAC Merge configuration and state
2638
2639      attribute-set: mm
2640
2641      do: &mm-get-op
2642        request:
2643          attributes:
2644            - header
2645        reply:
2646          attributes:
2647            - header
2648            - pmac-enabled
2649            - tx-enabled
2650            - tx-active
2651            - tx-min-frag-size
2652            - rx-min-frag-size
2653            - verify-enabled
2654            - verify-time
2655            - max-verify-time
2656            - stats
2657      dump: *mm-get-op
2658    -
2659      name: mm-set
2660      doc: Set MAC Merge configuration
2661
2662      attribute-set: mm
2663
2664      do:
2665        request:
2666          attributes:
2667            - header
2668            - verify-enabled
2669            - verify-time
2670            - tx-enabled
2671            - pmac-enabled
2672            - tx-min-frag-size
2673    -
2674      name: mm-ntf
2675      doc: Notification for change in MAC Merge configuration.
2676      notify: mm-get
2677    -
2678      name: module-fw-flash-act
2679      doc: Flash transceiver module firmware.
2680
2681      attribute-set: module-fw-flash
2682
2683      do:
2684        request:
2685          attributes:
2686            - header
2687            - file-name
2688            - password
2689    -
2690      name: module-fw-flash-ntf
2691      doc: Notification for firmware flashing progress and status.
2692
2693      attribute-set: module-fw-flash
2694
2695      event:
2696        attributes:
2697          - header
2698          - status
2699          - status-msg
2700          - done
2701          - total
2702    -
2703      name: phy-get
2704      doc: Get PHY devices attached to an interface
2705
2706      attribute-set: phy
2707
2708      do: &phy-get-op
2709        request:
2710          attributes:
2711            - header
2712        reply:
2713          attributes:
2714            - header
2715            - index
2716            - drvname
2717            - name
2718            - upstream-type
2719            - upstream-index
2720            - upstream-sfp-name
2721            - downstream-sfp-name
2722      dump: *phy-get-op
2723    -
2724      name: phy-ntf
2725      doc: Notification for change in PHY devices.
2726      notify: phy-get
2727    -
2728      name: tsconfig-get
2729      doc: Get hwtstamp config.
2730
2731      attribute-set: tsconfig
2732
2733      do: &tsconfig-get-op
2734        request:
2735          attributes:
2736            - header
2737        reply:
2738          attributes: &tsconfig
2739            - header
2740            - hwtstamp-provider
2741            - tx-types
2742            - rx-filters
2743            - hwtstamp-flags
2744      dump: *tsconfig-get-op
2745    -
2746      name: tsconfig-set
2747      doc: Set hwtstamp config.
2748
2749      attribute-set: tsconfig
2750
2751      do:
2752        request:
2753          attributes: *tsconfig
2754        reply:
2755          attributes: *tsconfig
2756    -
2757      name: pse-ntf
2758      doc: Notification for PSE events.
2759
2760      attribute-set: pse-ntf
2761
2762      event:
2763        attributes:
2764          - header
2765          - events
2766    -
2767      name: rss-set
2768      doc: Set RSS params.
2769
2770      attribute-set: rss
2771
2772      do:
2773        request:
2774          attributes:
2775            - header
2776            - context
2777            - hfunc
2778            - indir
2779            - hkey
2780            - input-xfrm
2781            - flow-hash
2782    -
2783      name: rss-ntf
2784      doc: |
2785        Notification for change in RSS configuration.
2786        For additional contexts only modifications use this notification,
2787        creation and deletion have dedicated messages.
2788      notify: rss-get
2789    -
2790      name: rss-create-act
2791      doc: Create an RSS context.
2792      attribute-set: rss
2793      do:
2794        request: &rss-create-attrs
2795          attributes:
2796            - header
2797            - context
2798            - hfunc
2799            - indir
2800            - hkey
2801            - input-xfrm
2802        reply: *rss-create-attrs
2803    -
2804      name: rss-create-ntf
2805      doc: |
2806        Notification for creation of an additional RSS context.
2807      notify: rss-create-act
2808    -
2809      name: rss-delete-act
2810      doc: Delete an RSS context.
2811      attribute-set: rss
2812      do:
2813        request:
2814          attributes:
2815            - header
2816            - context
2817    -
2818      name: rss-delete-ntf
2819      doc: |
2820        Notification for deletion of an additional RSS context.
2821      attribute-set: rss
2822      event:
2823        attributes:
2824          - header
2825          - context
2826    -
2827      name: mse-get
2828      doc: Get PHY MSE measurement data and capabilities.
2829      attribute-set: mse
2830      do: &mse-get-op
2831        request:
2832          attributes:
2833            - header
2834        reply:
2835          attributes:
2836            - header
2837            - capabilities
2838            - channel-a
2839            - channel-b
2840            - channel-c
2841            - channel-d
2842            - worst-channel
2843            - link
2844      dump: *mse-get-op
2845
2846mcast-groups:
2847  list:
2848    -
2849      name: monitor
2850      c-define-name: ethtool-mcgrp-monitor-name
2851