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