GNU Linux-libre 6.9.1-gnu
[releases.git] / Documentation / netlink / specs / devlink.yaml
1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3 name: devlink
4
5 protocol: genetlink-legacy
6
7 doc: Partial family for Devlink.
8
9 definitions:
10   -
11     type: enum
12     name: sb-pool-type
13     entries:
14       -
15         name: ingress
16       -
17         name: egress
18   -
19     type: enum
20     name: port-type
21     entries:
22       -
23         name: notset
24       -
25         name: auto
26       -
27         name: eth
28       -
29         name: ib
30   -
31     type: enum
32     name: port-flavour
33     entries:
34       -
35         name: physical
36       -
37         name: cpu
38       -
39         name: dsa
40       -
41         name: pci_pf
42       -
43         name: pci_vf
44       -
45         name: virtual
46       -
47         name: unused
48       -
49         name: pci_sf
50   -
51     type: enum
52     name: port-fn-state
53     entries:
54       -
55         name: inactive
56       -
57         name: active
58   -
59     type: enum
60     name: port-fn-opstate
61     entries:
62       -
63         name: detached
64       -
65         name: attached
66   -
67     type: enum
68     name: port-fn-attr-cap
69     entries:
70       -
71         name: roce-bit
72       -
73         name: migratable-bit
74       -
75         name: ipsec-crypto-bit
76       -
77         name: ipsec-packet-bit
78   -
79     type: enum
80     name: rate-type
81     entries:
82       -
83         name: leaf
84       -
85         name: node
86   -
87     type: enum
88     name: sb-threshold-type
89     entries:
90       -
91         name: static
92       -
93         name: dynamic
94   -
95     type: enum
96     name: eswitch-mode
97     entries:
98       -
99         name: legacy
100       -
101         name: switchdev
102   -
103     type: enum
104     name: eswitch-inline-mode
105     entries:
106       -
107         name: none
108       -
109         name: link
110       -
111         name: network
112       -
113         name: transport
114   -
115     type: enum
116     name: eswitch-encap-mode
117     entries:
118       -
119         name: none
120       -
121         name: basic
122   -
123     type: enum
124     name: dpipe-header-id
125     entries:
126       -
127         name: ethernet
128       -
129         name: ipv4
130       -
131         name: ipv6
132   -
133     type: enum
134     name: dpipe-match-type
135     entries:
136       -
137         name: field-exact
138   -
139     type: enum
140     name: dpipe-action-type
141     entries:
142       -
143         name: field-modify
144   -
145     type: enum
146     name: dpipe-field-mapping-type
147     entries:
148       -
149         name: none
150       -
151         name: ifindex
152   -
153     type: enum
154     name: resource-unit
155     entries:
156       -
157         name: entry
158   -
159     type: enum
160     name: reload-action
161     entries:
162       -
163         name: driver-reinit
164         value: 1
165       -
166         name: fw-activate
167   -
168     type: enum
169     name: param-cmode
170     entries:
171       -
172         name: runtime
173       -
174         name: driverinit
175       -
176         name: permanent
177   -
178     type: enum
179     name: flash-overwrite
180     entries:
181       -
182         name: settings-bit
183       -
184         name: identifiers-bit
185   -
186     type: enum
187     name: trap-action
188     entries:
189       -
190         name: drop
191       -
192         name: trap
193       -
194         name: mirror
195   -
196     type: enum
197     name: trap-type
198     entries:
199       -
200         name: drop
201       -
202         name: exception
203       -
204         name: control
205
206 attribute-sets:
207   -
208     name: devlink
209     name-prefix: devlink-attr-
210     attributes:
211       -
212         name: bus-name
213         type: string
214         value: 1
215       -
216         name: dev-name
217         type: string
218       -
219         name: port-index
220         type: u32
221       -
222         name: port-type
223         type: u16
224         enum: port-type
225       -
226         name: port-desired-type
227         type: u16
228       -
229         name: port-netdev-ifindex
230         type: u32
231       -
232         name: port-netdev-name
233         type: string
234       -
235         name: port-ibdev-name
236         type: string
237       -
238         name: port-split-count
239         type: u32
240       -
241         name: port-split-group
242         type: u32
243       -
244         name: sb-index
245         type: u32
246       -
247         name: sb-size
248         type: u32
249       -
250         name: sb-ingress-pool-count
251         type: u16
252       -
253         name: sb-egress-pool-count
254         type: u16
255       -
256         name: sb-ingress-tc-count
257         type: u16
258       -
259         name: sb-egress-tc-count
260         type: u16
261       -
262         name: sb-pool-index
263         type: u16
264       -
265         name: sb-pool-type
266         type: u8
267         enum: sb-pool-type
268       -
269         name: sb-pool-size
270         type: u32
271       -
272         name: sb-pool-threshold-type
273         type: u8
274         enum: sb-threshold-type
275       -
276         name: sb-threshold
277         type: u32
278       -
279         name: sb-tc-index
280         type: u16
281       -
282         name: sb-occ-cur
283         type: u32
284       -
285         name: sb-occ-max
286         type: u32
287       -
288         name: eswitch-mode
289         type: u16
290         enum: eswitch-mode
291       -
292         name: eswitch-inline-mode
293         type: u8
294         enum: eswitch-inline-mode
295       -
296         name: dpipe-tables
297         type: nest
298         nested-attributes: dl-dpipe-tables
299       -
300         name: dpipe-table
301         type: nest
302         multi-attr: true
303         nested-attributes: dl-dpipe-table
304       -
305         name: dpipe-table-name
306         type: string
307       -
308         name: dpipe-table-size
309         type: u64
310       -
311         name: dpipe-table-matches
312         type: nest
313         nested-attributes: dl-dpipe-table-matches
314       -
315         name: dpipe-table-actions
316         type: nest
317         nested-attributes: dl-dpipe-table-actions
318       -
319         name: dpipe-table-counters-enabled
320         type: u8
321       -
322         name: dpipe-entries
323         type: nest
324         nested-attributes: dl-dpipe-entries
325       -
326         name: dpipe-entry
327         type: nest
328         multi-attr: true
329         nested-attributes: dl-dpipe-entry
330       -
331         name: dpipe-entry-index
332         type: u64
333       -
334         name: dpipe-entry-match-values
335         type: nest
336         nested-attributes: dl-dpipe-entry-match-values
337       -
338         name: dpipe-entry-action-values
339         type: nest
340         nested-attributes: dl-dpipe-entry-action-values
341       -
342         name: dpipe-entry-counter
343         type: u64
344       -
345         name: dpipe-match
346         type: nest
347         multi-attr: true
348         nested-attributes: dl-dpipe-match
349       -
350         name: dpipe-match-value
351         type: nest
352         multi-attr: true
353         nested-attributes: dl-dpipe-match-value
354       -
355         name: dpipe-match-type
356         type: u32
357         enum: dpipe-match-type
358       -
359         name: dpipe-action
360         type: nest
361         multi-attr: true
362         nested-attributes: dl-dpipe-action
363       -
364         name: dpipe-action-value
365         type: nest
366         multi-attr: true
367         nested-attributes: dl-dpipe-action-value
368       -
369         name: dpipe-action-type
370         type: u32
371         enum: dpipe-action-type
372       -
373         name: dpipe-value
374         type: binary
375       -
376         name: dpipe-value-mask
377         type: binary
378       -
379         name: dpipe-value-mapping
380         type: u32
381       -
382         name: dpipe-headers
383         type: nest
384         nested-attributes: dl-dpipe-headers
385       -
386         name: dpipe-header
387         type: nest
388         multi-attr: true
389         nested-attributes: dl-dpipe-header
390       -
391         name: dpipe-header-name
392         type: string
393       -
394         name: dpipe-header-id
395         type: u32
396         enum: dpipe-header-id
397       -
398         name: dpipe-header-fields
399         type: nest
400         nested-attributes: dl-dpipe-header-fields
401       -
402         name: dpipe-header-global
403         type: u8
404       -
405         name: dpipe-header-index
406         type: u32
407       -
408         name: dpipe-field
409         type: nest
410         multi-attr: true
411         nested-attributes: dl-dpipe-field
412       -
413         name: dpipe-field-name
414         type: string
415       -
416         name: dpipe-field-id
417         type: u32
418       -
419         name: dpipe-field-bitwidth
420         type: u32
421       -
422         name: dpipe-field-mapping-type
423         type: u32
424         enum: dpipe-field-mapping-type
425       -
426         name: pad
427         type: pad
428       -
429         name: eswitch-encap-mode
430         type: u8
431         enum: eswitch-encap-mode
432       -
433         name: resource-list
434         type: nest
435         nested-attributes: dl-resource-list
436       -
437         name: resource
438         type: nest
439         multi-attr: true
440         nested-attributes: dl-resource
441       -
442         name: resource-name
443         type: string
444       -
445         name: resource-id
446         type: u64
447       -
448         name: resource-size
449         type: u64
450       -
451         name: resource-size-new
452         type: u64
453       -
454         name: resource-size-valid
455         type: u8
456       -
457         name: resource-size-min
458         type: u64
459       -
460         name: resource-size-max
461         type: u64
462       -
463         name: resource-size-gran
464         type: u64
465       -
466         name: resource-unit
467         type: u8
468         enum: resource-unit
469       -
470         name: resource-occ
471         type: u64
472       -
473         name: dpipe-table-resource-id
474         type: u64
475       -
476         name: dpipe-table-resource-units
477         type: u64
478       -
479         name: port-flavour
480         type: u16
481         enum: port-flavour
482       -
483         name: port-number
484         type: u32
485       -
486         name: port-split-subport-number
487         type: u32
488       -
489         name: param
490         type: nest
491         nested-attributes: dl-param
492       -
493         name: param-name
494         type: string
495       -
496         name: param-generic
497         type: flag
498       -
499         name: param-type
500         type: u8
501
502       # TODO: fill in the attributes in between
503
504       -
505         name: param-value-cmode
506         type: u8
507         enum: param-cmode
508         value: 87
509       -
510         name: region-name
511         type: string
512       -
513         name: region-size
514         type: u64
515       -
516         name: region-snapshots
517         type: nest
518         nested-attributes: dl-region-snapshots
519       -
520         name: region-snapshot
521         type: nest
522         nested-attributes: dl-region-snapshot
523       -
524         name: region-snapshot-id
525         type: u32
526       -
527         name: region-chunks
528         type: nest
529         nested-attributes: dl-region-chunks
530       -
531         name: region-chunk
532         type: nest
533         nested-attributes: dl-region-chunk
534       -
535         name: region-chunk-data
536         type: binary
537       -
538         name: region-chunk-addr
539         type: u64
540       -
541         name: region-chunk-len
542         type: u64
543       -
544         name: info-driver-name
545         type: string
546       -
547         name: info-serial-number
548         type: string
549       -
550         name: info-version-fixed
551         type: nest
552         multi-attr: true
553         nested-attributes: dl-info-version
554       -
555         name: info-version-running
556         type: nest
557         multi-attr: true
558         nested-attributes: dl-info-version
559       -
560         name: info-version-stored
561         type: nest
562         multi-attr: true
563         nested-attributes: dl-info-version
564       -
565         name: info-version-name
566         type: string
567       -
568         name: info-version-value
569         type: string
570       -
571         name: sb-pool-cell-size
572         type: u32
573       -
574         name: fmsg
575         type: nest
576         nested-attributes: dl-fmsg
577       -
578         name: fmsg-obj-nest-start
579         type: flag
580       -
581         name: fmsg-pair-nest-start
582         type: flag
583       -
584         name: fmsg-arr-nest-start
585         type: flag
586       -
587         name: fmsg-nest-end
588         type: flag
589       -
590         name: fmsg-obj-name
591         type: string
592       -
593         name: fmsg-obj-value-type
594         type: u8
595
596       # TODO: fill in the attributes in between
597
598       -
599         name: health-reporter
600         type: nest
601         value: 114
602         nested-attributes: dl-health-reporter
603       -
604         name: health-reporter-name
605         type: string
606       -
607         name: health-reporter-state
608         type: u8
609       -
610         name: health-reporter-err-count
611         type: u64
612       -
613         name: health-reporter-recover-count
614         type: u64
615       -
616         name: health-reporter-dump-ts
617         type: u64
618       -
619         name: health-reporter-graceful-period
620         type: u64
621       -
622         name: health-reporter-auto-recover
623         type: u8
624       -
625         name: flash-update-file-name
626         type: string
627       -
628         name: flash-update-component
629         type: string
630       -
631         name: flash-update-status-msg
632         type: string
633       -
634         name: flash-update-status-done
635         type: u64
636       -
637         name: flash-update-status-total
638         type: u64
639       -
640         name: port-pci-pf-number
641         type: u16
642       -
643         name: port-pci-vf-number
644         type: u16
645       -
646         name: stats
647         type: nest
648         nested-attributes: dl-attr-stats
649       -
650         name: trap-name
651         type: string
652       -
653         name: trap-action
654         type: u8
655         enum: trap-action
656       -
657         name: trap-type
658         type: u8
659         enum: trap-type
660       -
661         name: trap-generic
662         type: flag
663       -
664         name: trap-metadata
665         type: nest
666         nested-attributes: dl-trap-metadata
667       -
668         name: trap-group-name
669         type: string
670       -
671         name: reload-failed
672         type: u8
673       -
674         name: health-reporter-dump-ts-ns
675         type: u64
676       -
677         name: netns-fd
678         type: u32
679       -
680         name: netns-pid
681         type: u32
682       -
683         name: netns-id
684         type: u32
685       -
686         name: health-reporter-auto-dump
687         type: u8
688       -
689         name: trap-policer-id
690         type: u32
691       -
692         name: trap-policer-rate
693         type: u64
694       -
695         name: trap-policer-burst
696         type: u64
697       -
698         name: port-function
699         type: nest
700         nested-attributes: dl-port-function
701       -
702         name: info-board-serial-number
703         type: string
704       -
705         name: port-lanes
706         type: u32
707       -
708         name: port-splittable
709         type: u8
710       -
711         name: port-external
712         type: u8
713       -
714         name: port-controller-number
715         type: u32
716       -
717         name: flash-update-status-timeout
718         type: u64
719       -
720         name: flash-update-overwrite-mask
721         type: bitfield32
722         enum: flash-overwrite
723         enum-as-flags: True
724       -
725         name: reload-action
726         type: u8
727         enum: reload-action
728       -
729         name: reload-actions-performed
730         type: bitfield32
731         enum: reload-action
732         enum-as-flags: True
733       -
734         name: reload-limits
735         type: bitfield32
736         enum: reload-action
737         enum-as-flags: True
738       -
739         name: dev-stats
740         type: nest
741         nested-attributes: dl-dev-stats
742       -
743         name: reload-stats
744         type: nest
745         nested-attributes: dl-reload-stats
746       -
747         name: reload-stats-entry
748         type: nest
749         multi-attr: true
750         nested-attributes: dl-reload-stats-entry
751       -
752         name: reload-stats-limit
753         type: u8
754       -
755         name: reload-stats-value
756         type: u32
757       -
758         name: remote-reload-stats
759         type: nest
760         nested-attributes: dl-reload-stats
761       -
762         name: reload-action-info
763         type: nest
764         multi-attr: true
765         nested-attributes: dl-reload-act-info
766       -
767         name: reload-action-stats
768         type: nest
769         multi-attr: true
770         nested-attributes: dl-reload-act-stats
771       -
772         name: port-pci-sf-number
773         type: u32
774       -
775         name: rate-type
776         type: u16
777         enum: rate-type
778       -
779         name: rate-tx-share
780         type: u64
781       -
782         name: rate-tx-max
783         type: u64
784       -
785         name: rate-node-name
786         type: string
787       -
788         name: rate-parent-node-name
789         type: string
790       -
791          name: region-max-snapshots
792          type: u32
793       -
794         name: linecard-index
795         type: u32
796       -
797          name: linecard-state
798          type: u8
799       -
800         name: linecard-type
801         type: string
802       -
803         name: linecard-supported-types
804         type: nest
805         nested-attributes: dl-linecard-supported-types
806
807       # TODO: fill in the attributes in between
808
809       -
810         name: selftests
811         type: nest
812         value: 176
813         nested-attributes: dl-selftest-id
814       -
815         name: rate-tx-priority
816         type: u32
817       -
818         name: rate-tx-weight
819         type: u32
820       -
821         name: region-direct
822         type: flag
823
824   -
825     name: dl-dev-stats
826     subset-of: devlink
827     attributes:
828       -
829         name: reload-stats
830       -
831         name: remote-reload-stats
832
833   -
834     name: dl-reload-stats
835     subset-of: devlink
836     attributes:
837       -
838         name: reload-action-info
839
840   -
841     name: dl-reload-act-info
842     subset-of: devlink
843     attributes:
844       -
845         name: reload-action
846       -
847         name: reload-action-stats
848
849   -
850     name: dl-reload-act-stats
851     subset-of: devlink
852     attributes:
853       -
854         name: reload-stats-entry
855
856   -
857     name: dl-reload-stats-entry
858     subset-of: devlink
859     attributes:
860       -
861         name: reload-stats-limit
862       -
863         name: reload-stats-value
864
865   -
866     name: dl-info-version
867     subset-of: devlink
868     attributes:
869       -
870         name: info-version-name
871       -
872         name: info-version-value
873
874   -
875     name: dl-port-function
876     name-prefix: devlink-port-fn-attr-
877     attr-max-name: devlink-port-function-attr-max
878     attributes:
879       -
880         name-prefix: devlink-port-function-attr-
881         name: hw-addr
882         type: binary
883         value: 1
884       -
885         name: state
886         type: u8
887         enum: port-fn-state
888       -
889         name: opstate
890         type: u8
891         enum: port-fn-opstate
892       -
893         name: caps
894         type: bitfield32
895         enum: port-fn-attr-cap
896         enum-as-flags: True
897
898   -
899     name: dl-dpipe-tables
900     subset-of: devlink
901     attributes:
902       -
903         name: dpipe-table
904
905   -
906     name: dl-dpipe-table
907     subset-of: devlink
908     attributes:
909       -
910         name: dpipe-table-name
911       -
912         name: dpipe-table-size
913       -
914         name: dpipe-table-name
915       -
916         name: dpipe-table-size
917       -
918         name: dpipe-table-matches
919       -
920         name: dpipe-table-actions
921       -
922         name: dpipe-table-counters-enabled
923       -
924         name: dpipe-table-resource-id
925       -
926         name: dpipe-table-resource-units
927
928   -
929     name: dl-dpipe-table-matches
930     subset-of: devlink
931     attributes:
932       -
933         name: dpipe-match
934
935   -
936     name: dl-dpipe-table-actions
937     subset-of: devlink
938     attributes:
939       -
940         name: dpipe-action
941
942   -
943     name: dl-dpipe-entries
944     subset-of: devlink
945     attributes:
946       -
947         name: dpipe-entry
948
949   -
950     name: dl-dpipe-entry
951     subset-of: devlink
952     attributes:
953       -
954         name: dpipe-entry-index
955       -
956         name: dpipe-entry-match-values
957       -
958         name: dpipe-entry-action-values
959       -
960         name: dpipe-entry-counter
961
962   -
963     name: dl-dpipe-entry-match-values
964     subset-of: devlink
965     attributes:
966       -
967         name: dpipe-match-value
968
969   -
970     name: dl-dpipe-entry-action-values
971     subset-of: devlink
972     attributes:
973       -
974         name: dpipe-action-value
975
976   -
977     name: dl-dpipe-match
978     subset-of: devlink
979     attributes:
980       -
981         name: dpipe-match-type
982       -
983         name: dpipe-header-id
984       -
985         name: dpipe-header-global
986       -
987         name: dpipe-header-index
988       -
989         name: dpipe-field-id
990
991   -
992     name: dl-dpipe-match-value
993     subset-of: devlink
994     attributes:
995       -
996         name: dpipe-match
997       -
998         name: dpipe-value
999       -
1000         name: dpipe-value-mask
1001       -
1002         name: dpipe-value-mapping
1003
1004   -
1005     name: dl-dpipe-action
1006     subset-of: devlink
1007     attributes:
1008       -
1009         name: dpipe-action-type
1010       -
1011         name: dpipe-header-id
1012       -
1013         name: dpipe-header-global
1014       -
1015         name: dpipe-header-index
1016       -
1017         name: dpipe-field-id
1018
1019   -
1020     name: dl-dpipe-action-value
1021     subset-of: devlink
1022     attributes:
1023       -
1024         name: dpipe-action
1025       -
1026         name: dpipe-value
1027       -
1028         name: dpipe-value-mask
1029       -
1030         name: dpipe-value-mapping
1031
1032   -
1033     name: dl-dpipe-headers
1034     subset-of: devlink
1035     attributes:
1036       -
1037         name: dpipe-header
1038
1039   -
1040     name: dl-dpipe-header
1041     subset-of: devlink
1042     attributes:
1043       -
1044         name: dpipe-header-name
1045       -
1046         name: dpipe-header-id
1047       -
1048         name: dpipe-header-global
1049       -
1050         name: dpipe-header-fields
1051
1052   -
1053     name: dl-dpipe-header-fields
1054     subset-of: devlink
1055     attributes:
1056       -
1057         name: dpipe-field
1058
1059   -
1060     name: dl-dpipe-field
1061     subset-of: devlink
1062     attributes:
1063       -
1064         name: dpipe-field-name
1065       -
1066         name: dpipe-field-id
1067       -
1068         name: dpipe-field-bitwidth
1069       -
1070         name: dpipe-field-mapping-type
1071
1072   -
1073     name: dl-resource
1074     subset-of: devlink
1075     attributes:
1076       # -
1077       # name: resource-list
1078       # This is currently unsupported due to circular dependency
1079       -
1080         name: resource-name
1081       -
1082         name: resource-id
1083       -
1084         name: resource-size
1085       -
1086         name: resource-size-new
1087       -
1088         name: resource-size-valid
1089       -
1090         name: resource-size-min
1091       -
1092         name: resource-size-max
1093       -
1094         name: resource-size-gran
1095       -
1096         name: resource-unit
1097       -
1098         name: resource-occ
1099
1100   -
1101     name: dl-resource-list
1102     subset-of: devlink
1103     attributes:
1104       -
1105         name: resource
1106
1107   -
1108     name: dl-param
1109     subset-of: devlink
1110     attributes:
1111       -
1112         name: param-name
1113       -
1114         name: param-generic
1115       -
1116         name: param-type
1117
1118       # TODO: fill in the attribute param-value-list
1119
1120   -
1121     name: dl-region-snapshots
1122     subset-of: devlink
1123     attributes:
1124       -
1125         name: region-snapshot
1126
1127   -
1128     name: dl-region-snapshot
1129     subset-of: devlink
1130     attributes:
1131       -
1132         name: region-snapshot-id
1133
1134   -
1135     name: dl-region-chunks
1136     subset-of: devlink
1137     attributes:
1138       -
1139         name: region-chunk
1140
1141   -
1142     name: dl-region-chunk
1143     subset-of: devlink
1144     attributes:
1145       -
1146         name: region-chunk-data
1147       -
1148         name: region-chunk-addr
1149
1150   -
1151     name: dl-fmsg
1152     subset-of: devlink
1153     attributes:
1154       -
1155         name: fmsg-obj-nest-start
1156       -
1157         name: fmsg-pair-nest-start
1158       -
1159         name: fmsg-arr-nest-start
1160       -
1161         name: fmsg-nest-end
1162       -
1163         name: fmsg-obj-name
1164
1165   -
1166     name: dl-health-reporter
1167     subset-of: devlink
1168     attributes:
1169       -
1170         name: health-reporter-name
1171       -
1172         name: health-reporter-state
1173       -
1174         name: health-reporter-err-count
1175       -
1176         name: health-reporter-recover-count
1177       -
1178         name: health-reporter-graceful-period
1179       -
1180         name: health-reporter-auto-recover
1181       -
1182         name: health-reporter-dump-ts
1183       -
1184         name: health-reporter-dump-ts-ns
1185       -
1186         name: health-reporter-auto-dump
1187
1188   -
1189     name: dl-attr-stats
1190     name-prefix: devlink-attr-
1191     attributes:
1192       - name: stats-rx-packets
1193         type: u64
1194         value: 0
1195       -
1196         name: stats-rx-bytes
1197         type: u64
1198       -
1199         name: stats-rx-dropped
1200         type: u64
1201
1202   -
1203     name: dl-trap-metadata
1204     name-prefix: devlink-attr-
1205     attributes:
1206       -
1207         name: trap-metadata-type-in-port
1208         type: flag
1209         value: 0
1210       -
1211         name: trap-metadata-type-fa-cookie
1212         type: flag
1213
1214   -
1215     name: dl-linecard-supported-types
1216     subset-of: devlink
1217     attributes:
1218       -
1219         name: linecard-type
1220
1221   -
1222     name: dl-selftest-id
1223     name-prefix: devlink-attr-selftest-id-
1224     attributes:
1225       -
1226         name: flash
1227         type: flag
1228
1229 operations:
1230   enum-model: directional
1231   list:
1232     -
1233       name: get
1234       doc: Get devlink instances.
1235       attribute-set: devlink
1236       dont-validate: [ strict, dump ]
1237       do:
1238         pre: devlink-nl-pre-doit
1239         post: devlink-nl-post-doit
1240         request:
1241           value: 1
1242           attributes: &dev-id-attrs
1243             - bus-name
1244             - dev-name
1245         reply:  &get-reply
1246           value: 3
1247           attributes:
1248             - bus-name
1249             - dev-name
1250             - reload-failed
1251             - dev-stats
1252       dump:
1253         reply: *get-reply
1254
1255     -
1256       name: port-get
1257       doc: Get devlink port instances.
1258       attribute-set: devlink
1259       dont-validate: [ strict ]
1260       do:
1261         pre: devlink-nl-pre-doit-port
1262         post: devlink-nl-post-doit
1263         request:
1264           value: 5
1265           attributes: &port-id-attrs
1266             - bus-name
1267             - dev-name
1268             - port-index
1269         reply:
1270           value: 7
1271           attributes: *port-id-attrs
1272       dump:
1273         request:
1274           attributes: *dev-id-attrs
1275         reply:
1276           value: 3  # due to a bug, port dump returns DEVLINK_CMD_NEW
1277           attributes: *port-id-attrs
1278
1279     -
1280       name: port-set
1281       doc: Set devlink port instances.
1282       attribute-set: devlink
1283       dont-validate: [ strict ]
1284       flags: [ admin-perm ]
1285       do:
1286         pre: devlink-nl-pre-doit-port
1287         post: devlink-nl-post-doit
1288         request:
1289           attributes:
1290             - bus-name
1291             - dev-name
1292             - port-index
1293             - port-type
1294             - port-function
1295
1296     -
1297       name: port-new
1298       doc: Create devlink port instances.
1299       attribute-set: devlink
1300       dont-validate: [ strict ]
1301       flags: [ admin-perm ]
1302       do:
1303         pre: devlink-nl-pre-doit
1304         post: devlink-nl-post-doit
1305         request:
1306           attributes:
1307             - bus-name
1308             - dev-name
1309             - port-index
1310             - port-flavour
1311             - port-pci-pf-number
1312             - port-pci-sf-number
1313             - port-controller-number
1314         reply:
1315           value: 7
1316           attributes: *port-id-attrs
1317
1318     -
1319       name: port-del
1320       doc: Delete devlink port instances.
1321       attribute-set: devlink
1322       dont-validate: [ strict ]
1323       flags: [ admin-perm ]
1324       do:
1325         pre: devlink-nl-pre-doit-port
1326         post: devlink-nl-post-doit
1327         request:
1328           attributes: *port-id-attrs
1329
1330     -
1331       name: port-split
1332       doc: Split devlink port instances.
1333       attribute-set: devlink
1334       dont-validate: [ strict ]
1335       flags: [ admin-perm ]
1336       do:
1337         pre: devlink-nl-pre-doit-port
1338         post: devlink-nl-post-doit
1339         request:
1340           attributes:
1341             - bus-name
1342             - dev-name
1343             - port-index
1344             - port-split-count
1345
1346     -
1347       name: port-unsplit
1348       doc: Unplit devlink port instances.
1349       attribute-set: devlink
1350       dont-validate: [ strict ]
1351       flags: [ admin-perm ]
1352       do:
1353         pre: devlink-nl-pre-doit-port
1354         post: devlink-nl-post-doit
1355         request:
1356           attributes: *port-id-attrs
1357
1358     -
1359       name: sb-get
1360       doc: Get shared buffer instances.
1361       attribute-set: devlink
1362       dont-validate: [ strict ]
1363       do:
1364         pre: devlink-nl-pre-doit
1365         post: devlink-nl-post-doit
1366         request:
1367           value: 11
1368           attributes: &sb-id-attrs
1369             - bus-name
1370             - dev-name
1371             - sb-index
1372         reply: &sb-get-reply
1373           value: 13
1374           attributes: *sb-id-attrs
1375       dump:
1376         request:
1377           attributes: *dev-id-attrs
1378         reply: *sb-get-reply
1379
1380     -
1381       name: sb-pool-get
1382       doc: Get shared buffer pool instances.
1383       attribute-set: devlink
1384       dont-validate: [ strict ]
1385       do:
1386         pre: devlink-nl-pre-doit
1387         post: devlink-nl-post-doit
1388         request:
1389           value: 15
1390           attributes: &sb-pool-id-attrs
1391             - bus-name
1392             - dev-name
1393             - sb-index
1394             - sb-pool-index
1395         reply: &sb-pool-get-reply
1396           value: 17
1397           attributes: *sb-pool-id-attrs
1398       dump:
1399         request:
1400           attributes: *dev-id-attrs
1401         reply: *sb-pool-get-reply
1402
1403     -
1404       name: sb-pool-set
1405       doc: Set shared buffer pool instances.
1406       attribute-set: devlink
1407       dont-validate: [ strict ]
1408       flags: [ admin-perm ]
1409       do:
1410         pre: devlink-nl-pre-doit
1411         post: devlink-nl-post-doit
1412         request:
1413           attributes:
1414             - bus-name
1415             - dev-name
1416             - sb-index
1417             - sb-pool-index
1418             - sb-pool-threshold-type
1419             - sb-pool-size
1420
1421     -
1422       name: sb-port-pool-get
1423       doc: Get shared buffer port-pool combinations and threshold.
1424       attribute-set: devlink
1425       dont-validate: [ strict ]
1426       do:
1427         pre: devlink-nl-pre-doit-port
1428         post: devlink-nl-post-doit
1429         request:
1430           value: 19
1431           attributes: &sb-port-pool-id-attrs
1432             - bus-name
1433             - dev-name
1434             - port-index
1435             - sb-index
1436             - sb-pool-index
1437         reply: &sb-port-pool-get-reply
1438           value: 21
1439           attributes: *sb-port-pool-id-attrs
1440       dump:
1441         request:
1442           attributes: *dev-id-attrs
1443         reply: *sb-port-pool-get-reply
1444
1445     -
1446       name: sb-port-pool-set
1447       doc: Set shared buffer port-pool combinations and threshold.
1448       attribute-set: devlink
1449       dont-validate: [ strict ]
1450       flags: [ admin-perm ]
1451       do:
1452         pre: devlink-nl-pre-doit-port
1453         post: devlink-nl-post-doit
1454         request:
1455           attributes:
1456             - bus-name
1457             - dev-name
1458             - port-index
1459             - sb-index
1460             - sb-pool-index
1461             - sb-threshold
1462
1463     -
1464       name: sb-tc-pool-bind-get
1465       doc: Get shared buffer port-TC to pool bindings and threshold.
1466       attribute-set: devlink
1467       dont-validate: [ strict ]
1468       do:
1469         pre: devlink-nl-pre-doit-port
1470         post: devlink-nl-post-doit
1471         request:
1472           value: 23
1473           attributes: &sb-tc-pool-bind-id-attrs
1474             - bus-name
1475             - dev-name
1476             - port-index
1477             - sb-index
1478             - sb-pool-type
1479             - sb-tc-index
1480         reply: &sb-tc-pool-bind-get-reply
1481           value: 25
1482           attributes: *sb-tc-pool-bind-id-attrs
1483       dump:
1484         request:
1485           attributes: *dev-id-attrs
1486         reply: *sb-tc-pool-bind-get-reply
1487
1488     -
1489       name: sb-tc-pool-bind-set
1490       doc: Set shared buffer port-TC to pool bindings and threshold.
1491       attribute-set: devlink
1492       dont-validate: [ strict ]
1493       flags: [ admin-perm ]
1494       do:
1495         pre: devlink-nl-pre-doit-port
1496         post: devlink-nl-post-doit
1497         request:
1498           attributes:
1499             - bus-name
1500             - dev-name
1501             - port-index
1502             - sb-index
1503             - sb-pool-index
1504             - sb-pool-type
1505             - sb-tc-index
1506             - sb-threshold
1507
1508     -
1509       name: sb-occ-snapshot
1510       doc: Take occupancy snapshot of shared buffer.
1511       attribute-set: devlink
1512       dont-validate: [ strict ]
1513       flags: [ admin-perm ]
1514       do:
1515         pre: devlink-nl-pre-doit
1516         post: devlink-nl-post-doit
1517         request:
1518           value: 27
1519           attributes:
1520             - bus-name
1521             - dev-name
1522             - sb-index
1523
1524     -
1525       name: sb-occ-max-clear
1526       doc: Clear occupancy watermarks of shared buffer.
1527       attribute-set: devlink
1528       dont-validate: [ strict ]
1529       flags: [ admin-perm ]
1530       do:
1531         pre: devlink-nl-pre-doit
1532         post: devlink-nl-post-doit
1533         request:
1534           attributes:
1535             - bus-name
1536             - dev-name
1537             - sb-index
1538
1539     -
1540       name: eswitch-get
1541       doc: Get eswitch attributes.
1542       attribute-set: devlink
1543       dont-validate: [ strict ]
1544       flags: [ admin-perm ]
1545       do:
1546         pre: devlink-nl-pre-doit
1547         post: devlink-nl-post-doit
1548         request:
1549           attributes: *dev-id-attrs
1550         reply:
1551           value: 29
1552           attributes: &eswitch-attrs
1553             - bus-name
1554             - dev-name
1555             - eswitch-mode
1556             - eswitch-inline-mode
1557             - eswitch-encap-mode
1558
1559     -
1560       name: eswitch-set
1561       doc: Set eswitch attributes.
1562       attribute-set: devlink
1563       dont-validate: [ strict ]
1564       flags: [ admin-perm ]
1565       do:
1566         pre: devlink-nl-pre-doit
1567         post: devlink-nl-post-doit
1568         request:
1569           attributes: *eswitch-attrs
1570
1571     -
1572       name: dpipe-table-get
1573       doc: Get dpipe table attributes.
1574       attribute-set: devlink
1575       dont-validate: [ strict ]
1576       do:
1577         pre: devlink-nl-pre-doit
1578         post: devlink-nl-post-doit
1579         request:
1580           attributes:
1581             - bus-name
1582             - dev-name
1583             - dpipe-table-name
1584         reply:
1585           value: 31
1586           attributes:
1587             - bus-name
1588             - dev-name
1589             - dpipe-tables
1590
1591     -
1592       name: dpipe-entries-get
1593       doc: Get dpipe entries attributes.
1594       attribute-set: devlink
1595       dont-validate: [ strict ]
1596       do:
1597         pre: devlink-nl-pre-doit
1598         post: devlink-nl-post-doit
1599         request:
1600           attributes:
1601             - bus-name
1602             - dev-name
1603             - dpipe-table-name
1604         reply:
1605           attributes:
1606             - bus-name
1607             - dev-name
1608             - dpipe-entries
1609
1610     -
1611       name: dpipe-headers-get
1612       doc: Get dpipe headers attributes.
1613       attribute-set: devlink
1614       dont-validate: [ strict ]
1615       do:
1616         pre: devlink-nl-pre-doit
1617         post: devlink-nl-post-doit
1618         request:
1619           attributes:
1620             - bus-name
1621             - dev-name
1622         reply:
1623           attributes:
1624             - bus-name
1625             - dev-name
1626             - dpipe-headers
1627
1628     -
1629       name: dpipe-table-counters-set
1630       doc: Set dpipe counter attributes.
1631       attribute-set: devlink
1632       dont-validate: [ strict ]
1633       flags: [ admin-perm ]
1634       do:
1635         pre: devlink-nl-pre-doit
1636         post: devlink-nl-post-doit
1637         request:
1638           attributes:
1639             - bus-name
1640             - dev-name
1641             - dpipe-table-name
1642             - dpipe-table-counters-enabled
1643
1644     -
1645       name: resource-set
1646       doc: Set resource attributes.
1647       attribute-set: devlink
1648       dont-validate: [ strict ]
1649       flags: [ admin-perm ]
1650       do:
1651         pre: devlink-nl-pre-doit
1652         post: devlink-nl-post-doit
1653         request:
1654           attributes:
1655             - bus-name
1656             - dev-name
1657             - resource-id
1658             - resource-size
1659
1660     -
1661       name: resource-dump
1662       doc: Get resource attributes.
1663       attribute-set: devlink
1664       dont-validate: [ strict ]
1665       do:
1666         pre: devlink-nl-pre-doit
1667         post: devlink-nl-post-doit
1668         request:
1669           attributes:
1670             - bus-name
1671             - dev-name
1672         reply:
1673           value: 36
1674           attributes:
1675             - bus-name
1676             - dev-name
1677             - resource-list
1678
1679     -
1680       name: reload
1681       doc: Reload devlink.
1682       attribute-set: devlink
1683       dont-validate: [ strict ]
1684       flags: [ admin-perm ]
1685       do:
1686         pre: devlink-nl-pre-doit-dev-lock
1687         post: devlink-nl-post-doit-dev-lock
1688         request:
1689           attributes:
1690             - bus-name
1691             - dev-name
1692             - reload-action
1693             - reload-limits
1694             - netns-pid
1695             - netns-fd
1696             - netns-id
1697         reply:
1698           attributes:
1699             - bus-name
1700             - dev-name
1701             - reload-actions-performed
1702
1703     -
1704       name: param-get
1705       doc: Get param instances.
1706       attribute-set: devlink
1707       dont-validate: [ strict ]
1708       do:
1709         pre: devlink-nl-pre-doit
1710         post: devlink-nl-post-doit
1711         request:
1712           attributes: &param-id-attrs
1713             - bus-name
1714             - dev-name
1715             - param-name
1716         reply: &param-get-reply
1717           attributes: *param-id-attrs
1718       dump:
1719         request:
1720           attributes: *dev-id-attrs
1721         reply: *param-get-reply
1722
1723     -
1724       name: param-set
1725       doc: Set param instances.
1726       attribute-set: devlink
1727       dont-validate: [ strict ]
1728       flags: [ admin-perm ]
1729       do:
1730         pre: devlink-nl-pre-doit
1731         post: devlink-nl-post-doit
1732         request:
1733           attributes:
1734             - bus-name
1735             - dev-name
1736             - param-name
1737             - param-type
1738             # param-value-data is missing here as the type is variable
1739             - param-value-cmode
1740
1741     -
1742       name: region-get
1743       doc: Get region instances.
1744       attribute-set: devlink
1745       dont-validate: [ strict ]
1746       do:
1747         pre: devlink-nl-pre-doit-port-optional
1748         post: devlink-nl-post-doit
1749         request:
1750           value: 42
1751           attributes: &region-id-attrs
1752             - bus-name
1753             - dev-name
1754             - port-index
1755             - region-name
1756         reply: &region-get-reply
1757           value: 42
1758           attributes: *region-id-attrs
1759       dump:
1760         request:
1761           attributes: *dev-id-attrs
1762         reply: *region-get-reply
1763
1764     -
1765       name: region-new
1766       doc: Create region snapshot.
1767       attribute-set: devlink
1768       dont-validate: [ strict ]
1769       flags: [ admin-perm ]
1770       do:
1771         pre: devlink-nl-pre-doit-port-optional
1772         post: devlink-nl-post-doit
1773         request:
1774           value: 44
1775           attributes: &region-snapshot-id-attrs
1776             - bus-name
1777             - dev-name
1778             - port-index
1779             - region-name
1780             - region-snapshot-id
1781         reply:
1782           value: 44
1783           attributes: *region-snapshot-id-attrs
1784
1785     -
1786       name: region-del
1787       doc: Delete region snapshot.
1788       attribute-set: devlink
1789       dont-validate: [ strict ]
1790       flags: [ admin-perm ]
1791       do:
1792         pre: devlink-nl-pre-doit-port-optional
1793         post: devlink-nl-post-doit
1794         request:
1795           attributes: *region-snapshot-id-attrs
1796
1797     -
1798       name: region-read
1799       doc: Read region data.
1800       attribute-set: devlink
1801       dont-validate: [ dump-strict ]
1802       flags: [ admin-perm ]
1803       dump:
1804         request:
1805           attributes:
1806             - bus-name
1807             - dev-name
1808             - port-index
1809             - region-name
1810             - region-snapshot-id
1811             - region-direct
1812             - region-chunk-addr
1813             - region-chunk-len
1814         reply:
1815           value: 46
1816           attributes:
1817             - bus-name
1818             - dev-name
1819             - port-index
1820             - region-name
1821
1822     -
1823       name: port-param-get
1824       doc: Get port param instances.
1825       attribute-set: devlink
1826       dont-validate: [ strict, dump-strict ]
1827       do:
1828         pre: devlink-nl-pre-doit-port
1829         post: devlink-nl-post-doit
1830         request:
1831           attributes: *port-id-attrs
1832         reply:
1833           attributes: *port-id-attrs
1834       dump:
1835         reply:
1836           attributes: *port-id-attrs
1837
1838     -
1839       name: port-param-set
1840       doc: Set port param instances.
1841       attribute-set: devlink
1842       dont-validate: [ strict ]
1843       flags: [ admin-perm ]
1844       do:
1845         pre: devlink-nl-pre-doit-port
1846         post: devlink-nl-post-doit
1847         request:
1848           attributes: *port-id-attrs
1849
1850     -
1851       name: info-get
1852       doc: Get device information, like driver name, hardware and firmware versions etc.
1853       attribute-set: devlink
1854       dont-validate: [ strict, dump ]
1855       do:
1856         pre: devlink-nl-pre-doit
1857         post: devlink-nl-post-doit
1858         request:
1859           value: 51
1860           attributes: *dev-id-attrs
1861         reply: &info-get-reply
1862           value: 51
1863           attributes:
1864             - bus-name
1865             - dev-name
1866             - info-driver-name
1867             - info-serial-number
1868             - info-version-fixed
1869             - info-version-running
1870             - info-version-stored
1871       dump:
1872         reply: *info-get-reply
1873
1874     -
1875       name: health-reporter-get
1876       doc: Get health reporter instances.
1877       attribute-set: devlink
1878       dont-validate: [ strict ]
1879       do:
1880         pre: devlink-nl-pre-doit-port-optional
1881         post: devlink-nl-post-doit
1882         request:
1883           attributes: &health-reporter-id-attrs
1884             - bus-name
1885             - dev-name
1886             - port-index
1887             - health-reporter-name
1888         reply: &health-reporter-get-reply
1889           attributes: *health-reporter-id-attrs
1890       dump:
1891         request:
1892           attributes: *port-id-attrs
1893         reply: *health-reporter-get-reply
1894
1895     -
1896       name: health-reporter-set
1897       doc: Set health reporter instances.
1898       attribute-set: devlink
1899       dont-validate: [ strict ]
1900       flags: [ admin-perm ]
1901       do:
1902         pre: devlink-nl-pre-doit-port-optional
1903         post: devlink-nl-post-doit
1904         request:
1905           attributes:
1906             - bus-name
1907             - dev-name
1908             - port-index
1909             - health-reporter-name
1910             - health-reporter-graceful-period
1911             - health-reporter-auto-recover
1912             - health-reporter-auto-dump
1913
1914     -
1915       name: health-reporter-recover
1916       doc: Recover health reporter instances.
1917       attribute-set: devlink
1918       dont-validate: [ strict ]
1919       flags: [ admin-perm ]
1920       do:
1921         pre: devlink-nl-pre-doit-port-optional
1922         post: devlink-nl-post-doit
1923         request:
1924           attributes: *health-reporter-id-attrs
1925
1926     -
1927       name: health-reporter-diagnose
1928       doc: Diagnose health reporter instances.
1929       attribute-set: devlink
1930       dont-validate: [ strict ]
1931       flags: [ admin-perm ]
1932       do:
1933         pre: devlink-nl-pre-doit-port-optional
1934         post: devlink-nl-post-doit
1935         request:
1936           attributes: *health-reporter-id-attrs
1937
1938     -
1939       name: health-reporter-dump-get
1940       doc: Dump health reporter instances.
1941       attribute-set: devlink
1942       dont-validate: [ dump-strict ]
1943       flags: [ admin-perm ]
1944       dump:
1945         request:
1946           attributes: *health-reporter-id-attrs
1947         reply:
1948           value: 56
1949           attributes:
1950             - fmsg
1951
1952     -
1953       name: health-reporter-dump-clear
1954       doc: Clear dump of health reporter instances.
1955       attribute-set: devlink
1956       dont-validate: [ strict ]
1957       flags: [ admin-perm ]
1958       do:
1959         pre: devlink-nl-pre-doit-port-optional
1960         post: devlink-nl-post-doit
1961         request:
1962           attributes: *health-reporter-id-attrs
1963
1964     -
1965       name: flash-update
1966       doc: Flash update devlink instances.
1967       attribute-set: devlink
1968       dont-validate: [ strict ]
1969       flags: [ admin-perm ]
1970       do:
1971         pre: devlink-nl-pre-doit
1972         post: devlink-nl-post-doit
1973         request:
1974           attributes:
1975             - bus-name
1976             - dev-name
1977             - flash-update-file-name
1978             - flash-update-component
1979             - flash-update-overwrite-mask
1980
1981     -
1982       name: trap-get
1983       doc: Get trap instances.
1984       attribute-set: devlink
1985       dont-validate: [ strict ]
1986       do:
1987         pre: devlink-nl-pre-doit
1988         post: devlink-nl-post-doit
1989         request:
1990           value: 61
1991           attributes: &trap-id-attrs
1992             - bus-name
1993             - dev-name
1994             - trap-name
1995         reply: &trap-get-reply
1996           value: 63
1997           attributes: *trap-id-attrs
1998       dump:
1999         request:
2000           attributes: *dev-id-attrs
2001         reply: *trap-get-reply
2002
2003     -
2004       name: trap-set
2005       doc: Set trap instances.
2006       attribute-set: devlink
2007       dont-validate: [ strict ]
2008       flags: [ admin-perm ]
2009       do:
2010         pre: devlink-nl-pre-doit
2011         post: devlink-nl-post-doit
2012         request:
2013           attributes:
2014             - bus-name
2015             - dev-name
2016             - trap-name
2017             - trap-action
2018
2019     -
2020       name: trap-group-get
2021       doc: Get trap group instances.
2022       attribute-set: devlink
2023       dont-validate: [ strict ]
2024       do:
2025         pre: devlink-nl-pre-doit
2026         post: devlink-nl-post-doit
2027         request:
2028           value: 65
2029           attributes: &trap-group-id-attrs
2030             - bus-name
2031             - dev-name
2032             - trap-group-name
2033         reply: &trap-group-get-reply
2034           value: 67
2035           attributes: *trap-group-id-attrs
2036       dump:
2037         request:
2038           attributes: *dev-id-attrs
2039         reply: *trap-group-get-reply
2040
2041     -
2042       name: trap-group-set
2043       doc: Set trap group instances.
2044       attribute-set: devlink
2045       dont-validate: [ strict ]
2046       flags: [ admin-perm ]
2047       do:
2048         pre: devlink-nl-pre-doit
2049         post: devlink-nl-post-doit
2050         request:
2051           attributes:
2052             - bus-name
2053             - dev-name
2054             - trap-group-name
2055             - trap-action
2056             - trap-policer-id
2057
2058     -
2059       name: trap-policer-get
2060       doc: Get trap policer instances.
2061       attribute-set: devlink
2062       dont-validate: [ strict ]
2063       do:
2064         pre: devlink-nl-pre-doit
2065         post: devlink-nl-post-doit
2066         request:
2067           value: 69
2068           attributes: &trap-policer-id-attrs
2069             - bus-name
2070             - dev-name
2071             - trap-policer-id
2072         reply: &trap-policer-get-reply
2073           value: 71
2074           attributes: *trap-policer-id-attrs
2075       dump:
2076         request:
2077           attributes: *dev-id-attrs
2078         reply: *trap-policer-get-reply
2079
2080     -
2081       name: trap-policer-set
2082       doc: Get trap policer instances.
2083       attribute-set: devlink
2084       dont-validate: [ strict ]
2085       flags: [ admin-perm ]
2086       do:
2087         pre: devlink-nl-pre-doit
2088         post: devlink-nl-post-doit
2089         request:
2090           attributes:
2091             - bus-name
2092             - dev-name
2093             - trap-policer-id
2094             - trap-policer-rate
2095             - trap-policer-burst
2096
2097     -
2098       name: health-reporter-test
2099       doc: Test health reporter instances.
2100       attribute-set: devlink
2101       dont-validate: [ strict ]
2102       flags: [ admin-perm ]
2103       do:
2104         pre: devlink-nl-pre-doit-port-optional
2105         post: devlink-nl-post-doit
2106         request:
2107           value: 73
2108           attributes: *health-reporter-id-attrs
2109
2110     -
2111       name: rate-get
2112       doc: Get rate instances.
2113       attribute-set: devlink
2114       dont-validate: [ strict ]
2115       do:
2116         pre: devlink-nl-pre-doit
2117         post: devlink-nl-post-doit
2118         request:
2119           value: 74
2120           attributes: &rate-id-attrs
2121             - bus-name
2122             - dev-name
2123             - port-index
2124             - rate-node-name
2125         reply: &rate-get-reply
2126           value: 76
2127           attributes: *rate-id-attrs
2128       dump:
2129         request:
2130           attributes: *dev-id-attrs
2131         reply: *rate-get-reply
2132
2133     -
2134       name: rate-set
2135       doc: Set rate instances.
2136       attribute-set: devlink
2137       dont-validate: [ strict ]
2138       flags: [ admin-perm ]
2139       do:
2140         pre: devlink-nl-pre-doit
2141         post: devlink-nl-post-doit
2142         request:
2143           attributes:
2144             - bus-name
2145             - dev-name
2146             - rate-node-name
2147             - rate-tx-share
2148             - rate-tx-max
2149             - rate-tx-priority
2150             - rate-tx-weight
2151             - rate-parent-node-name
2152
2153     -
2154       name: rate-new
2155       doc: Create rate instances.
2156       attribute-set: devlink
2157       dont-validate: [ strict ]
2158       flags: [ admin-perm ]
2159       do:
2160         pre: devlink-nl-pre-doit
2161         post: devlink-nl-post-doit
2162         request:
2163           attributes:
2164             - bus-name
2165             - dev-name
2166             - rate-node-name
2167             - rate-tx-share
2168             - rate-tx-max
2169             - rate-tx-priority
2170             - rate-tx-weight
2171             - rate-parent-node-name
2172
2173     -
2174       name: rate-del
2175       doc: Delete rate instances.
2176       attribute-set: devlink
2177       dont-validate: [ strict ]
2178       flags: [ admin-perm ]
2179       do:
2180         pre: devlink-nl-pre-doit
2181         post: devlink-nl-post-doit
2182         request:
2183           attributes:
2184             - bus-name
2185             - dev-name
2186             - rate-node-name
2187
2188     -
2189       name: linecard-get
2190       doc: Get line card instances.
2191       attribute-set: devlink
2192       dont-validate: [ strict ]
2193       do:
2194         pre: devlink-nl-pre-doit
2195         post: devlink-nl-post-doit
2196         request:
2197           value: 78
2198           attributes: &linecard-id-attrs
2199             - bus-name
2200             - dev-name
2201             - linecard-index
2202         reply: &linecard-get-reply
2203           value: 80
2204           attributes: *linecard-id-attrs
2205       dump:
2206         request:
2207           attributes: *dev-id-attrs
2208         reply: *linecard-get-reply
2209
2210     -
2211       name: linecard-set
2212       doc: Set line card instances.
2213       attribute-set: devlink
2214       dont-validate: [ strict ]
2215       flags: [ admin-perm ]
2216       do:
2217         pre: devlink-nl-pre-doit
2218         post: devlink-nl-post-doit
2219         request:
2220           attributes:
2221             - bus-name
2222             - dev-name
2223             - linecard-index
2224             - linecard-type
2225
2226     -
2227       name: selftests-get
2228       doc: Get device selftest instances.
2229       attribute-set: devlink
2230       dont-validate: [ strict, dump ]
2231       do:
2232         pre: devlink-nl-pre-doit
2233         post: devlink-nl-post-doit
2234         request:
2235           value: 82
2236           attributes: *dev-id-attrs
2237         reply: &selftests-get-reply
2238           value: 82
2239           attributes: *dev-id-attrs
2240       dump:
2241         reply: *selftests-get-reply
2242
2243     -
2244       name: selftests-run
2245       doc: Run device selftest instances.
2246       attribute-set: devlink
2247       dont-validate: [ strict ]
2248       flags: [ admin-perm ]
2249       do:
2250         pre: devlink-nl-pre-doit
2251         post: devlink-nl-post-doit
2252         request:
2253           attributes:
2254             - bus-name
2255             - dev-name
2256             - selftests
2257
2258     -
2259       name: notify-filter-set
2260       doc: Set notification messages socket filter.
2261       attribute-set: devlink
2262       do:
2263         request:
2264           attributes:
2265             - bus-name
2266             - dev-name
2267             - port-index