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