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