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