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