xref: /linux/Documentation/netlink/specs/ethtool.yaml (revision 5a0c5702bd0016ce761dfa2ce84c009a3a32d863)
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: tx-pause-storm-events
884        type: u64
885        doc: >-
886            TX pause storm event count. Increments each time device
887            detects that its pause assertion condition has been true
888            for too long for normal operation. As a result, the device
889            has temporarily disabled its own Pause TX function to
890            protect the network from itself.
891            This counter should never increment under normal overload
892            conditions; it indicates catastrophic failure like an OS
893            crash. The rate of incrementing is implementation specific.
894
895  -
896    name: pause
897    attr-cnt-name: __ethtool-a-pause-cnt
898    attributes:
899      -
900        name: unspec
901        type: unused
902        value: 0
903      -
904        name: header
905        type: nest
906        nested-attributes: header
907      -
908        name: autoneg
909        type: u8
910      -
911        name: rx
912        type: u8
913      -
914        name: tx
915        type: u8
916      -
917        name: stats
918        type: nest
919        nested-attributes: pause-stat
920      -
921        name: stats-src
922        type: u32
923  -
924    name: eee
925    attr-cnt-name: __ethtool-a-eee-cnt
926    attributes:
927      -
928        name: unspec
929        type: unused
930        value: 0
931      -
932        name: header
933        type: nest
934        nested-attributes: header
935      -
936        name: modes-ours
937        type: nest
938        nested-attributes: bitset
939      -
940        name: modes-peer
941        type: nest
942        nested-attributes: bitset
943      -
944        name: active
945        type: u8
946      -
947        name: enabled
948        type: u8
949      -
950        name: tx-lpi-enabled
951        type: u8
952      -
953        name: tx-lpi-timer
954        type: u32
955  -
956    name: ts-stat
957    attr-cnt-name: __ethtool-a-ts-stat-cnt
958    attributes:
959      -
960        name: unspec
961        type: unused
962        value: 0
963      -
964        name: tx-pkts
965        type: uint
966      -
967        name: tx-lost
968        type: uint
969      -
970        name: tx-err
971        type: uint
972      -
973        name: tx-onestep-pkts-unconfirmed
974        type: uint
975  -
976    name: ts-hwtstamp-provider
977    attr-cnt-name: __ethtool-a-ts-hwtstamp-provider-cnt
978    attributes:
979      -
980        name: unspec
981        type: unused
982        value: 0
983      -
984        name: index
985        type: u32
986      -
987        name: qualifier
988        type: u32
989  -
990    name: tsinfo
991    attr-cnt-name: __ethtool-a-tsinfo-cnt
992    attributes:
993      -
994        name: unspec
995        type: unused
996        value: 0
997      -
998        name: header
999        type: nest
1000        nested-attributes: header
1001      -
1002        name: timestamping
1003        type: nest
1004        nested-attributes: bitset
1005      -
1006        name: tx-types
1007        type: nest
1008        nested-attributes: bitset
1009      -
1010        name: rx-filters
1011        type: nest
1012        nested-attributes: bitset
1013      -
1014        name: phc-index
1015        type: u32
1016      -
1017        name: stats
1018        type: nest
1019        nested-attributes: ts-stat
1020      -
1021        name: hwtstamp-provider
1022        type: nest
1023        nested-attributes: ts-hwtstamp-provider
1024      -
1025        name: hwtstamp-source
1026        type: u32
1027        enum: hwtstamp-source
1028      -
1029        name: hwtstamp-phyindex
1030        type: u32
1031  -
1032    name: cable-result
1033    attr-cnt-name: __ethtool-a-cable-result-cnt
1034    attributes:
1035      -
1036        name: unspec
1037        type: unused
1038        value: 0
1039      -
1040        name: pair
1041        doc: ETHTOOL_A_CABLE_PAIR
1042        type: u8
1043      -
1044        name: code
1045        doc: ETHTOOL_A_CABLE_RESULT_CODE
1046        type: u8
1047      -
1048        name: src
1049        doc: ETHTOOL_A_CABLE_INF_SRC
1050        type: u32
1051  -
1052    name: cable-fault-length
1053    attr-cnt-name: __ethtool-a-cable-fault-length-cnt
1054    attributes:
1055      -
1056        name: unspec
1057        type: unused
1058        value: 0
1059      -
1060        name: pair
1061        type: u8
1062      -
1063        name: cm
1064        type: u32
1065      -
1066        name: src
1067        type: u32
1068  -
1069    name: cable-nest
1070    attr-cnt-name: __ethtool-a-cable-nest-cnt
1071    attributes:
1072      -
1073        name: unspec
1074        type: unused
1075        value: 0
1076      -
1077        name: result
1078        type: nest
1079        nested-attributes: cable-result
1080      -
1081        name: fault-length
1082        type: nest
1083        nested-attributes: cable-fault-length
1084  -
1085    name: cable-test
1086    attr-cnt-name: __ethtool-a-cable-test-cnt
1087    attributes:
1088      -
1089        name: unspec
1090        type: unused
1091        value: 0
1092      -
1093        name: header
1094        type: nest
1095        nested-attributes: header
1096  -
1097    name: cable-test-ntf
1098    attr-cnt-name: __ethtool-a-cable-test-ntf-cnt
1099    attributes:
1100      -
1101        name: unspec
1102        type: unused
1103        value: 0
1104      -
1105        name: header
1106        type: nest
1107        nested-attributes: header
1108      -
1109        name: status
1110        doc: _STARTED/_COMPLETE
1111        type: u8
1112      -
1113        name: nest
1114        type: nest
1115        nested-attributes: cable-nest
1116  -
1117    name: cable-test-tdr-cfg
1118    attr-cnt-name: __ethtool-a-cable-test-tdr-cfg-cnt
1119    attributes:
1120      -
1121        name: unspec
1122        type: unused
1123        value: 0
1124      -
1125        name: first
1126        type: u32
1127      -
1128        name: last
1129        type: u32
1130      -
1131        name: step
1132        type: u32
1133      -
1134        name: pair
1135        type: u8
1136  -
1137    name: cable-test-tdr-ntf
1138    attr-cnt-name: __ethtool-a-cable-test-tdr-ntf-cnt
1139    attributes:
1140      -
1141        name: unspec
1142        type: unused
1143        value: 0
1144      -
1145        name: header
1146        type: nest
1147        nested-attributes: header
1148      -
1149        name: status
1150        type: u8
1151      -
1152        name: nest
1153        type: nest
1154        nested-attributes: cable-nest
1155  -
1156    name: cable-test-tdr
1157    attr-cnt-name: __ethtool-a-cable-test-tdr-cnt
1158    attributes:
1159      -
1160        name: unspec
1161        type: unused
1162        value: 0
1163      -
1164        name: header
1165        type: nest
1166        nested-attributes: header
1167      -
1168        name: cfg
1169        type: nest
1170        nested-attributes: cable-test-tdr-cfg
1171  -
1172    name: tunnel-udp-entry
1173    attr-cnt-name: __ethtool-a-tunnel-udp-entry-cnt
1174    attributes:
1175      -
1176        name: unspec
1177        type: unused
1178        value: 0
1179      -
1180        name: port
1181        type: u16
1182        byte-order: big-endian
1183      -
1184        name: type
1185        type: u32
1186        enum: udp-tunnel-type
1187  -
1188    name: tunnel-udp-table
1189    attr-cnt-name: __ethtool-a-tunnel-udp-table-cnt
1190    attributes:
1191      -
1192        name: unspec
1193        type: unused
1194        value: 0
1195      -
1196        name: size
1197        type: u32
1198      -
1199        name: types
1200        type: nest
1201        nested-attributes: bitset
1202      -
1203        name: entry
1204        type: nest
1205        multi-attr: true
1206        nested-attributes: tunnel-udp-entry
1207  -
1208    name: tunnel-udp
1209    attr-cnt-name: __ethtool-a-tunnel-udp-cnt
1210    attributes:
1211      -
1212        name: unspec
1213        type: unused
1214        value: 0
1215      -
1216        name: table
1217        type: nest
1218        nested-attributes: tunnel-udp-table
1219  -
1220    name: tunnel-info
1221    attr-cnt-name: __ethtool-a-tunnel-info-cnt
1222    attributes:
1223      -
1224        name: unspec
1225        type: unused
1226        value: 0
1227      -
1228        name: header
1229        type: nest
1230        nested-attributes: header
1231      -
1232        name: udp-ports
1233        type: nest
1234        nested-attributes: tunnel-udp
1235  -
1236    name: fec-hist
1237    attr-cnt-name: --ethtool-a-fec-hist-cnt
1238    attributes:
1239      -
1240        name: pad
1241        type: pad
1242      -
1243        name: bin-low
1244        type: u32
1245        doc: Low bound of FEC bin (inclusive)
1246      -
1247        name: bin-high
1248        type: u32
1249        doc: High bound of FEC bin (inclusive)
1250      -
1251        name: bin-val
1252        type: uint
1253        doc: Error count in the bin (optional if per-lane values exist)
1254      -
1255        name: bin-val-per-lane
1256        type: binary
1257        sub-type: u64
1258        doc: An array of per-lane error counters in the bin (optional)
1259  -
1260    name: fec-stat
1261    attr-cnt-name: __ethtool-a-fec-stat-cnt
1262    attributes:
1263      -
1264        name: unspec
1265        type: unused
1266        value: 0
1267      -
1268        name: pad
1269        type: pad
1270      -
1271        name: corrected
1272        type: binary
1273        sub-type: u64
1274      -
1275        name: uncorr
1276        type: binary
1277        sub-type: u64
1278      -
1279        name: corr-bits
1280        type: binary
1281        sub-type: u64
1282      -
1283        name: hist
1284        type: nest
1285        multi-attr: true
1286        nested-attributes: fec-hist
1287  -
1288    name: fec
1289    attr-cnt-name: __ethtool-a-fec-cnt
1290    attributes:
1291      -
1292        name: unspec
1293        type: unused
1294        value: 0
1295      -
1296        name: header
1297        type: nest
1298        nested-attributes: header
1299      -
1300        name: modes
1301        type: nest
1302        nested-attributes: bitset
1303      -
1304        name: auto
1305        type: u8
1306      -
1307        name: active
1308        type: u32
1309      -
1310        name: stats
1311        type: nest
1312        nested-attributes: fec-stat
1313  -
1314    name: module-eeprom
1315    attr-cnt-name: __ethtool-a-module-eeprom-cnt
1316    attributes:
1317      -
1318        name: unspec
1319        type: unused
1320        value: 0
1321      -
1322        name: header
1323        type: nest
1324        nested-attributes: header
1325      -
1326        name: offset
1327        type: u32
1328      -
1329        name: length
1330        type: u32
1331      -
1332        name: page
1333        type: u8
1334      -
1335        name: bank
1336        type: u8
1337      -
1338        name: i2c-address
1339        type: u8
1340      -
1341        name: data
1342        type: binary
1343  -
1344    name: stats-grp
1345    attr-cnt-name: __ethtool-a-stats-grp-cnt
1346    attributes:
1347      -
1348        name: unspec
1349        type: unused
1350        value: 0
1351      -
1352        name: pad
1353        type: pad
1354      -
1355        name: id
1356        type: u32
1357      -
1358        name: ss-id
1359        type: u32
1360      -
1361        name: stat
1362        type: u64
1363        type-value: [id]
1364      -
1365        name: hist-rx
1366        type: nest
1367        nested-attributes: stats-grp-hist
1368      -
1369        name: hist-tx
1370        type: nest
1371        nested-attributes: stats-grp-hist
1372      -
1373        name: hist-bkt-low
1374        type: u32
1375      -
1376        name: hist-bkt-hi
1377        type: u32
1378      -
1379        name: hist-val
1380        type: u64
1381  -
1382    name: stats-grp-hist
1383    subset-of: stats-grp
1384    attributes:
1385      -
1386        name: hist-bkt-low
1387      -
1388        name: hist-bkt-hi
1389      -
1390        name: hist-val
1391  -
1392    name: stats
1393    attr-cnt-name: __ethtool-a-stats-cnt
1394    attributes:
1395      -
1396        name: unspec
1397        type: unused
1398        value: 0
1399      -
1400        name: pad
1401        type: pad
1402      -
1403        name: header
1404        type: nest
1405        nested-attributes: header
1406      -
1407        name: groups
1408        type: nest
1409        nested-attributes: bitset
1410      -
1411        name: grp
1412        type: nest
1413        nested-attributes: stats-grp
1414      -
1415        name: src
1416        type: u32
1417  -
1418    name: phc-vclocks
1419    attr-cnt-name: __ethtool-a-phc-vclocks-cnt
1420    attributes:
1421      -
1422        name: unspec
1423        type: unused
1424        value: 0
1425      -
1426        name: header
1427        type: nest
1428        nested-attributes: header
1429      -
1430        name: num
1431        type: u32
1432      -
1433        name: index
1434        type: binary
1435        sub-type: s32
1436  -
1437    name: module
1438    attr-cnt-name: __ethtool-a-module-cnt
1439    attributes:
1440      -
1441        name: unspec
1442        type: unused
1443        value: 0
1444      -
1445        name: header
1446        type: nest
1447        nested-attributes: header
1448      -
1449        name: power-mode-policy
1450        type: u8
1451      -
1452        name: power-mode
1453        type: u8
1454  -
1455    name: c33-pse-pw-limit
1456    attr-cnt-name: __ethtool-a-c33-pse-pw-limit-cnt
1457    attr-max-name: __ethtool-a-c33-pse-pw-limit-max
1458    attributes:
1459      -
1460        name: unspec
1461        type: unused
1462        value: 0
1463      -
1464        name: min
1465        type: u32
1466      -
1467        name: max
1468        type: u32
1469  -
1470    name: pse
1471    attr-cnt-name: __ethtool-a-pse-cnt
1472    attributes:
1473      -
1474        name: unspec
1475        type: unused
1476        value: 0
1477      -
1478        name: header
1479        type: nest
1480        nested-attributes: header
1481      -
1482        name: podl-pse-admin-state
1483        type: u32
1484        name-prefix: ethtool-a-
1485      -
1486        name: podl-pse-admin-control
1487        type: u32
1488        name-prefix: ethtool-a-
1489      -
1490        name: podl-pse-pw-d-status
1491        type: u32
1492        name-prefix: ethtool-a-
1493      -
1494        name: c33-pse-admin-state
1495        type: u32
1496        name-prefix: ethtool-a-
1497      -
1498        name: c33-pse-admin-control
1499        type: u32
1500        name-prefix: ethtool-a-
1501      -
1502        name: c33-pse-pw-d-status
1503        type: u32
1504        name-prefix: ethtool-a-
1505      -
1506        name: c33-pse-pw-class
1507        type: u32
1508        name-prefix: ethtool-a-
1509      -
1510        name: c33-pse-actual-pw
1511        type: u32
1512        name-prefix: ethtool-a-
1513      -
1514        name: c33-pse-ext-state
1515        type: u32
1516        name-prefix: ethtool-a-
1517        enum: c33-pse-ext-state
1518      -
1519        name: c33-pse-ext-substate
1520        type: u32
1521        name-prefix: ethtool-a-
1522      -
1523        name: c33-pse-avail-pw-limit
1524        type: u32
1525        name-prefix: ethtool-a-
1526      -
1527        name: c33-pse-pw-limit-ranges
1528        name-prefix: ethtool-a-
1529        type: nest
1530        multi-attr: true
1531        nested-attributes: c33-pse-pw-limit
1532      -
1533        name: pse-pw-d-id
1534        type: u32
1535        name-prefix: ethtool-a-
1536      -
1537        name: pse-prio-max
1538        type: u32
1539        name-prefix: ethtool-a-
1540      -
1541        name: pse-prio
1542        type: u32
1543        name-prefix: ethtool-a-
1544  -
1545    name: flow
1546    attr-cnt-name: --ethtool-a-flow-cnt
1547    doc: |
1548      Flow types, corresponding to those defined in the old
1549      ethtool header for RXFH and RXNFC as ${PROTO}_FLOW.
1550      The values are not matching the old ones to avoid carrying
1551      into Netlink the IP_USER_FLOW vs IPV4_FLOW vs IPV4_USER_FLOW confusion.
1552    attributes:
1553      -
1554        name: ether
1555        type: uint
1556        enum: rxfh-fields
1557      -
1558        name: ip4
1559        type: uint
1560        enum: rxfh-fields
1561      -
1562        name: ip6
1563        type: uint
1564        enum: rxfh-fields
1565      -
1566        name: tcp4
1567        type: uint
1568        enum: rxfh-fields
1569      -
1570        name: tcp6
1571        type: uint
1572        enum: rxfh-fields
1573      -
1574        name: udp4
1575        type: uint
1576        enum: rxfh-fields
1577      -
1578        name: udp6
1579        type: uint
1580        enum: rxfh-fields
1581      -
1582        name: sctp4
1583        type: uint
1584        enum: rxfh-fields
1585      -
1586        name: sctp6
1587        type: uint
1588        enum: rxfh-fields
1589      -
1590        name: ah4
1591        type: uint
1592        enum: rxfh-fields
1593      -
1594        name: ah6
1595        type: uint
1596        enum: rxfh-fields
1597      -
1598        name: esp4
1599        type: uint
1600        enum: rxfh-fields
1601      -
1602        name: esp6
1603        type: uint
1604        enum: rxfh-fields
1605      -
1606        name: ah-esp4
1607        type: uint
1608        enum: rxfh-fields
1609      -
1610        name: ah-esp6
1611        type: uint
1612        enum: rxfh-fields
1613      -
1614        name: gtpu4
1615        type: uint
1616        enum: rxfh-fields
1617      -
1618        name: gtpu6
1619        type: uint
1620        enum: rxfh-fields
1621      -
1622        name: gtpc4
1623        type: uint
1624        enum: rxfh-fields
1625      -
1626        name: gtpc6
1627        type: uint
1628        enum: rxfh-fields
1629      -
1630        name: gtpc-teid4
1631        type: uint
1632        enum: rxfh-fields
1633      -
1634        name: gtpc-teid6
1635        type: uint
1636        enum: rxfh-fields
1637      -
1638        name: gtpu-eh4
1639        type: uint
1640        enum: rxfh-fields
1641      -
1642        name: gtpu-eh6
1643        type: uint
1644        enum: rxfh-fields
1645      -
1646        name: gtpu-ul4
1647        type: uint
1648        enum: rxfh-fields
1649      -
1650        name: gtpu-ul6
1651        type: uint
1652        enum: rxfh-fields
1653      -
1654        name: gtpu-dl4
1655        type: uint
1656        enum: rxfh-fields
1657      -
1658        name: gtpu-dl6
1659        type: uint
1660        enum: rxfh-fields
1661  -
1662    name: rss
1663    attr-cnt-name: __ethtool-a-rss-cnt
1664    attributes:
1665      -
1666        name: unspec
1667        type: unused
1668        value: 0
1669      -
1670        name: header
1671        type: nest
1672        nested-attributes: header
1673      -
1674        name: context
1675        type: u32
1676      -
1677        name: hfunc
1678        type: u32
1679      -
1680        name: indir
1681        type: binary
1682        sub-type: u32
1683      -
1684        name: hkey
1685        type: binary
1686      -
1687        name: input-xfrm
1688        type: u32
1689        enum: input-xfrm
1690      -
1691        name: start-context
1692        type: u32
1693      -
1694        name: flow-hash
1695        type: nest
1696        nested-attributes: flow
1697  -
1698    name: plca
1699    attr-cnt-name: __ethtool-a-plca-cnt
1700    attributes:
1701      -
1702        name: unspec
1703        type: unused
1704        value: 0
1705      -
1706        name: header
1707        type: nest
1708        nested-attributes: header
1709      -
1710        name: version
1711        type: u16
1712      -
1713        name: enabled
1714        type: u8
1715      -
1716        name: status
1717        type: u8
1718      -
1719        name: node-cnt
1720        type: u32
1721      -
1722        name: node-id
1723        type: u32
1724      -
1725        name: to-tmr
1726        type: u32
1727      -
1728        name: burst-cnt
1729        type: u32
1730      -
1731        name: burst-tmr
1732        type: u32
1733  -
1734    name: module-fw-flash
1735    attr-cnt-name: __ethtool-a-module-fw-flash-cnt
1736    attributes:
1737      -
1738        name: unspec
1739        type: unused
1740        value: 0
1741      -
1742        name: header
1743        type: nest
1744        nested-attributes: header
1745      -
1746        name: file-name
1747        type: string
1748      -
1749        name: password
1750        type: u32
1751      -
1752        name: status
1753        type: u32
1754        enum: module-fw-flash-status
1755      -
1756        name: status-msg
1757        type: string
1758      -
1759        name: done
1760        type: uint
1761      -
1762        name: total
1763        type: uint
1764  -
1765    name: phy
1766    attr-cnt-name: __ethtool-a-phy-cnt
1767    attributes:
1768      -
1769        name: unspec
1770        type: unused
1771        value: 0
1772      -
1773        name: header
1774        type: nest
1775        nested-attributes: header
1776      -
1777        name: index
1778        type: u32
1779      -
1780        name: drvname
1781        type: string
1782      -
1783        name: name
1784        type: string
1785      -
1786        name: upstream-type
1787        type: u32
1788        enum: phy-upstream-type
1789      -
1790        name: upstream-index
1791        type: u32
1792      -
1793        name: upstream-sfp-name
1794        type: string
1795      -
1796        name: downstream-sfp-name
1797        type: string
1798  -
1799    name: tsconfig
1800    attr-cnt-name: __ethtool-a-tsconfig-cnt
1801    attributes:
1802      -
1803        name: unspec
1804        type: unused
1805        value: 0
1806      -
1807        name: header
1808        type: nest
1809        nested-attributes: header
1810      -
1811        name: hwtstamp-provider
1812        type: nest
1813        nested-attributes: ts-hwtstamp-provider
1814      -
1815        name: tx-types
1816        type: nest
1817        nested-attributes: bitset
1818      -
1819        name: rx-filters
1820        type: nest
1821        nested-attributes: bitset
1822      -
1823        name: hwtstamp-flags
1824        type: nest
1825        nested-attributes: bitset
1826  -
1827    name: pse-ntf
1828    attr-cnt-name: --ethtool-a-pse-ntf-cnt
1829    attributes:
1830      -
1831        name: header
1832        type: nest
1833        nested-attributes: header
1834      -
1835        name: events
1836        type: uint
1837        enum: pse-event
1838        doc: List of events reported by the PSE controller
1839  -
1840    name: mse-capabilities
1841    doc: MSE capabilities attribute set
1842    attr-cnt-name: --ethtool-a-mse-capabilities-cnt
1843    attributes:
1844      -
1845        name: max-average-mse
1846        type: uint
1847      -
1848        name: max-peak-mse
1849        type: uint
1850      -
1851        name: refresh-rate-ps
1852        type: uint
1853      -
1854        name: num-symbols
1855        type: uint
1856  -
1857    name: mse-snapshot
1858    doc: MSE snapshot attribute set
1859    attr-cnt-name: --ethtool-a-mse-snapshot-cnt
1860    attributes:
1861      -
1862        name: average-mse
1863        type: uint
1864      -
1865        name: peak-mse
1866        type: uint
1867      -
1868        name: worst-peak-mse
1869        type: uint
1870  -
1871    name: mse
1872    attr-cnt-name: --ethtool-a-mse-cnt
1873    attributes:
1874      -
1875        name: header
1876        type: nest
1877        nested-attributes: header
1878      -
1879        name: capabilities
1880        type: nest
1881        nested-attributes: mse-capabilities
1882      -
1883        name: channel-a
1884        type: nest
1885        nested-attributes: mse-snapshot
1886      -
1887        name: channel-b
1888        type: nest
1889        nested-attributes: mse-snapshot
1890      -
1891        name: channel-c
1892        type: nest
1893        nested-attributes: mse-snapshot
1894      -
1895        name: channel-d
1896        type: nest
1897        nested-attributes: mse-snapshot
1898      -
1899        name: worst-channel
1900        type: nest
1901        nested-attributes: mse-snapshot
1902      -
1903        name: link
1904        type: nest
1905        nested-attributes: mse-snapshot
1906
1907operations:
1908  enum-model: directional
1909  name-prefix: ethtool-msg-
1910  list:
1911    -
1912      name: strset-get
1913      doc: Get string set from the kernel.
1914
1915      attribute-set: strset
1916
1917      do: &strset-get-op
1918        request:
1919          attributes:
1920            - header
1921            - stringsets
1922            - counts-only
1923        reply:
1924          attributes:
1925            - header
1926            - stringsets
1927      dump: *strset-get-op
1928    -
1929      name: linkinfo-get
1930      doc: Get link info.
1931
1932      attribute-set: linkinfo
1933
1934      do: &linkinfo-get-op
1935        request:
1936          attributes:
1937            - header
1938        reply:
1939          attributes: &linkinfo
1940            - header
1941            - port
1942            - phyaddr
1943            - tp-mdix
1944            - tp-mdix-ctrl
1945            - transceiver
1946      dump: *linkinfo-get-op
1947    -
1948      name: linkinfo-set
1949      doc: Set link info.
1950
1951      attribute-set: linkinfo
1952
1953      do:
1954        request:
1955          attributes: *linkinfo
1956    -
1957      name: linkinfo-ntf
1958      doc: Notification for change in link info.
1959      notify: linkinfo-get
1960    -
1961      name: linkmodes-get
1962      doc: Get link modes.
1963
1964      attribute-set: linkmodes
1965
1966      do: &linkmodes-get-op
1967        request:
1968          attributes:
1969            - header
1970        reply:
1971          attributes: &linkmodes
1972            - header
1973            - autoneg
1974            - ours
1975            - peer
1976            - speed
1977            - duplex
1978            - master-slave-cfg
1979            - master-slave-state
1980            - lanes
1981            - rate-matching
1982      dump: *linkmodes-get-op
1983    -
1984      name: linkmodes-set
1985      doc: Set link modes.
1986
1987      attribute-set: linkmodes
1988
1989      do:
1990        request:
1991          attributes: *linkmodes
1992    -
1993      name: linkmodes-ntf
1994      doc: Notification for change in link modes.
1995      notify: linkmodes-get
1996    -
1997      name: linkstate-get
1998      doc: Get link state.
1999
2000      attribute-set: linkstate
2001
2002      do: &linkstate-get-op
2003        request:
2004          attributes:
2005            - header
2006        reply:
2007          attributes:
2008            - header
2009            - link
2010            - sqi
2011            - sqi-max
2012            - ext-state
2013            - ext-substate
2014            - ext-down-cnt
2015      dump: *linkstate-get-op
2016    -
2017      name: debug-get
2018      doc: Get debug message mask.
2019
2020      attribute-set: debug
2021
2022      do: &debug-get-op
2023        request:
2024          attributes:
2025            - header
2026        reply:
2027          attributes: &debug
2028            - header
2029            - msgmask
2030      dump: *debug-get-op
2031    -
2032      name: debug-set
2033      doc: Set debug message mask.
2034
2035      attribute-set: debug
2036
2037      do:
2038        request:
2039          attributes: *debug
2040    -
2041      name: debug-ntf
2042      doc: Notification for change in debug message mask.
2043      notify: debug-get
2044    -
2045      name: wol-get
2046      doc: Get WOL params.
2047
2048      attribute-set: wol
2049
2050      do: &wol-get-op
2051        request:
2052          attributes:
2053            - header
2054        reply:
2055          attributes: &wol
2056            - header
2057            - modes
2058            - sopass
2059      dump: *wol-get-op
2060    -
2061      name: wol-set
2062      doc: Set WOL params.
2063
2064      attribute-set: wol
2065
2066      do:
2067        request:
2068          attributes: *wol
2069    -
2070      name: wol-ntf
2071      doc: Notification for change in WOL params.
2072      notify: wol-get
2073    -
2074      name: features-get
2075      doc: Get features.
2076
2077      attribute-set: features
2078
2079      do: &feature-get-op
2080        request:
2081          attributes:
2082            - header
2083        reply:
2084          attributes: &feature
2085            - header
2086            # User-changeable features.
2087            - hw
2088            # User-requested features.
2089            - wanted
2090            # Currently active features.
2091            - active
2092            # Unchangeable features.
2093            - nochange
2094      dump: *feature-get-op
2095    -
2096      name: features-set
2097      doc: Set features.
2098
2099      attribute-set: features
2100
2101      do: &feature-set-op
2102        request:
2103          attributes: *feature
2104        reply:
2105          attributes: *feature
2106    -
2107      name: features-ntf
2108      doc: Notification for change in features.
2109      notify: features-get
2110    -
2111      name: privflags-get
2112      doc: Get device private flags.
2113
2114      attribute-set: privflags
2115
2116      do: &privflag-get-op
2117        request:
2118          attributes:
2119            - header
2120        reply:
2121          attributes: &privflag
2122            - header
2123            - flags
2124      dump: *privflag-get-op
2125    -
2126      name: privflags-set
2127      doc: Set device private flags.
2128
2129      attribute-set: privflags
2130
2131      do:
2132        request:
2133          attributes: *privflag
2134    -
2135      name: privflags-ntf
2136      doc: Notification for change in device private flags.
2137      notify: privflags-get
2138
2139    -
2140      name: rings-get
2141      doc: Get ring params.
2142
2143      attribute-set: rings
2144
2145      do: &ring-get-op
2146        request:
2147          attributes:
2148            - header
2149        reply:
2150          attributes: &ring
2151            - header
2152            - rx-max
2153            - rx-mini-max
2154            - rx-jumbo-max
2155            - tx-max
2156            - rx
2157            - rx-mini
2158            - rx-jumbo
2159            - tx
2160            - rx-buf-len
2161            - tcp-data-split
2162            - cqe-size
2163            - tx-push
2164            - rx-push
2165            - tx-push-buf-len
2166            - tx-push-buf-len-max
2167            - hds-thresh
2168            - hds-thresh-max
2169      dump: *ring-get-op
2170    -
2171      name: rings-set
2172      doc: Set ring params.
2173
2174      attribute-set: rings
2175
2176      do:
2177        request:
2178          attributes: *ring
2179    -
2180      name: rings-ntf
2181      doc: Notification for change in ring params.
2182      notify: rings-get
2183    -
2184      name: channels-get
2185      doc: Get channel params.
2186
2187      attribute-set: channels
2188
2189      do: &channel-get-op
2190        request:
2191          attributes:
2192            - header
2193        reply:
2194          attributes: &channel
2195            - header
2196            - rx-max
2197            - tx-max
2198            - other-max
2199            - combined-max
2200            - rx-count
2201            - tx-count
2202            - other-count
2203            - combined-count
2204      dump: *channel-get-op
2205    -
2206      name: channels-set
2207      doc: Set channel params.
2208
2209      attribute-set: channels
2210
2211      do:
2212        request:
2213          attributes: *channel
2214    -
2215      name: channels-ntf
2216      doc: Notification for change in channel params.
2217      notify: channels-get
2218    -
2219      name: coalesce-get
2220      doc: Get coalesce params.
2221
2222      attribute-set: coalesce
2223
2224      do: &coalesce-get-op
2225        request:
2226          attributes:
2227            - header
2228        reply:
2229          attributes: &coalesce
2230            - header
2231            - rx-usecs
2232            - rx-max-frames
2233            - rx-usecs-irq
2234            - rx-max-frames-irq
2235            - tx-usecs
2236            - tx-max-frames
2237            - tx-usecs-irq
2238            - tx-max-frames-irq
2239            - stats-block-usecs
2240            - use-adaptive-rx
2241            - use-adaptive-tx
2242            - pkt-rate-low
2243            - rx-usecs-low
2244            - rx-max-frames-low
2245            - tx-usecs-low
2246            - tx-max-frames-low
2247            - pkt-rate-high
2248            - rx-usecs-high
2249            - rx-max-frames-high
2250            - tx-usecs-high
2251            - tx-max-frames-high
2252            - rate-sample-interval
2253            - use-cqe-mode-tx
2254            - use-cqe-mode-rx
2255            - tx-aggr-max-bytes
2256            - tx-aggr-max-frames
2257            - tx-aggr-time-usecs
2258            - rx-profile
2259            - tx-profile
2260      dump: *coalesce-get-op
2261    -
2262      name: coalesce-set
2263      doc: Set coalesce params.
2264
2265      attribute-set: coalesce
2266
2267      do:
2268        request:
2269          attributes: *coalesce
2270    -
2271      name: coalesce-ntf
2272      doc: Notification for change in coalesce params.
2273      notify: coalesce-get
2274    -
2275      name: pause-get
2276      doc: Get pause params.
2277
2278      attribute-set: pause
2279
2280      do: &pause-get-op
2281        request:
2282          attributes:
2283            - header
2284        reply:
2285          attributes: &pause
2286            - header
2287            - autoneg
2288            - rx
2289            - tx
2290            - stats
2291            - stats-src
2292      dump: *pause-get-op
2293    -
2294      name: pause-set
2295      doc: Set pause params.
2296
2297      attribute-set: pause
2298
2299      do:
2300        request:
2301          attributes: *pause
2302    -
2303      name: pause-ntf
2304      doc: Notification for change in pause params.
2305      notify: pause-get
2306    -
2307      name: eee-get
2308      doc: Get eee params.
2309
2310      attribute-set: eee
2311
2312      do: &eee-get-op
2313        request:
2314          attributes:
2315            - header
2316        reply:
2317          attributes: &eee
2318            - header
2319            - modes-ours
2320            - modes-peer
2321            - active
2322            - enabled
2323            - tx-lpi-enabled
2324            - tx-lpi-timer
2325      dump: *eee-get-op
2326    -
2327      name: eee-set
2328      doc: Set eee params.
2329
2330      attribute-set: eee
2331
2332      do:
2333        request:
2334          attributes: *eee
2335    -
2336      name: eee-ntf
2337      doc: Notification for change in eee params.
2338      notify: eee-get
2339    -
2340      name: tsinfo-get
2341      doc: Get tsinfo params.
2342
2343      attribute-set: tsinfo
2344
2345      do: &tsinfo-get-op
2346        request:
2347          attributes:
2348            - header
2349            - hwtstamp-provider
2350        reply:
2351          attributes:
2352            - header
2353            - timestamping
2354            - tx-types
2355            - rx-filters
2356            - phc-index
2357            - stats
2358            - hwtstamp-provider
2359            - hwtstamp-source
2360            - hwtstamp-phyindex
2361      dump: *tsinfo-get-op
2362    -
2363      name: cable-test-act
2364      doc: Cable test.
2365
2366      attribute-set: cable-test
2367
2368      do:
2369        request:
2370          attributes:
2371            - header
2372    -
2373      name: cable-test-ntf
2374      doc: Cable test notification.
2375
2376      attribute-set: cable-test-ntf
2377
2378      event:
2379        attributes:
2380          - header
2381          - status
2382    -
2383      name: cable-test-tdr-act
2384      doc: Cable test TDR.
2385
2386      attribute-set: cable-test-tdr
2387
2388      do:
2389        request:
2390          attributes:
2391            - header
2392    -
2393      name: cable-test-tdr-ntf
2394      doc: Cable test TDR notification.
2395
2396      attribute-set: cable-test-tdr-ntf
2397
2398      event:
2399        attributes:
2400          - header
2401          - status
2402          - nest
2403    -
2404      name: tunnel-info-get
2405      doc: Get tsinfo params.
2406
2407      attribute-set: tunnel-info
2408
2409      do: &tunnel-info-get-op
2410        request:
2411          attributes:
2412            - header
2413        reply:
2414          attributes:
2415            - header
2416            - udp-ports
2417      dump: *tunnel-info-get-op
2418    -
2419      name: fec-get
2420      doc: Get FEC params.
2421
2422      attribute-set: fec
2423
2424      do: &fec-get-op
2425        request:
2426          attributes:
2427            - header
2428        reply:
2429          attributes: &fec
2430            - header
2431            - modes
2432            - auto
2433            - active
2434            - stats
2435      dump: *fec-get-op
2436    -
2437      name: fec-set
2438      doc: Set FEC params.
2439
2440      attribute-set: fec
2441
2442      do:
2443        request:
2444          attributes: *fec
2445    -
2446      name: fec-ntf
2447      doc: Notification for change in FEC params.
2448      notify: fec-get
2449    -
2450      name: module-eeprom-get
2451      doc: Get module EEPROM params.
2452
2453      attribute-set: module-eeprom
2454
2455      do: &module-eeprom-get-op
2456        request:
2457          attributes:
2458            - header
2459            - offset
2460            - length
2461            - page
2462            - bank
2463            - i2c-address
2464        reply:
2465          attributes:
2466            - header
2467            - data
2468      dump: *module-eeprom-get-op
2469    -
2470      name: stats-get
2471      doc: Get statistics.
2472
2473      attribute-set: stats
2474
2475      do: &stats-get-op
2476        request:
2477          attributes:
2478            - header
2479            - groups
2480        reply:
2481          attributes:
2482            - header
2483            - groups
2484            - grp
2485            - src
2486      dump: *stats-get-op
2487    -
2488      name: phc-vclocks-get
2489      doc: Get PHC VCLOCKs.
2490
2491      attribute-set: phc-vclocks
2492
2493      do: &phc-vclocks-get-op
2494        request:
2495          attributes:
2496            - header
2497        reply:
2498          attributes:
2499            - header
2500            - num
2501      dump: *phc-vclocks-get-op
2502    -
2503      name: module-get
2504      doc: Get module params.
2505
2506      attribute-set: module
2507
2508      do: &module-get-op
2509        request:
2510          attributes:
2511            - header
2512        reply:
2513          attributes: &module
2514            - header
2515            - power-mode-policy
2516            - power-mode
2517      dump: *module-get-op
2518    -
2519      name: module-set
2520      doc: Set module params.
2521
2522      attribute-set: module
2523
2524      do:
2525        request:
2526          attributes: *module
2527    -
2528      name: module-ntf
2529      doc: Notification for change in module params.
2530      notify: module-get
2531    -
2532      name: pse-get
2533      doc: Get Power Sourcing Equipment params.
2534
2535      attribute-set: pse
2536
2537      do: &pse-get-op
2538        request:
2539          attributes:
2540            - header
2541        reply:
2542          attributes:
2543            - header
2544            - podl-pse-admin-state
2545            - podl-pse-admin-control
2546            - podl-pse-pw-d-status
2547            - c33-pse-admin-state
2548            - c33-pse-admin-control
2549            - c33-pse-pw-d-status
2550            - c33-pse-pw-class
2551            - c33-pse-actual-pw
2552            - c33-pse-ext-state
2553            - c33-pse-ext-substate
2554            - c33-pse-avail-pw-limit
2555            - c33-pse-pw-limit-ranges
2556            - pse-pw-d-id
2557            - pse-prio-max
2558            - pse-prio
2559      dump: *pse-get-op
2560    -
2561      name: pse-set
2562      doc: Set Power Sourcing Equipment params.
2563
2564      attribute-set: pse
2565
2566      do:
2567        request:
2568          attributes:
2569            - header
2570            - podl-pse-admin-control
2571            - c33-pse-admin-control
2572            - c33-pse-avail-pw-limit
2573            - pse-prio
2574    -
2575      name: rss-get
2576      doc: Get RSS params.
2577
2578      attribute-set: rss
2579
2580      do:
2581        request:
2582          attributes:
2583            - header
2584            - context
2585        reply: &rss-reply
2586          attributes:
2587            - header
2588            - context
2589            - hfunc
2590            - indir
2591            - hkey
2592            - input-xfrm
2593            - flow-hash
2594      dump:
2595        request:
2596          attributes:
2597            - header
2598            - start-context
2599        reply: *rss-reply
2600    -
2601      name: plca-get-cfg
2602      doc: Get PLCA params.
2603
2604      attribute-set: plca
2605
2606      do: &plca-get-op
2607        request:
2608          attributes:
2609            - header
2610        reply:
2611          attributes: &plca
2612            - header
2613            - version
2614            - enabled
2615            - status
2616            - node-cnt
2617            - node-id
2618            - to-tmr
2619            - burst-cnt
2620            - burst-tmr
2621      dump: *plca-get-op
2622    -
2623      name: plca-set-cfg
2624      doc: Set PLCA params.
2625
2626      attribute-set: plca
2627
2628      do:
2629        request:
2630          attributes: *plca
2631    -
2632      name: plca-get-status
2633      doc: Get PLCA status params.
2634
2635      attribute-set: plca
2636
2637      do: &plca-get-status-op
2638        request:
2639          attributes:
2640            - header
2641        reply:
2642          attributes: *plca
2643      dump: *plca-get-status-op
2644    -
2645      name: plca-ntf
2646      doc: Notification for change in PLCA params.
2647      notify: plca-get-cfg
2648    -
2649      name: mm-get
2650      doc: Get MAC Merge configuration and state
2651
2652      attribute-set: mm
2653
2654      do: &mm-get-op
2655        request:
2656          attributes:
2657            - header
2658        reply:
2659          attributes:
2660            - header
2661            - pmac-enabled
2662            - tx-enabled
2663            - tx-active
2664            - tx-min-frag-size
2665            - rx-min-frag-size
2666            - verify-enabled
2667            - verify-time
2668            - max-verify-time
2669            - stats
2670      dump: *mm-get-op
2671    -
2672      name: mm-set
2673      doc: Set MAC Merge configuration
2674
2675      attribute-set: mm
2676
2677      do:
2678        request:
2679          attributes:
2680            - header
2681            - verify-enabled
2682            - verify-time
2683            - tx-enabled
2684            - pmac-enabled
2685            - tx-min-frag-size
2686    -
2687      name: mm-ntf
2688      doc: Notification for change in MAC Merge configuration.
2689      notify: mm-get
2690    -
2691      name: module-fw-flash-act
2692      doc: Flash transceiver module firmware.
2693
2694      attribute-set: module-fw-flash
2695
2696      do:
2697        request:
2698          attributes:
2699            - header
2700            - file-name
2701            - password
2702    -
2703      name: module-fw-flash-ntf
2704      doc: Notification for firmware flashing progress and status.
2705
2706      attribute-set: module-fw-flash
2707
2708      event:
2709        attributes:
2710          - header
2711          - status
2712          - status-msg
2713          - done
2714          - total
2715    -
2716      name: phy-get
2717      doc: Get PHY devices attached to an interface
2718
2719      attribute-set: phy
2720
2721      do: &phy-get-op
2722        request:
2723          attributes:
2724            - header
2725        reply:
2726          attributes:
2727            - header
2728            - index
2729            - drvname
2730            - name
2731            - upstream-type
2732            - upstream-index
2733            - upstream-sfp-name
2734            - downstream-sfp-name
2735      dump: *phy-get-op
2736    -
2737      name: phy-ntf
2738      doc: Notification for change in PHY devices.
2739      notify: phy-get
2740    -
2741      name: tsconfig-get
2742      doc: Get hwtstamp config.
2743
2744      attribute-set: tsconfig
2745
2746      do: &tsconfig-get-op
2747        request:
2748          attributes:
2749            - header
2750        reply:
2751          attributes: &tsconfig
2752            - header
2753            - hwtstamp-provider
2754            - tx-types
2755            - rx-filters
2756            - hwtstamp-flags
2757      dump: *tsconfig-get-op
2758    -
2759      name: tsconfig-set
2760      doc: Set hwtstamp config.
2761
2762      attribute-set: tsconfig
2763
2764      do:
2765        request:
2766          attributes: *tsconfig
2767        reply:
2768          attributes: *tsconfig
2769    -
2770      name: pse-ntf
2771      doc: Notification for PSE events.
2772
2773      attribute-set: pse-ntf
2774
2775      event:
2776        attributes:
2777          - header
2778          - events
2779    -
2780      name: rss-set
2781      doc: Set RSS params.
2782
2783      attribute-set: rss
2784
2785      do:
2786        request:
2787          attributes:
2788            - header
2789            - context
2790            - hfunc
2791            - indir
2792            - hkey
2793            - input-xfrm
2794            - flow-hash
2795    -
2796      name: rss-ntf
2797      doc: |
2798        Notification for change in RSS configuration.
2799        For additional contexts only modifications use this notification,
2800        creation and deletion have dedicated messages.
2801      notify: rss-get
2802    -
2803      name: rss-create-act
2804      doc: Create an RSS context.
2805      attribute-set: rss
2806      do:
2807        request: &rss-create-attrs
2808          attributes:
2809            - header
2810            - context
2811            - hfunc
2812            - indir
2813            - hkey
2814            - input-xfrm
2815        reply: *rss-create-attrs
2816    -
2817      name: rss-create-ntf
2818      doc: |
2819        Notification for creation of an additional RSS context.
2820      notify: rss-create-act
2821    -
2822      name: rss-delete-act
2823      doc: Delete an RSS context.
2824      attribute-set: rss
2825      do:
2826        request:
2827          attributes:
2828            - header
2829            - context
2830    -
2831      name: rss-delete-ntf
2832      doc: |
2833        Notification for deletion of an additional RSS context.
2834      attribute-set: rss
2835      event:
2836        attributes:
2837          - header
2838          - context
2839    -
2840      name: mse-get
2841      doc: Get PHY MSE measurement data and capabilities.
2842      attribute-set: mse
2843      do: &mse-get-op
2844        request:
2845          attributes:
2846            - header
2847        reply:
2848          attributes:
2849            - header
2850            - capabilities
2851            - channel-a
2852            - channel-b
2853            - channel-c
2854            - channel-d
2855            - worst-channel
2856            - link
2857      dump: *mse-get-op
2858
2859mcast-groups:
2860  list:
2861    -
2862      name: monitor
2863      c-define-name: ethtool-mcgrp-monitor-name
2864