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