xref: /linux/Documentation/netlink/specs/devlink.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: devlink
4
5protocol: genetlink-legacy
6
7doc: Partial family for Devlink.
8
9definitions:
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
206attribute-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
1229operations:
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
2268