xref: /linux/Documentation/netlink/specs/devlink.yaml (revision d8bf56a0ca10af7936de8bbdd510c33041dacecc)
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: rate-tc-index
858        type: u8
859        checks:
860          max: rate-tc-index-max
861      -
862        name: rate-tc-bw
863        type: u32
864        doc: |
865             Specifies the bandwidth share assigned to the Traffic Class.
866             The bandwidth for the traffic class is determined
867             in proportion to the sum of the shares of all configured classes.
868  -
869    name: dl-dev-stats
870    subset-of: devlink
871    attributes:
872      -
873        name: reload-stats
874      -
875        name: remote-reload-stats
876
877  -
878    name: dl-reload-stats
879    subset-of: devlink
880    attributes:
881      -
882        name: reload-action-info
883
884  -
885    name: dl-reload-act-info
886    subset-of: devlink
887    attributes:
888      -
889        name: reload-action
890      -
891        name: reload-action-stats
892
893  -
894    name: dl-reload-act-stats
895    subset-of: devlink
896    attributes:
897      -
898        name: reload-stats-entry
899
900  -
901    name: dl-reload-stats-entry
902    subset-of: devlink
903    attributes:
904      -
905        name: reload-stats-limit
906      -
907        name: reload-stats-value
908
909  -
910    name: dl-info-version
911    subset-of: devlink
912    attributes:
913      -
914        name: info-version-name
915      -
916        name: info-version-value
917
918  -
919    name: dl-port-function
920    name-prefix: devlink-port-fn-attr-
921    attr-max-name: devlink-port-function-attr-max
922    attributes:
923      -
924        name-prefix: devlink-port-function-attr-
925        name: hw-addr
926        type: binary
927        value: 1
928      -
929        name: state
930        type: u8
931        enum: port-fn-state
932      -
933        name: opstate
934        type: u8
935        enum: port-fn-opstate
936      -
937        name: caps
938        type: bitfield32
939        enum: port-fn-attr-cap
940        enum-as-flags: true
941
942  -
943    name: dl-dpipe-tables
944    subset-of: devlink
945    attributes:
946      -
947        name: dpipe-table
948
949  -
950    name: dl-dpipe-table
951    subset-of: devlink
952    attributes:
953      -
954        name: dpipe-table-name
955      -
956        name: dpipe-table-size
957      -
958        name: dpipe-table-name
959      -
960        name: dpipe-table-size
961      -
962        name: dpipe-table-matches
963      -
964        name: dpipe-table-actions
965      -
966        name: dpipe-table-counters-enabled
967      -
968        name: dpipe-table-resource-id
969      -
970        name: dpipe-table-resource-units
971
972  -
973    name: dl-dpipe-table-matches
974    subset-of: devlink
975    attributes:
976      -
977        name: dpipe-match
978
979  -
980    name: dl-dpipe-table-actions
981    subset-of: devlink
982    attributes:
983      -
984        name: dpipe-action
985
986  -
987    name: dl-dpipe-entries
988    subset-of: devlink
989    attributes:
990      -
991        name: dpipe-entry
992
993  -
994    name: dl-dpipe-entry
995    subset-of: devlink
996    attributes:
997      -
998        name: dpipe-entry-index
999      -
1000        name: dpipe-entry-match-values
1001      -
1002        name: dpipe-entry-action-values
1003      -
1004        name: dpipe-entry-counter
1005
1006  -
1007    name: dl-dpipe-entry-match-values
1008    subset-of: devlink
1009    attributes:
1010      -
1011        name: dpipe-match-value
1012
1013  -
1014    name: dl-dpipe-entry-action-values
1015    subset-of: devlink
1016    attributes:
1017      -
1018        name: dpipe-action-value
1019
1020  -
1021    name: dl-dpipe-match
1022    subset-of: devlink
1023    attributes:
1024      -
1025        name: dpipe-match-type
1026      -
1027        name: dpipe-header-id
1028      -
1029        name: dpipe-header-global
1030      -
1031        name: dpipe-header-index
1032      -
1033        name: dpipe-field-id
1034
1035  -
1036    name: dl-dpipe-match-value
1037    subset-of: devlink
1038    attributes:
1039      -
1040        name: dpipe-match
1041      -
1042        name: dpipe-value
1043      -
1044        name: dpipe-value-mask
1045      -
1046        name: dpipe-value-mapping
1047
1048  -
1049    name: dl-dpipe-action
1050    subset-of: devlink
1051    attributes:
1052      -
1053        name: dpipe-action-type
1054      -
1055        name: dpipe-header-id
1056      -
1057        name: dpipe-header-global
1058      -
1059        name: dpipe-header-index
1060      -
1061        name: dpipe-field-id
1062
1063  -
1064    name: dl-dpipe-action-value
1065    subset-of: devlink
1066    attributes:
1067      -
1068        name: dpipe-action
1069      -
1070        name: dpipe-value
1071      -
1072        name: dpipe-value-mask
1073      -
1074        name: dpipe-value-mapping
1075
1076  -
1077    name: dl-dpipe-headers
1078    subset-of: devlink
1079    attributes:
1080      -
1081        name: dpipe-header
1082
1083  -
1084    name: dl-dpipe-header
1085    subset-of: devlink
1086    attributes:
1087      -
1088        name: dpipe-header-name
1089      -
1090        name: dpipe-header-id
1091      -
1092        name: dpipe-header-global
1093      -
1094        name: dpipe-header-fields
1095
1096  -
1097    name: dl-dpipe-header-fields
1098    subset-of: devlink
1099    attributes:
1100      -
1101        name: dpipe-field
1102
1103  -
1104    name: dl-dpipe-field
1105    subset-of: devlink
1106    attributes:
1107      -
1108        name: dpipe-field-name
1109      -
1110        name: dpipe-field-id
1111      -
1112        name: dpipe-field-bitwidth
1113      -
1114        name: dpipe-field-mapping-type
1115
1116  -
1117    name: dl-resource
1118    subset-of: devlink
1119    attributes:
1120      # -
1121      # name: resource-list
1122      # This is currently unsupported due to circular dependency
1123      -
1124        name: resource-name
1125      -
1126        name: resource-id
1127      -
1128        name: resource-size
1129      -
1130        name: resource-size-new
1131      -
1132        name: resource-size-valid
1133      -
1134        name: resource-size-min
1135      -
1136        name: resource-size-max
1137      -
1138        name: resource-size-gran
1139      -
1140        name: resource-unit
1141      -
1142        name: resource-occ
1143
1144  -
1145    name: dl-resource-list
1146    subset-of: devlink
1147    attributes:
1148      -
1149        name: resource
1150
1151  -
1152    name: dl-param
1153    subset-of: devlink
1154    attributes:
1155      -
1156        name: param-name
1157      -
1158        name: param-generic
1159      -
1160        name: param-type
1161
1162        # TODO: fill in the attribute param-value-list
1163
1164  -
1165    name: dl-region-snapshots
1166    subset-of: devlink
1167    attributes:
1168      -
1169        name: region-snapshot
1170
1171  -
1172    name: dl-region-snapshot
1173    subset-of: devlink
1174    attributes:
1175      -
1176        name: region-snapshot-id
1177
1178  -
1179    name: dl-region-chunks
1180    subset-of: devlink
1181    attributes:
1182      -
1183        name: region-chunk
1184
1185  -
1186    name: dl-region-chunk
1187    subset-of: devlink
1188    attributes:
1189      -
1190        name: region-chunk-data
1191      -
1192        name: region-chunk-addr
1193
1194  -
1195    name: dl-fmsg
1196    subset-of: devlink
1197    attributes:
1198      -
1199        name: fmsg-obj-nest-start
1200      -
1201        name: fmsg-pair-nest-start
1202      -
1203        name: fmsg-arr-nest-start
1204      -
1205        name: fmsg-nest-end
1206      -
1207        name: fmsg-obj-name
1208
1209  -
1210    name: dl-health-reporter
1211    subset-of: devlink
1212    attributes:
1213      -
1214        name: health-reporter-name
1215      -
1216        name: health-reporter-state
1217      -
1218        name: health-reporter-err-count
1219      -
1220        name: health-reporter-recover-count
1221      -
1222        name: health-reporter-graceful-period
1223      -
1224        name: health-reporter-auto-recover
1225      -
1226        name: health-reporter-dump-ts
1227      -
1228        name: health-reporter-dump-ts-ns
1229      -
1230        name: health-reporter-auto-dump
1231
1232  -
1233    name: dl-attr-stats
1234    name-prefix: devlink-attr-
1235    attributes:
1236      - name: stats-rx-packets
1237        type: u64
1238        value: 0
1239      -
1240        name: stats-rx-bytes
1241        type: u64
1242      -
1243        name: stats-rx-dropped
1244        type: u64
1245
1246  -
1247    name: dl-trap-metadata
1248    name-prefix: devlink-attr-
1249    attributes:
1250      -
1251        name: trap-metadata-type-in-port
1252        type: flag
1253        value: 0
1254      -
1255        name: trap-metadata-type-fa-cookie
1256        type: flag
1257
1258  -
1259    name: dl-linecard-supported-types
1260    subset-of: devlink
1261    attributes:
1262      -
1263        name: linecard-type
1264
1265  -
1266    name: dl-selftest-id
1267    name-prefix: devlink-attr-selftest-id-
1268    attributes:
1269      -
1270        name: flash
1271        type: flag
1272  -
1273    name: dl-rate-tc-bws
1274    subset-of: devlink
1275    attributes:
1276      -
1277        name: rate-tc-index
1278      -
1279        name: rate-tc-bw
1280
1281operations:
1282  enum-model: directional
1283  list:
1284    -
1285      name: get
1286      doc: Get devlink instances.
1287      attribute-set: devlink
1288      dont-validate: [strict, dump]
1289      do:
1290        pre: devlink-nl-pre-doit
1291        post: devlink-nl-post-doit
1292        request:
1293          value: 1
1294          attributes: &dev-id-attrs
1295            - bus-name
1296            - dev-name
1297        reply: &get-reply
1298          value: 3
1299          attributes:
1300            - bus-name
1301            - dev-name
1302            - reload-failed
1303            - dev-stats
1304      dump:
1305        reply: *get-reply
1306
1307    -
1308      name: port-get
1309      doc: Get devlink port instances.
1310      attribute-set: devlink
1311      dont-validate: [strict]
1312      do:
1313        pre: devlink-nl-pre-doit-port
1314        post: devlink-nl-post-doit
1315        request:
1316          value: 5
1317          attributes: &port-id-attrs
1318            - bus-name
1319            - dev-name
1320            - port-index
1321        reply:
1322          value: 7
1323          attributes: *port-id-attrs
1324      dump:
1325        request:
1326          attributes: *dev-id-attrs
1327        reply:
1328          value: 3  # due to a bug, port dump returns DEVLINK_CMD_NEW
1329          attributes: *port-id-attrs
1330
1331    -
1332      name: port-set
1333      doc: Set devlink port instances.
1334      attribute-set: devlink
1335      dont-validate: [strict]
1336      flags: [admin-perm]
1337      do:
1338        pre: devlink-nl-pre-doit-port
1339        post: devlink-nl-post-doit
1340        request:
1341          attributes:
1342            - bus-name
1343            - dev-name
1344            - port-index
1345            - port-type
1346            - port-function
1347
1348    -
1349      name: port-new
1350      doc: Create devlink port instances.
1351      attribute-set: devlink
1352      dont-validate: [strict]
1353      flags: [admin-perm]
1354      do:
1355        pre: devlink-nl-pre-doit
1356        post: devlink-nl-post-doit
1357        request:
1358          attributes:
1359            - bus-name
1360            - dev-name
1361            - port-index
1362            - port-flavour
1363            - port-pci-pf-number
1364            - port-pci-sf-number
1365            - port-controller-number
1366        reply:
1367          value: 7
1368          attributes: *port-id-attrs
1369
1370    -
1371      name: port-del
1372      doc: Delete devlink port instances.
1373      attribute-set: devlink
1374      dont-validate: [strict]
1375      flags: [admin-perm]
1376      do:
1377        pre: devlink-nl-pre-doit-port
1378        post: devlink-nl-post-doit
1379        request:
1380          attributes: *port-id-attrs
1381
1382    -
1383      name: port-split
1384      doc: Split 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:
1393            - bus-name
1394            - dev-name
1395            - port-index
1396            - port-split-count
1397
1398    -
1399      name: port-unsplit
1400      doc: Unplit devlink port instances.
1401      attribute-set: devlink
1402      dont-validate: [strict]
1403      flags: [admin-perm]
1404      do:
1405        pre: devlink-nl-pre-doit-port
1406        post: devlink-nl-post-doit
1407        request:
1408          attributes: *port-id-attrs
1409
1410    -
1411      name: sb-get
1412      doc: Get shared buffer instances.
1413      attribute-set: devlink
1414      dont-validate: [strict]
1415      do:
1416        pre: devlink-nl-pre-doit
1417        post: devlink-nl-post-doit
1418        request:
1419          value: 11
1420          attributes: &sb-id-attrs
1421            - bus-name
1422            - dev-name
1423            - sb-index
1424        reply: &sb-get-reply
1425          value: 13
1426          attributes: *sb-id-attrs
1427      dump:
1428        request:
1429          attributes: *dev-id-attrs
1430        reply: *sb-get-reply
1431
1432    -
1433      name: sb-pool-get
1434      doc: Get shared buffer pool instances.
1435      attribute-set: devlink
1436      dont-validate: [strict]
1437      do:
1438        pre: devlink-nl-pre-doit
1439        post: devlink-nl-post-doit
1440        request:
1441          value: 15
1442          attributes: &sb-pool-id-attrs
1443            - bus-name
1444            - dev-name
1445            - sb-index
1446            - sb-pool-index
1447        reply: &sb-pool-get-reply
1448          value: 17
1449          attributes: *sb-pool-id-attrs
1450      dump:
1451        request:
1452          attributes: *dev-id-attrs
1453        reply: *sb-pool-get-reply
1454
1455    -
1456      name: sb-pool-set
1457      doc: Set shared buffer pool instances.
1458      attribute-set: devlink
1459      dont-validate: [strict]
1460      flags: [admin-perm]
1461      do:
1462        pre: devlink-nl-pre-doit
1463        post: devlink-nl-post-doit
1464        request:
1465          attributes:
1466            - bus-name
1467            - dev-name
1468            - sb-index
1469            - sb-pool-index
1470            - sb-pool-threshold-type
1471            - sb-pool-size
1472
1473    -
1474      name: sb-port-pool-get
1475      doc: Get shared buffer port-pool combinations and threshold.
1476      attribute-set: devlink
1477      dont-validate: [strict]
1478      do:
1479        pre: devlink-nl-pre-doit-port
1480        post: devlink-nl-post-doit
1481        request:
1482          value: 19
1483          attributes: &sb-port-pool-id-attrs
1484            - bus-name
1485            - dev-name
1486            - port-index
1487            - sb-index
1488            - sb-pool-index
1489        reply: &sb-port-pool-get-reply
1490          value: 21
1491          attributes: *sb-port-pool-id-attrs
1492      dump:
1493        request:
1494          attributes: *dev-id-attrs
1495        reply: *sb-port-pool-get-reply
1496
1497    -
1498      name: sb-port-pool-set
1499      doc: Set shared buffer port-pool combinations and threshold.
1500      attribute-set: devlink
1501      dont-validate: [strict]
1502      flags: [admin-perm]
1503      do:
1504        pre: devlink-nl-pre-doit-port
1505        post: devlink-nl-post-doit
1506        request:
1507          attributes:
1508            - bus-name
1509            - dev-name
1510            - port-index
1511            - sb-index
1512            - sb-pool-index
1513            - sb-threshold
1514
1515    -
1516      name: sb-tc-pool-bind-get
1517      doc: Get shared buffer port-TC to pool bindings and threshold.
1518      attribute-set: devlink
1519      dont-validate: [strict]
1520      do:
1521        pre: devlink-nl-pre-doit-port
1522        post: devlink-nl-post-doit
1523        request:
1524          value: 23
1525          attributes: &sb-tc-pool-bind-id-attrs
1526            - bus-name
1527            - dev-name
1528            - port-index
1529            - sb-index
1530            - sb-pool-type
1531            - sb-tc-index
1532        reply: &sb-tc-pool-bind-get-reply
1533          value: 25
1534          attributes: *sb-tc-pool-bind-id-attrs
1535      dump:
1536        request:
1537          attributes: *dev-id-attrs
1538        reply: *sb-tc-pool-bind-get-reply
1539
1540    -
1541      name: sb-tc-pool-bind-set
1542      doc: Set shared buffer port-TC to pool bindings and threshold.
1543      attribute-set: devlink
1544      dont-validate: [strict]
1545      flags: [admin-perm]
1546      do:
1547        pre: devlink-nl-pre-doit-port
1548        post: devlink-nl-post-doit
1549        request:
1550          attributes:
1551            - bus-name
1552            - dev-name
1553            - port-index
1554            - sb-index
1555            - sb-pool-index
1556            - sb-pool-type
1557            - sb-tc-index
1558            - sb-threshold
1559
1560    -
1561      name: sb-occ-snapshot
1562      doc: Take occupancy snapshot of shared buffer.
1563      attribute-set: devlink
1564      dont-validate: [strict]
1565      flags: [admin-perm]
1566      do:
1567        pre: devlink-nl-pre-doit
1568        post: devlink-nl-post-doit
1569        request:
1570          value: 27
1571          attributes:
1572            - bus-name
1573            - dev-name
1574            - sb-index
1575
1576    -
1577      name: sb-occ-max-clear
1578      doc: Clear occupancy watermarks of shared buffer.
1579      attribute-set: devlink
1580      dont-validate: [strict]
1581      flags: [admin-perm]
1582      do:
1583        pre: devlink-nl-pre-doit
1584        post: devlink-nl-post-doit
1585        request:
1586          attributes:
1587            - bus-name
1588            - dev-name
1589            - sb-index
1590
1591    -
1592      name: eswitch-get
1593      doc: Get eswitch attributes.
1594      attribute-set: devlink
1595      dont-validate: [strict]
1596      flags: [admin-perm]
1597      do:
1598        pre: devlink-nl-pre-doit
1599        post: devlink-nl-post-doit
1600        request:
1601          attributes: *dev-id-attrs
1602        reply:
1603          value: 29
1604          attributes: &eswitch-attrs
1605            - bus-name
1606            - dev-name
1607            - eswitch-mode
1608            - eswitch-inline-mode
1609            - eswitch-encap-mode
1610
1611    -
1612      name: eswitch-set
1613      doc: Set eswitch attributes.
1614      attribute-set: devlink
1615      dont-validate: [strict]
1616      flags: [admin-perm]
1617      do:
1618        pre: devlink-nl-pre-doit
1619        post: devlink-nl-post-doit
1620        request:
1621          attributes: *eswitch-attrs
1622
1623    -
1624      name: dpipe-table-get
1625      doc: Get dpipe table attributes.
1626      attribute-set: devlink
1627      dont-validate: [strict]
1628      do:
1629        pre: devlink-nl-pre-doit
1630        post: devlink-nl-post-doit
1631        request:
1632          attributes:
1633            - bus-name
1634            - dev-name
1635            - dpipe-table-name
1636        reply:
1637          value: 31
1638          attributes:
1639            - bus-name
1640            - dev-name
1641            - dpipe-tables
1642
1643    -
1644      name: dpipe-entries-get
1645      doc: Get dpipe entries attributes.
1646      attribute-set: devlink
1647      dont-validate: [strict]
1648      do:
1649        pre: devlink-nl-pre-doit
1650        post: devlink-nl-post-doit
1651        request:
1652          attributes:
1653            - bus-name
1654            - dev-name
1655            - dpipe-table-name
1656        reply:
1657          attributes:
1658            - bus-name
1659            - dev-name
1660            - dpipe-entries
1661
1662    -
1663      name: dpipe-headers-get
1664      doc: Get dpipe headers attributes.
1665      attribute-set: devlink
1666      dont-validate: [strict]
1667      do:
1668        pre: devlink-nl-pre-doit
1669        post: devlink-nl-post-doit
1670        request:
1671          attributes:
1672            - bus-name
1673            - dev-name
1674        reply:
1675          attributes:
1676            - bus-name
1677            - dev-name
1678            - dpipe-headers
1679
1680    -
1681      name: dpipe-table-counters-set
1682      doc: Set dpipe counter attributes.
1683      attribute-set: devlink
1684      dont-validate: [strict]
1685      flags: [admin-perm]
1686      do:
1687        pre: devlink-nl-pre-doit
1688        post: devlink-nl-post-doit
1689        request:
1690          attributes:
1691            - bus-name
1692            - dev-name
1693            - dpipe-table-name
1694            - dpipe-table-counters-enabled
1695
1696    -
1697      name: resource-set
1698      doc: Set resource attributes.
1699      attribute-set: devlink
1700      dont-validate: [strict]
1701      flags: [admin-perm]
1702      do:
1703        pre: devlink-nl-pre-doit
1704        post: devlink-nl-post-doit
1705        request:
1706          attributes:
1707            - bus-name
1708            - dev-name
1709            - resource-id
1710            - resource-size
1711
1712    -
1713      name: resource-dump
1714      doc: Get resource attributes.
1715      attribute-set: devlink
1716      dont-validate: [strict]
1717      do:
1718        pre: devlink-nl-pre-doit
1719        post: devlink-nl-post-doit
1720        request:
1721          attributes:
1722            - bus-name
1723            - dev-name
1724        reply:
1725          value: 36
1726          attributes:
1727            - bus-name
1728            - dev-name
1729            - resource-list
1730
1731    -
1732      name: reload
1733      doc: Reload devlink.
1734      attribute-set: devlink
1735      dont-validate: [strict]
1736      flags: [admin-perm]
1737      do:
1738        pre: devlink-nl-pre-doit-dev-lock
1739        post: devlink-nl-post-doit-dev-lock
1740        request:
1741          attributes:
1742            - bus-name
1743            - dev-name
1744            - reload-action
1745            - reload-limits
1746            - netns-pid
1747            - netns-fd
1748            - netns-id
1749        reply:
1750          attributes:
1751            - bus-name
1752            - dev-name
1753            - reload-actions-performed
1754
1755    -
1756      name: param-get
1757      doc: Get param instances.
1758      attribute-set: devlink
1759      dont-validate: [strict]
1760      do:
1761        pre: devlink-nl-pre-doit
1762        post: devlink-nl-post-doit
1763        request:
1764          attributes: &param-id-attrs
1765            - bus-name
1766            - dev-name
1767            - param-name
1768        reply: &param-get-reply
1769          attributes: *param-id-attrs
1770      dump:
1771        request:
1772          attributes: *dev-id-attrs
1773        reply: *param-get-reply
1774
1775    -
1776      name: param-set
1777      doc: Set param instances.
1778      attribute-set: devlink
1779      dont-validate: [strict]
1780      flags: [admin-perm]
1781      do:
1782        pre: devlink-nl-pre-doit
1783        post: devlink-nl-post-doit
1784        request:
1785          attributes:
1786            - bus-name
1787            - dev-name
1788            - param-name
1789            - param-type
1790            # param-value-data is missing here as the type is variable
1791            - param-value-cmode
1792
1793    -
1794      name: region-get
1795      doc: Get region instances.
1796      attribute-set: devlink
1797      dont-validate: [strict]
1798      do:
1799        pre: devlink-nl-pre-doit-port-optional
1800        post: devlink-nl-post-doit
1801        request:
1802          value: 42
1803          attributes: &region-id-attrs
1804            - bus-name
1805            - dev-name
1806            - port-index
1807            - region-name
1808        reply: &region-get-reply
1809          value: 42
1810          attributes: *region-id-attrs
1811      dump:
1812        request:
1813          attributes: *dev-id-attrs
1814        reply: *region-get-reply
1815
1816    -
1817      name: region-new
1818      doc: Create region snapshot.
1819      attribute-set: devlink
1820      dont-validate: [strict]
1821      flags: [admin-perm]
1822      do:
1823        pre: devlink-nl-pre-doit-port-optional
1824        post: devlink-nl-post-doit
1825        request:
1826          value: 44
1827          attributes: &region-snapshot-id-attrs
1828            - bus-name
1829            - dev-name
1830            - port-index
1831            - region-name
1832            - region-snapshot-id
1833        reply:
1834          value: 44
1835          attributes: *region-snapshot-id-attrs
1836
1837    -
1838      name: region-del
1839      doc: Delete region snapshot.
1840      attribute-set: devlink
1841      dont-validate: [strict]
1842      flags: [admin-perm]
1843      do:
1844        pre: devlink-nl-pre-doit-port-optional
1845        post: devlink-nl-post-doit
1846        request:
1847          attributes: *region-snapshot-id-attrs
1848
1849    -
1850      name: region-read
1851      doc: Read region data.
1852      attribute-set: devlink
1853      dont-validate: [dump-strict]
1854      flags: [admin-perm]
1855      dump:
1856        request:
1857          attributes:
1858            - bus-name
1859            - dev-name
1860            - port-index
1861            - region-name
1862            - region-snapshot-id
1863            - region-direct
1864            - region-chunk-addr
1865            - region-chunk-len
1866        reply:
1867          value: 46
1868          attributes:
1869            - bus-name
1870            - dev-name
1871            - port-index
1872            - region-name
1873
1874    -
1875      name: port-param-get
1876      doc: Get port param instances.
1877      attribute-set: devlink
1878      dont-validate: [strict, dump-strict]
1879      do:
1880        pre: devlink-nl-pre-doit-port
1881        post: devlink-nl-post-doit
1882        request:
1883          attributes: *port-id-attrs
1884        reply:
1885          attributes: *port-id-attrs
1886      dump:
1887        reply:
1888          attributes: *port-id-attrs
1889
1890    -
1891      name: port-param-set
1892      doc: Set port param instances.
1893      attribute-set: devlink
1894      dont-validate: [strict]
1895      flags: [admin-perm]
1896      do:
1897        pre: devlink-nl-pre-doit-port
1898        post: devlink-nl-post-doit
1899        request:
1900          attributes: *port-id-attrs
1901
1902    -
1903      name: info-get
1904      doc: |
1905        Get device information, like driver name, hardware and firmware versions
1906        etc.
1907      attribute-set: devlink
1908      dont-validate: [strict, dump]
1909      do:
1910        pre: devlink-nl-pre-doit
1911        post: devlink-nl-post-doit
1912        request:
1913          value: 51
1914          attributes: *dev-id-attrs
1915        reply: &info-get-reply
1916          value: 51
1917          attributes:
1918            - bus-name
1919            - dev-name
1920            - info-driver-name
1921            - info-serial-number
1922            - info-version-fixed
1923            - info-version-running
1924            - info-version-stored
1925            - info-board-serial-number
1926      dump:
1927        reply: *info-get-reply
1928
1929    -
1930      name: health-reporter-get
1931      doc: Get health reporter instances.
1932      attribute-set: devlink
1933      dont-validate: [strict]
1934      do:
1935        pre: devlink-nl-pre-doit-port-optional
1936        post: devlink-nl-post-doit
1937        request:
1938          attributes: &health-reporter-id-attrs
1939            - bus-name
1940            - dev-name
1941            - port-index
1942            - health-reporter-name
1943        reply: &health-reporter-get-reply
1944          attributes: *health-reporter-id-attrs
1945      dump:
1946        request:
1947          attributes: *port-id-attrs
1948        reply: *health-reporter-get-reply
1949
1950    -
1951      name: health-reporter-set
1952      doc: Set health reporter instances.
1953      attribute-set: devlink
1954      dont-validate: [strict]
1955      flags: [admin-perm]
1956      do:
1957        pre: devlink-nl-pre-doit-port-optional
1958        post: devlink-nl-post-doit
1959        request:
1960          attributes:
1961            - bus-name
1962            - dev-name
1963            - port-index
1964            - health-reporter-name
1965            - health-reporter-graceful-period
1966            - health-reporter-auto-recover
1967            - health-reporter-auto-dump
1968
1969    -
1970      name: health-reporter-recover
1971      doc: Recover health reporter instances.
1972      attribute-set: devlink
1973      dont-validate: [strict]
1974      flags: [admin-perm]
1975      do:
1976        pre: devlink-nl-pre-doit-port-optional
1977        post: devlink-nl-post-doit
1978        request:
1979          attributes: *health-reporter-id-attrs
1980
1981    -
1982      name: health-reporter-diagnose
1983      doc: Diagnose health reporter instances.
1984      attribute-set: devlink
1985      dont-validate: [strict]
1986      flags: [admin-perm]
1987      do:
1988        pre: devlink-nl-pre-doit-port-optional
1989        post: devlink-nl-post-doit
1990        request:
1991          attributes: *health-reporter-id-attrs
1992
1993    -
1994      name: health-reporter-dump-get
1995      doc: Dump health reporter instances.
1996      attribute-set: devlink
1997      dont-validate: [dump-strict]
1998      flags: [admin-perm]
1999      dump:
2000        request:
2001          attributes: *health-reporter-id-attrs
2002        reply:
2003          value: 56
2004          attributes:
2005            - fmsg
2006
2007    -
2008      name: health-reporter-dump-clear
2009      doc: Clear dump of health reporter instances.
2010      attribute-set: devlink
2011      dont-validate: [strict]
2012      flags: [admin-perm]
2013      do:
2014        pre: devlink-nl-pre-doit-port-optional
2015        post: devlink-nl-post-doit
2016        request:
2017          attributes: *health-reporter-id-attrs
2018
2019    -
2020      name: flash-update
2021      doc: Flash update devlink instances.
2022      attribute-set: devlink
2023      dont-validate: [strict]
2024      flags: [admin-perm]
2025      do:
2026        pre: devlink-nl-pre-doit
2027        post: devlink-nl-post-doit
2028        request:
2029          attributes:
2030            - bus-name
2031            - dev-name
2032            - flash-update-file-name
2033            - flash-update-component
2034            - flash-update-overwrite-mask
2035
2036    -
2037      name: trap-get
2038      doc: Get trap instances.
2039      attribute-set: devlink
2040      dont-validate: [strict]
2041      do:
2042        pre: devlink-nl-pre-doit
2043        post: devlink-nl-post-doit
2044        request:
2045          value: 61
2046          attributes: &trap-id-attrs
2047            - bus-name
2048            - dev-name
2049            - trap-name
2050        reply: &trap-get-reply
2051          value: 63
2052          attributes: *trap-id-attrs
2053      dump:
2054        request:
2055          attributes: *dev-id-attrs
2056        reply: *trap-get-reply
2057
2058    -
2059      name: trap-set
2060      doc: Set trap instances.
2061      attribute-set: devlink
2062      dont-validate: [strict]
2063      flags: [admin-perm]
2064      do:
2065        pre: devlink-nl-pre-doit
2066        post: devlink-nl-post-doit
2067        request:
2068          attributes:
2069            - bus-name
2070            - dev-name
2071            - trap-name
2072            - trap-action
2073
2074    -
2075      name: trap-group-get
2076      doc: Get trap group instances.
2077      attribute-set: devlink
2078      dont-validate: [strict]
2079      do:
2080        pre: devlink-nl-pre-doit
2081        post: devlink-nl-post-doit
2082        request:
2083          value: 65
2084          attributes: &trap-group-id-attrs
2085            - bus-name
2086            - dev-name
2087            - trap-group-name
2088        reply: &trap-group-get-reply
2089          value: 67
2090          attributes: *trap-group-id-attrs
2091      dump:
2092        request:
2093          attributes: *dev-id-attrs
2094        reply: *trap-group-get-reply
2095
2096    -
2097      name: trap-group-set
2098      doc: Set trap group instances.
2099      attribute-set: devlink
2100      dont-validate: [strict]
2101      flags: [admin-perm]
2102      do:
2103        pre: devlink-nl-pre-doit
2104        post: devlink-nl-post-doit
2105        request:
2106          attributes:
2107            - bus-name
2108            - dev-name
2109            - trap-group-name
2110            - trap-action
2111            - trap-policer-id
2112
2113    -
2114      name: trap-policer-get
2115      doc: Get trap policer instances.
2116      attribute-set: devlink
2117      dont-validate: [strict]
2118      do:
2119        pre: devlink-nl-pre-doit
2120        post: devlink-nl-post-doit
2121        request:
2122          value: 69
2123          attributes: &trap-policer-id-attrs
2124            - bus-name
2125            - dev-name
2126            - trap-policer-id
2127        reply: &trap-policer-get-reply
2128          value: 71
2129          attributes: *trap-policer-id-attrs
2130      dump:
2131        request:
2132          attributes: *dev-id-attrs
2133        reply: *trap-policer-get-reply
2134
2135    -
2136      name: trap-policer-set
2137      doc: Get trap policer instances.
2138      attribute-set: devlink
2139      dont-validate: [strict]
2140      flags: [admin-perm]
2141      do:
2142        pre: devlink-nl-pre-doit
2143        post: devlink-nl-post-doit
2144        request:
2145          attributes:
2146            - bus-name
2147            - dev-name
2148            - trap-policer-id
2149            - trap-policer-rate
2150            - trap-policer-burst
2151
2152    -
2153      name: health-reporter-test
2154      doc: Test health reporter instances.
2155      attribute-set: devlink
2156      dont-validate: [strict]
2157      flags: [admin-perm]
2158      do:
2159        pre: devlink-nl-pre-doit-port-optional
2160        post: devlink-nl-post-doit
2161        request:
2162          value: 73
2163          attributes: *health-reporter-id-attrs
2164
2165    -
2166      name: rate-get
2167      doc: Get rate instances.
2168      attribute-set: devlink
2169      dont-validate: [strict]
2170      do:
2171        pre: devlink-nl-pre-doit
2172        post: devlink-nl-post-doit
2173        request:
2174          value: 74
2175          attributes: &rate-id-attrs
2176            - bus-name
2177            - dev-name
2178            - port-index
2179            - rate-node-name
2180        reply: &rate-get-reply
2181          value: 76
2182          attributes: *rate-id-attrs
2183      dump:
2184        request:
2185          attributes: *dev-id-attrs
2186        reply: *rate-get-reply
2187
2188    -
2189      name: rate-set
2190      doc: Set rate instances.
2191      attribute-set: devlink
2192      dont-validate: [strict]
2193      flags: [admin-perm]
2194      do:
2195        pre: devlink-nl-pre-doit
2196        post: devlink-nl-post-doit
2197        request:
2198          attributes:
2199            - bus-name
2200            - dev-name
2201            - rate-node-name
2202            - rate-tx-share
2203            - rate-tx-max
2204            - rate-tx-priority
2205            - rate-tx-weight
2206            - rate-parent-node-name
2207            - rate-tc-bws
2208
2209    -
2210      name: rate-new
2211      doc: Create rate instances.
2212      attribute-set: devlink
2213      dont-validate: [strict]
2214      flags: [admin-perm]
2215      do:
2216        pre: devlink-nl-pre-doit
2217        post: devlink-nl-post-doit
2218        request:
2219          attributes:
2220            - bus-name
2221            - dev-name
2222            - rate-node-name
2223            - rate-tx-share
2224            - rate-tx-max
2225            - rate-tx-priority
2226            - rate-tx-weight
2227            - rate-parent-node-name
2228            - rate-tc-bws
2229
2230    -
2231      name: rate-del
2232      doc: Delete rate instances.
2233      attribute-set: devlink
2234      dont-validate: [strict]
2235      flags: [admin-perm]
2236      do:
2237        pre: devlink-nl-pre-doit
2238        post: devlink-nl-post-doit
2239        request:
2240          attributes:
2241            - bus-name
2242            - dev-name
2243            - rate-node-name
2244
2245    -
2246      name: linecard-get
2247      doc: Get line card instances.
2248      attribute-set: devlink
2249      dont-validate: [strict]
2250      do:
2251        pre: devlink-nl-pre-doit
2252        post: devlink-nl-post-doit
2253        request:
2254          value: 78
2255          attributes: &linecard-id-attrs
2256            - bus-name
2257            - dev-name
2258            - linecard-index
2259        reply: &linecard-get-reply
2260          value: 80
2261          attributes: *linecard-id-attrs
2262      dump:
2263        request:
2264          attributes: *dev-id-attrs
2265        reply: *linecard-get-reply
2266
2267    -
2268      name: linecard-set
2269      doc: Set line card instances.
2270      attribute-set: devlink
2271      dont-validate: [strict]
2272      flags: [admin-perm]
2273      do:
2274        pre: devlink-nl-pre-doit
2275        post: devlink-nl-post-doit
2276        request:
2277          attributes:
2278            - bus-name
2279            - dev-name
2280            - linecard-index
2281            - linecard-type
2282
2283    -
2284      name: selftests-get
2285      doc: Get device selftest instances.
2286      attribute-set: devlink
2287      dont-validate: [strict, dump]
2288      do:
2289        pre: devlink-nl-pre-doit
2290        post: devlink-nl-post-doit
2291        request:
2292          value: 82
2293          attributes: *dev-id-attrs
2294        reply: &selftests-get-reply
2295          value: 82
2296          attributes: *dev-id-attrs
2297      dump:
2298        reply: *selftests-get-reply
2299
2300    -
2301      name: selftests-run
2302      doc: Run device selftest instances.
2303      attribute-set: devlink
2304      dont-validate: [strict]
2305      flags: [admin-perm]
2306      do:
2307        pre: devlink-nl-pre-doit
2308        post: devlink-nl-post-doit
2309        request:
2310          attributes:
2311            - bus-name
2312            - dev-name
2313            - selftests
2314
2315    -
2316      name: notify-filter-set
2317      doc: Set notification messages socket filter.
2318      attribute-set: devlink
2319      do:
2320        request:
2321          attributes:
2322            - bus-name
2323            - dev-name
2324            - port-index
2325