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