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