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