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