xref: /linux/Documentation/netlink/specs/devlink.yaml (revision ea23fbd2a8f7dadfa9cd9b9d73f3b8a69eec0671)
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    type: enum
76    name: sb-threshold-type
77    entries:
78      -
79        name: static
80      -
81        name: dynamic
82  -
83    type: enum
84    name: eswitch-mode
85    entries:
86      -
87        name: legacy
88      -
89        name: switchdev
90  -
91    type: enum
92    name: eswitch-inline-mode
93    entries:
94      -
95        name: none
96      -
97        name: link
98      -
99        name: network
100      -
101        name: transport
102  -
103    type: enum
104    name: eswitch-encap-mode
105    entries:
106      -
107        name: none
108      -
109        name: basic
110  -
111    type: enum
112    name: dpipe-match-type
113    entries:
114      -
115        name: field-exact
116  -
117    type: enum
118    name: dpipe-action-type
119    entries:
120      -
121        name: field-modify
122  -
123    type: enum
124    name: dpipe-field-mapping-type
125    entries:
126      -
127        name: none
128      -
129        name: ifindex
130  -
131    type: enum
132    name: resource-unit
133    entries:
134      -
135        name: entry
136  -
137    type: enum
138    name: reload-action
139    entries:
140      -
141        name: driver-reinit
142        value: 1
143      -
144        name: fw-activate
145  -
146    type: enum
147    name: param-cmode
148    entries:
149      -
150        name: runtime
151      -
152        name: driverinit
153      -
154        name: permanent
155  -
156    type: enum
157    name: flash-overwrite
158    entries:
159      -
160        name: settings-bit
161      -
162        name: identifiers-bit
163  -
164    type: enum
165    name: trap-action
166    entries:
167      -
168        name: drop
169      -
170        name: trap
171      -
172        name: mirror
173
174attribute-sets:
175  -
176    name: devlink
177    name-prefix: devlink-attr-
178    attributes:
179      -
180        name: bus-name
181        type: string
182        value: 1
183      -
184        name: dev-name
185        type: string
186      -
187        name: port-index
188        type: u32
189      -
190        name: port-type
191        type: u16
192        enum: port-type
193
194      # TODO: fill in the attributes in between
195
196      -
197        name: port-split-count
198        type: u32
199        value: 9
200
201      # TODO: fill in the attributes in between
202
203      -
204        name: sb-index
205        type: u32
206        value: 11
207
208      # TODO: fill in the attributes in between
209
210      -
211        name: sb-pool-index
212        type: u16
213        value: 17
214      -
215        name: sb-pool-type
216        type: u8
217        enum: sb-pool-type
218      -
219        name: sb-pool-size
220        type: u32
221      -
222        name: sb-pool-threshold-type
223        type: u8
224        enum: sb-threshold-type
225      -
226        name: sb-threshold
227        type: u32
228      -
229        name: sb-tc-index
230        type: u16
231        value: 22
232
233      # TODO: fill in the attributes in between
234
235      -
236        name: eswitch-mode
237        type: u16
238        value: 25
239        enum: eswitch-mode
240
241      -
242        name: eswitch-inline-mode
243        type: u16
244        enum: eswitch-inline-mode
245      -
246        name: dpipe-tables
247        type: nest
248        nested-attributes: dl-dpipe-tables
249      -
250        name: dpipe-table
251        type: nest
252        multi-attr: true
253        nested-attributes: dl-dpipe-table
254      -
255        name: dpipe-table-name
256        type: string
257      -
258        name: dpipe-table-size
259        type: u64
260      -
261        name: dpipe-table-matches
262        type: nest
263        nested-attributes: dl-dpipe-table-matches
264      -
265        name: dpipe-table-actions
266        type: nest
267        nested-attributes: dl-dpipe-table-actions
268      -
269        name: dpipe-table-counters-enabled
270        type: u8
271      -
272        name: dpipe-entries
273        type: nest
274        nested-attributes: dl-dpipe-entries
275      -
276        name: dpipe-entry
277        type: nest
278        multi-attr: true
279        nested-attributes: dl-dpipe-entry
280      -
281        name: dpipe-entry-index
282        type: u64
283      -
284        name: dpipe-entry-match-values
285        type: nest
286        nested-attributes: dl-dpipe-entry-match-values
287      -
288        name: dpipe-entry-action-values
289        type: nest
290        nested-attributes: dl-dpipe-entry-action-values
291      -
292        name: dpipe-entry-counter
293        type: u64
294      -
295        name: dpipe-match
296        type: nest
297        multi-attr: true
298        nested-attributes: dl-dpipe-match
299      -
300        name: dpipe-match-value
301        type: nest
302        multi-attr: true
303        nested-attributes: dl-dpipe-match-value
304      -
305        name: dpipe-match-type
306        type: u32
307        enum: dpipe-match-type
308      -
309        name: dpipe-action
310        type: nest
311        multi-attr: true
312        nested-attributes: dl-dpipe-action
313      -
314        name: dpipe-action-value
315        type: nest
316        multi-attr: true
317        nested-attributes: dl-dpipe-action-value
318      -
319        name: dpipe-action-type
320        type: u32
321        enum: dpipe-action-type
322      -
323        name: dpipe-value
324        type: binary
325      -
326        name: dpipe-value-mask
327        type: binary
328      -
329        name: dpipe-value-mapping
330        type: u32
331      -
332        name: dpipe-headers
333        type: nest
334        nested-attributes: dl-dpipe-headers
335      -
336        name: dpipe-header
337        type: nest
338        multi-attr: true
339        nested-attributes: dl-dpipe-header
340      -
341        name: dpipe-header-name
342        type: string
343      -
344        name: dpipe-header-id
345        type: u32
346      -
347        name: dpipe-header-fields
348        type: nest
349        nested-attributes: dl-dpipe-header-fields
350      -
351        name: dpipe-header-global
352        type: u8
353      -
354        name: dpipe-header-index
355        type: u32
356      -
357        name: dpipe-field
358        type: nest
359        multi-attr: true
360        nested-attributes: dl-dpipe-field
361      -
362        name: dpipe-field-name
363        type: string
364      -
365        name: dpipe-field-id
366        type: u32
367      -
368        name: dpipe-field-bitwidth
369        type: u32
370      -
371        name: dpipe-field-mapping-type
372        type: u32
373        enum: dpipe-field-mapping-type
374      -
375        name: pad
376        type: pad
377      -
378        name: eswitch-encap-mode
379        type: u8
380        value: 62
381        enum: eswitch-encap-mode
382      -
383        name: resource-list
384        type: nest
385        nested-attributes: dl-resource-list
386      -
387        name: resource
388        type: nest
389        multi-attr: true
390        nested-attributes: dl-resource
391      -
392        name: resource-name
393        type: string
394      -
395        name: resource-id
396        type: u64
397      -
398        name: resource-size
399        type: u64
400      -
401        name: resource-size-new
402        type: u64
403      -
404        name: resource-size-valid
405        type: u8
406      -
407        name: resource-size-min
408        type: u64
409      -
410        name: resource-size-max
411        type: u64
412      -
413        name: resource-size-gran
414        type: u64
415      -
416        name: resource-unit
417        type: u8
418        enum: resource-unit
419      -
420        name: resource-occ
421        type: u64
422      -
423        name: dpipe-table-resource-id
424        type: u64
425      -
426        name: dpipe-table-resource-units
427        type: u64
428      -
429        name: port-flavour
430        type: u16
431        enum: port-flavour
432
433      # TODO: fill in the attributes in between
434
435      -
436        name: param-name
437        type: string
438        value: 81
439
440      # TODO: fill in the attributes in between
441
442      -
443        name: param-type
444        type: u8
445        value: 83
446
447      # TODO: fill in the attributes in between
448
449      -
450        name: param-value-cmode
451        type: u8
452        enum: param-cmode
453        value: 87
454      -
455        name: region-name
456        type: string
457
458      # TODO: fill in the attributes in between
459
460      -
461        name: region-snapshot-id
462        type: u32
463        value: 92
464
465      # TODO: fill in the attributes in between
466
467      -
468        name: region-chunk-addr
469        type: u64
470        value: 96
471      -
472        name: region-chunk-len
473        type: u64
474      -
475        name: info-driver-name
476        type: string
477      -
478        name: info-serial-number
479        type: string
480      -
481        name: info-version-fixed
482        type: nest
483        multi-attr: true
484        nested-attributes: dl-info-version
485      -
486        name: info-version-running
487        type: nest
488        multi-attr: true
489        nested-attributes: dl-info-version
490      -
491        name: info-version-stored
492        type: nest
493        multi-attr: true
494        nested-attributes: dl-info-version
495      -
496        name: info-version-name
497        type: string
498      -
499        name: info-version-value
500        type: string
501
502      # TODO: fill in the attributes in between
503
504      -
505        name: fmsg
506        type: nest
507        nested-attributes: dl-fmsg
508        value: 106
509      -
510        name: fmsg-obj-nest-start
511        type: flag
512      -
513        name: fmsg-pair-nest-start
514        type: flag
515      -
516        name: fmsg-arr-nest-start
517        type: flag
518      -
519        name: fmsg-nest-end
520        type: flag
521      -
522        name: fmsg-obj-name
523        type: string
524
525      # TODO: fill in the attributes in between
526
527      -
528        name: health-reporter-name
529        type: string
530        value: 115
531
532      # TODO: fill in the attributes in between
533
534      -
535        name: health-reporter-graceful-period
536        type: u64
537        value: 120
538      -
539        name: health-reporter-auto-recover
540        type: u8
541      -
542        name: flash-update-file-name
543        type: string
544      -
545        name: flash-update-component
546        type: string
547
548      # TODO: fill in the attributes in between
549
550      -
551        name: port-pci-pf-number
552        type: u16
553        value: 127
554
555      # TODO: fill in the attributes in between
556
557      -
558        name: trap-name
559        type: string
560        value: 130
561      -
562        name: trap-action
563        type: u8
564        enum: trap-action
565
566      # TODO: fill in the attributes in between
567
568      -
569        name: trap-group-name
570        type: string
571        value: 135
572
573      -
574        name: reload-failed
575        type: u8
576
577      # TODO: fill in the attributes in between
578
579      -
580        name: netns-fd
581        type: u32
582        value: 138
583      -
584        name: netns-pid
585        type: u32
586      -
587        name: netns-id
588        type: u32
589
590      # TODO: fill in the attributes in between
591
592      -
593        name: health-reporter-auto-dump
594        type: u8
595        value: 141
596      -
597        name: trap-policer-id
598        type: u32
599      -
600        name: trap-policer-rate
601        type: u64
602      -
603        name: trap-policer-burst
604        type: u64
605      -
606        name: port-function
607        type: nest
608        nested-attributes: dl-port-function
609
610      # TODO: fill in the attributes in between
611
612      -
613        name: port-controller-number
614        type: u32
615        value: 150
616
617      # TODO: fill in the attributes in between
618
619      -
620        name: flash-update-overwrite-mask
621        type: bitfield32
622        enum: flash-overwrite
623        enum-as-flags: True
624        value: 152
625      -
626        name: reload-action
627        type: u8
628        enum: reload-action
629      -
630        name: reload-actions-performed
631        type: bitfield32
632        enum: reload-action
633        enum-as-flags: True
634      -
635        name: reload-limits
636        type: bitfield32
637        enum: reload-action
638        enum-as-flags: True
639      -
640        name: dev-stats
641        type: nest
642        nested-attributes: dl-dev-stats
643      -
644        name: reload-stats
645        type: nest
646        nested-attributes: dl-reload-stats
647      -
648        name: reload-stats-entry
649        type: nest
650        multi-attr: true
651        nested-attributes: dl-reload-stats-entry
652      -
653        name: reload-stats-limit
654        type: u8
655      -
656        name: reload-stats-value
657        type: u32
658      -
659        name: remote-reload-stats
660        type: nest
661        nested-attributes: dl-reload-stats
662      -
663        name: reload-action-info
664        type: nest
665        multi-attr: true
666        nested-attributes: dl-reload-act-info
667      -
668        name: reload-action-stats
669        type: nest
670        multi-attr: true
671        nested-attributes: dl-reload-act-stats
672
673      # TODO: fill in the attributes in between
674
675      -
676        name: port-pci-sf-number
677        type: u32
678        value: 164
679
680      # TODO: fill in the attributes in between
681
682      -
683        name: rate-tx-share
684        type: u64
685        value: 166
686      -
687        name: rate-tx-max
688        type: u64
689      -
690        name: rate-node-name
691        type: string
692      -
693        name: rate-parent-node-name
694        type: string
695
696      # TODO: fill in the attributes in between
697
698      -
699        name: linecard-index
700        type: u32
701        value: 171
702
703      # TODO: fill in the attributes in between
704
705      -
706        name: linecard-type
707        type: string
708        value: 173
709
710      # TODO: fill in the attributes in between
711
712      -
713        name: selftests
714        type: nest
715        value: 176
716        nested-attributes: dl-selftest-id
717      -
718        name: rate-tx-priority
719        type: u32
720      -
721        name: rate-tx-weight
722        type: u32
723      -
724        name: region-direct
725        type: flag
726
727  -
728    name: dl-dev-stats
729    subset-of: devlink
730    attributes:
731      -
732        name: reload-stats
733      -
734        name: remote-reload-stats
735  -
736    name: dl-reload-stats
737    subset-of: devlink
738    attributes:
739      -
740        name: reload-action-info
741  -
742    name: dl-reload-act-info
743    subset-of: devlink
744    attributes:
745      -
746        name: reload-action
747      -
748        name: reload-action-stats
749  -
750    name: dl-reload-act-stats
751    subset-of: devlink
752    attributes:
753      -
754        name: reload-stats-entry
755  -
756    name: dl-reload-stats-entry
757    subset-of: devlink
758    attributes:
759      -
760        name: reload-stats-limit
761      -
762        name: reload-stats-value
763  -
764    name: dl-info-version
765    subset-of: devlink
766    attributes:
767      -
768        name: info-version-name
769      -
770        name: info-version-value
771  -
772    name: dl-port-function
773    name-prefix: devlink-port-fn-attr-
774    attr-max-name: devlink-port-function-attr-max
775    attributes:
776      -
777        name-prefix: devlink-port-function-attr-
778        name: hw-addr
779        type: binary
780        value: 1
781      -
782        name: state
783        type: u8
784        enum: port-fn-state
785      -
786        name: opstate
787        type: u8
788        enum: port-fn-opstate
789      -
790        name: caps
791        type: bitfield32
792        enum: port-fn-attr-cap
793        enum-as-flags: True
794
795  -
796    name: dl-dpipe-tables
797    subset-of: devlink
798    attributes:
799      -
800        name: dpipe-table
801
802  -
803    name: dl-dpipe-table
804    subset-of: devlink
805    attributes:
806      -
807        name: dpipe-table-name
808      -
809        name: dpipe-table-size
810      -
811        name: dpipe-table-name
812      -
813        name: dpipe-table-size
814      -
815        name: dpipe-table-matches
816      -
817        name: dpipe-table-actions
818      -
819        name: dpipe-table-counters-enabled
820      -
821        name: dpipe-table-resource-id
822      -
823        name: dpipe-table-resource-units
824
825  -
826    name: dl-dpipe-table-matches
827    subset-of: devlink
828    attributes:
829      -
830        name: dpipe-match
831
832  -
833    name: dl-dpipe-table-actions
834    subset-of: devlink
835    attributes:
836      -
837        name: dpipe-action
838
839  -
840    name: dl-dpipe-entries
841    subset-of: devlink
842    attributes:
843      -
844        name: dpipe-entry
845
846  -
847    name: dl-dpipe-entry
848    subset-of: devlink
849    attributes:
850      -
851        name: dpipe-entry-index
852      -
853        name: dpipe-entry-match-values
854      -
855        name: dpipe-entry-action-values
856      -
857        name: dpipe-entry-counter
858
859  -
860    name: dl-dpipe-entry-match-values
861    subset-of: devlink
862    attributes:
863      -
864        name: dpipe-match-value
865
866  -
867    name: dl-dpipe-entry-action-values
868    subset-of: devlink
869    attributes:
870      -
871        name: dpipe-action-value
872
873  -
874    name: dl-dpipe-match
875    subset-of: devlink
876    attributes:
877      -
878        name: dpipe-match-type
879      -
880        name: dpipe-header-id
881      -
882        name: dpipe-header-global
883      -
884        name: dpipe-header-index
885      -
886        name: dpipe-field-id
887
888  -
889    name: dl-dpipe-match-value
890    subset-of: devlink
891    attributes:
892      -
893        name: dpipe-match
894      -
895        name: dpipe-value
896      -
897        name: dpipe-value-mask
898      -
899        name: dpipe-value-mapping
900
901  -
902    name: dl-dpipe-action
903    subset-of: devlink
904    attributes:
905      -
906        name: dpipe-action-type
907      -
908        name: dpipe-header-id
909      -
910        name: dpipe-header-global
911      -
912        name: dpipe-header-index
913      -
914        name: dpipe-field-id
915
916  -
917    name: dl-dpipe-action-value
918    subset-of: devlink
919    attributes:
920      -
921        name: dpipe-action
922      -
923        name: dpipe-value
924      -
925        name: dpipe-value-mask
926      -
927        name: dpipe-value-mapping
928
929  -
930    name: dl-dpipe-headers
931    subset-of: devlink
932    attributes:
933      -
934        name: dpipe-header
935
936  -
937    name: dl-dpipe-header
938    subset-of: devlink
939    attributes:
940      -
941        name: dpipe-header-name
942      -
943        name: dpipe-header-id
944      -
945        name: dpipe-header-global
946      -
947        name: dpipe-header-fields
948
949  -
950    name: dl-dpipe-header-fields
951    subset-of: devlink
952    attributes:
953      -
954        name: dpipe-field
955
956  -
957    name: dl-dpipe-field
958    subset-of: devlink
959    attributes:
960      -
961        name: dpipe-field-name
962      -
963        name: dpipe-field-id
964      -
965        name: dpipe-field-bitwidth
966      -
967        name: dpipe-field-mapping-type
968
969  -
970    name: dl-resource
971    subset-of: devlink
972    attributes:
973      # -
974      # name: resource-list
975      # This is currently unsupported due to circular dependency
976      -
977        name: resource-name
978      -
979        name: resource-id
980      -
981        name: resource-size
982      -
983        name: resource-size-new
984      -
985        name: resource-size-valid
986      -
987        name: resource-size-min
988      -
989        name: resource-size-max
990      -
991        name: resource-size-gran
992      -
993        name: resource-unit
994      -
995        name: resource-occ
996
997  -
998    name: dl-resource-list
999    subset-of: devlink
1000    attributes:
1001      -
1002        name: resource
1003
1004  -
1005    name: dl-fmsg
1006    subset-of: devlink
1007    attributes:
1008      -
1009        name: fmsg-obj-nest-start
1010      -
1011        name: fmsg-pair-nest-start
1012      -
1013        name: fmsg-arr-nest-start
1014      -
1015        name: fmsg-nest-end
1016      -
1017        name: fmsg-obj-name
1018
1019  -
1020    name: dl-selftest-id
1021    name-prefix: devlink-attr-selftest-id-
1022    attributes:
1023      -
1024        name: flash
1025        type: flag
1026
1027operations:
1028  enum-model: directional
1029  list:
1030    -
1031      name: get
1032      doc: Get devlink instances.
1033      attribute-set: devlink
1034      dont-validate: [ strict, dump ]
1035      do:
1036        pre: devlink-nl-pre-doit
1037        post: devlink-nl-post-doit
1038        request:
1039          value: 1
1040          attributes: &dev-id-attrs
1041            - bus-name
1042            - dev-name
1043        reply:  &get-reply
1044          value: 3
1045          attributes:
1046            - bus-name
1047            - dev-name
1048            - reload-failed
1049            - dev-stats
1050      dump:
1051        reply: *get-reply
1052
1053    -
1054      name: port-get
1055      doc: Get devlink port instances.
1056      attribute-set: devlink
1057      dont-validate: [ strict ]
1058      do:
1059        pre: devlink-nl-pre-doit-port
1060        post: devlink-nl-post-doit
1061        request:
1062          value: 5
1063          attributes: &port-id-attrs
1064            - bus-name
1065            - dev-name
1066            - port-index
1067        reply:
1068          value: 7
1069          attributes: *port-id-attrs
1070      dump:
1071        request:
1072          attributes: *dev-id-attrs
1073        reply:
1074          value: 3  # due to a bug, port dump returns DEVLINK_CMD_NEW
1075          attributes: *port-id-attrs
1076    -
1077      name: port-set
1078      doc: Set devlink port instances.
1079      attribute-set: devlink
1080      dont-validate: [ strict ]
1081      flags: [ admin-perm ]
1082      do:
1083        pre: devlink-nl-pre-doit-port
1084        post: devlink-nl-post-doit
1085        request:
1086          attributes:
1087            - bus-name
1088            - dev-name
1089            - port-index
1090            - port-type
1091            - port-function
1092
1093    -
1094      name: port-new
1095      doc: Create devlink port instances.
1096      attribute-set: devlink
1097      dont-validate: [ strict ]
1098      flags: [ admin-perm ]
1099      do:
1100        pre: devlink-nl-pre-doit
1101        post: devlink-nl-post-doit
1102        request:
1103          attributes:
1104            - bus-name
1105            - dev-name
1106            - port-index
1107            - port-flavour
1108            - port-pci-pf-number
1109            - port-pci-sf-number
1110            - port-controller-number
1111        reply:
1112          value: 7
1113          attributes: *port-id-attrs
1114
1115    -
1116      name: port-del
1117      doc: Delete devlink port instances.
1118      attribute-set: devlink
1119      dont-validate: [ strict ]
1120      flags: [ admin-perm ]
1121      do:
1122        pre: devlink-nl-pre-doit-port
1123        post: devlink-nl-post-doit
1124        request:
1125          attributes: *port-id-attrs
1126
1127    -
1128      name: port-split
1129      doc: Split devlink port instances.
1130      attribute-set: devlink
1131      dont-validate: [ strict ]
1132      flags: [ admin-perm ]
1133      do:
1134        pre: devlink-nl-pre-doit-port
1135        post: devlink-nl-post-doit
1136        request:
1137          attributes:
1138            - bus-name
1139            - dev-name
1140            - port-index
1141            - port-split-count
1142
1143    -
1144      name: port-unsplit
1145      doc: Unplit devlink port instances.
1146      attribute-set: devlink
1147      dont-validate: [ strict ]
1148      flags: [ admin-perm ]
1149      do:
1150        pre: devlink-nl-pre-doit-port
1151        post: devlink-nl-post-doit
1152        request:
1153          attributes: *port-id-attrs
1154
1155    -
1156      name: sb-get
1157      doc: Get shared buffer instances.
1158      attribute-set: devlink
1159      dont-validate: [ strict ]
1160      do:
1161        pre: devlink-nl-pre-doit
1162        post: devlink-nl-post-doit
1163        request:
1164          value: 11
1165          attributes: &sb-id-attrs
1166            - bus-name
1167            - dev-name
1168            - sb-index
1169        reply: &sb-get-reply
1170          value: 13
1171          attributes: *sb-id-attrs
1172      dump:
1173        request:
1174          attributes: *dev-id-attrs
1175        reply: *sb-get-reply
1176
1177    -
1178      name: sb-pool-get
1179      doc: Get shared buffer pool instances.
1180      attribute-set: devlink
1181      dont-validate: [ strict ]
1182      do:
1183        pre: devlink-nl-pre-doit
1184        post: devlink-nl-post-doit
1185        request:
1186          value: 15
1187          attributes: &sb-pool-id-attrs
1188            - bus-name
1189            - dev-name
1190            - sb-index
1191            - sb-pool-index
1192        reply: &sb-pool-get-reply
1193          value: 17
1194          attributes: *sb-pool-id-attrs
1195      dump:
1196        request:
1197          attributes: *dev-id-attrs
1198        reply: *sb-pool-get-reply
1199
1200    -
1201      name: sb-pool-set
1202      doc: Set shared buffer pool instances.
1203      attribute-set: devlink
1204      dont-validate: [ strict ]
1205      flags: [ admin-perm ]
1206      do:
1207        pre: devlink-nl-pre-doit
1208        post: devlink-nl-post-doit
1209        request:
1210          attributes:
1211            - bus-name
1212            - dev-name
1213            - sb-index
1214            - sb-pool-index
1215            - sb-pool-threshold-type
1216            - sb-pool-size
1217
1218    -
1219      name: sb-port-pool-get
1220      doc: Get shared buffer port-pool combinations and threshold.
1221      attribute-set: devlink
1222      dont-validate: [ strict ]
1223      do:
1224        pre: devlink-nl-pre-doit-port
1225        post: devlink-nl-post-doit
1226        request:
1227          value: 19
1228          attributes: &sb-port-pool-id-attrs
1229            - bus-name
1230            - dev-name
1231            - port-index
1232            - sb-index
1233            - sb-pool-index
1234        reply: &sb-port-pool-get-reply
1235          value: 21
1236          attributes: *sb-port-pool-id-attrs
1237      dump:
1238        request:
1239          attributes: *dev-id-attrs
1240        reply: *sb-port-pool-get-reply
1241
1242    -
1243      name: sb-port-pool-set
1244      doc: Set shared buffer port-pool combinations and threshold.
1245      attribute-set: devlink
1246      dont-validate: [ strict ]
1247      flags: [ admin-perm ]
1248      do:
1249        pre: devlink-nl-pre-doit-port
1250        post: devlink-nl-post-doit
1251        request:
1252          attributes:
1253            - bus-name
1254            - dev-name
1255            - port-index
1256            - sb-index
1257            - sb-pool-index
1258            - sb-threshold
1259
1260    -
1261      name: sb-tc-pool-bind-get
1262      doc: Get shared buffer port-TC to pool bindings and threshold.
1263      attribute-set: devlink
1264      dont-validate: [ strict ]
1265      do:
1266        pre: devlink-nl-pre-doit-port
1267        post: devlink-nl-post-doit
1268        request:
1269          value: 23
1270          attributes: &sb-tc-pool-bind-id-attrs
1271            - bus-name
1272            - dev-name
1273            - port-index
1274            - sb-index
1275            - sb-pool-type
1276            - sb-tc-index
1277        reply: &sb-tc-pool-bind-get-reply
1278          value: 25
1279          attributes: *sb-tc-pool-bind-id-attrs
1280      dump:
1281        request:
1282          attributes: *dev-id-attrs
1283        reply: *sb-tc-pool-bind-get-reply
1284
1285    -
1286      name: sb-tc-pool-bind-set
1287      doc: Set shared buffer port-TC to pool bindings and threshold.
1288      attribute-set: devlink
1289      dont-validate: [ strict ]
1290      flags: [ admin-perm ]
1291      do:
1292        pre: devlink-nl-pre-doit-port
1293        post: devlink-nl-post-doit
1294        request:
1295          attributes:
1296            - bus-name
1297            - dev-name
1298            - port-index
1299            - sb-index
1300            - sb-pool-index
1301            - sb-pool-type
1302            - sb-tc-index
1303            - sb-threshold
1304
1305    -
1306      name: sb-occ-snapshot
1307      doc: Take occupancy snapshot of shared buffer.
1308      attribute-set: devlink
1309      dont-validate: [ strict ]
1310      flags: [ admin-perm ]
1311      do:
1312        pre: devlink-nl-pre-doit
1313        post: devlink-nl-post-doit
1314        request:
1315          value: 27
1316          attributes:
1317            - bus-name
1318            - dev-name
1319            - sb-index
1320
1321    -
1322      name: sb-occ-max-clear
1323      doc: Clear occupancy watermarks of shared buffer.
1324      attribute-set: devlink
1325      dont-validate: [ strict ]
1326      flags: [ admin-perm ]
1327      do:
1328        pre: devlink-nl-pre-doit
1329        post: devlink-nl-post-doit
1330        request:
1331          attributes:
1332            - bus-name
1333            - dev-name
1334            - sb-index
1335
1336    -
1337      name: eswitch-get
1338      doc: Get eswitch attributes.
1339      attribute-set: devlink
1340      dont-validate: [ strict ]
1341      flags: [ admin-perm ]
1342      do:
1343        pre: devlink-nl-pre-doit
1344        post: devlink-nl-post-doit
1345        request:
1346          attributes: *dev-id-attrs
1347        reply:
1348          value: 29
1349          attributes: &eswitch-attrs
1350            - bus-name
1351            - dev-name
1352            - eswitch-mode
1353            - eswitch-inline-mode
1354            - eswitch-encap-mode
1355
1356    -
1357      name: eswitch-set
1358      doc: Set eswitch attributes.
1359      attribute-set: devlink
1360      dont-validate: [ strict ]
1361      flags: [ admin-perm ]
1362      do:
1363        pre: devlink-nl-pre-doit
1364        post: devlink-nl-post-doit
1365        request:
1366          attributes: *eswitch-attrs
1367
1368    -
1369      name: dpipe-table-get
1370      doc: Get dpipe table attributes.
1371      attribute-set: devlink
1372      dont-validate: [ strict ]
1373      do:
1374        pre: devlink-nl-pre-doit
1375        post: devlink-nl-post-doit
1376        request:
1377          attributes:
1378            - bus-name
1379            - dev-name
1380            - dpipe-table-name
1381        reply:
1382          value: 31
1383          attributes:
1384            - bus-name
1385            - dev-name
1386            - dpipe-tables
1387
1388    -
1389      name: dpipe-entries-get
1390      doc: Get dpipe entries attributes.
1391      attribute-set: devlink
1392      dont-validate: [ strict ]
1393      do:
1394        pre: devlink-nl-pre-doit
1395        post: devlink-nl-post-doit
1396        request:
1397          attributes:
1398            - bus-name
1399            - dev-name
1400            - dpipe-table-name
1401        reply:
1402          attributes:
1403            - bus-name
1404            - dev-name
1405            - dpipe-entries
1406
1407    -
1408      name: dpipe-headers-get
1409      doc: Get dpipe headers attributes.
1410      attribute-set: devlink
1411      dont-validate: [ strict ]
1412      do:
1413        pre: devlink-nl-pre-doit
1414        post: devlink-nl-post-doit
1415        request:
1416          attributes:
1417            - bus-name
1418            - dev-name
1419        reply:
1420          attributes:
1421            - bus-name
1422            - dev-name
1423            - dpipe-headers
1424
1425    -
1426      name: dpipe-table-counters-set
1427      doc: Set dpipe counter attributes.
1428      attribute-set: devlink
1429      dont-validate: [ strict ]
1430      flags: [ admin-perm ]
1431      do:
1432        pre: devlink-nl-pre-doit
1433        post: devlink-nl-post-doit
1434        request:
1435          attributes:
1436            - bus-name
1437            - dev-name
1438            - dpipe-table-name
1439            - dpipe-table-counters-enabled
1440
1441    -
1442      name: resource-set
1443      doc: Set resource attributes.
1444      attribute-set: devlink
1445      dont-validate: [ strict ]
1446      flags: [ admin-perm ]
1447      do:
1448        pre: devlink-nl-pre-doit
1449        post: devlink-nl-post-doit
1450        request:
1451          attributes:
1452            - bus-name
1453            - dev-name
1454            - resource-id
1455            - resource-size
1456
1457    -
1458      name: resource-dump
1459      doc: Get resource attributes.
1460      attribute-set: devlink
1461      dont-validate: [ strict ]
1462      do:
1463        pre: devlink-nl-pre-doit
1464        post: devlink-nl-post-doit
1465        request:
1466          attributes:
1467            - bus-name
1468            - dev-name
1469        reply:
1470          value: 36
1471          attributes:
1472            - bus-name
1473            - dev-name
1474            - resource-list
1475
1476    -
1477      name: reload
1478      doc: Reload devlink.
1479      attribute-set: devlink
1480      dont-validate: [ strict ]
1481      flags: [ admin-perm ]
1482      do:
1483        pre: devlink-nl-pre-doit
1484        post: devlink-nl-post-doit
1485        request:
1486          attributes:
1487            - bus-name
1488            - dev-name
1489            - reload-action
1490            - reload-limits
1491            - netns-pid
1492            - netns-fd
1493            - netns-id
1494        reply:
1495          attributes:
1496            - bus-name
1497            - dev-name
1498            - reload-actions-performed
1499
1500    -
1501      name: param-get
1502      doc: Get param instances.
1503      attribute-set: devlink
1504      dont-validate: [ strict ]
1505      do:
1506        pre: devlink-nl-pre-doit
1507        post: devlink-nl-post-doit
1508        request:
1509          attributes: &param-id-attrs
1510            - bus-name
1511            - dev-name
1512            - param-name
1513        reply: &param-get-reply
1514          attributes: *param-id-attrs
1515      dump:
1516        request:
1517          attributes: *dev-id-attrs
1518        reply: *param-get-reply
1519
1520    -
1521      name: param-set
1522      doc: Set param instances.
1523      attribute-set: devlink
1524      dont-validate: [ strict ]
1525      flags: [ admin-perm ]
1526      do:
1527        pre: devlink-nl-pre-doit
1528        post: devlink-nl-post-doit
1529        request:
1530          attributes:
1531            - bus-name
1532            - dev-name
1533            - param-name
1534            - param-type
1535            # param-value-data is missing here as the type is variable
1536            - param-value-cmode
1537
1538    -
1539      name: region-get
1540      doc: Get region instances.
1541      attribute-set: devlink
1542      dont-validate: [ strict ]
1543      do:
1544        pre: devlink-nl-pre-doit-port-optional
1545        post: devlink-nl-post-doit
1546        request:
1547          value: 42
1548          attributes: &region-id-attrs
1549            - bus-name
1550            - dev-name
1551            - port-index
1552            - region-name
1553        reply: &region-get-reply
1554          value: 42
1555          attributes: *region-id-attrs
1556      dump:
1557        request:
1558          attributes: *dev-id-attrs
1559        reply: *region-get-reply
1560
1561    -
1562      name: region-new
1563      doc: Create region snapshot.
1564      attribute-set: devlink
1565      dont-validate: [ strict ]
1566      flags: [ admin-perm ]
1567      do:
1568        pre: devlink-nl-pre-doit-port-optional
1569        post: devlink-nl-post-doit
1570        request:
1571          value: 44
1572          attributes: &region-snapshot-id-attrs
1573            - bus-name
1574            - dev-name
1575            - port-index
1576            - region-name
1577            - region-snapshot-id
1578        reply:
1579          value: 44
1580          attributes: *region-snapshot-id-attrs
1581
1582    -
1583      name: region-del
1584      doc: Delete region snapshot.
1585      attribute-set: devlink
1586      dont-validate: [ strict ]
1587      flags: [ admin-perm ]
1588      do:
1589        pre: devlink-nl-pre-doit-port-optional
1590        post: devlink-nl-post-doit
1591        request:
1592          attributes: *region-snapshot-id-attrs
1593
1594    -
1595      name: region-read
1596      doc: Read region data.
1597      attribute-set: devlink
1598      dont-validate: [ dump-strict ]
1599      flags: [ admin-perm ]
1600      dump:
1601        request:
1602          attributes:
1603            - bus-name
1604            - dev-name
1605            - port-index
1606            - region-name
1607            - region-snapshot-id
1608            - region-direct
1609            - region-chunk-addr
1610            - region-chunk-len
1611        reply:
1612          value: 46
1613          attributes:
1614            - bus-name
1615            - dev-name
1616            - port-index
1617            - region-name
1618
1619    -
1620      name: port-param-get
1621      doc: Get port param instances.
1622      attribute-set: devlink
1623      dont-validate: [ strict, dump-strict ]
1624      do:
1625        pre: devlink-nl-pre-doit-port
1626        post: devlink-nl-post-doit
1627        request:
1628          attributes: *port-id-attrs
1629        reply:
1630          attributes: *port-id-attrs
1631      dump:
1632        reply:
1633          attributes: *port-id-attrs
1634
1635    -
1636      name: port-param-set
1637      doc: Set port param instances.
1638      attribute-set: devlink
1639      dont-validate: [ strict ]
1640      flags: [ admin-perm ]
1641      do:
1642        pre: devlink-nl-pre-doit-port
1643        post: devlink-nl-post-doit
1644        request:
1645          attributes: *port-id-attrs
1646
1647    -
1648      name: info-get
1649      doc: Get device information, like driver name, hardware and firmware versions etc.
1650      attribute-set: devlink
1651      dont-validate: [ strict, dump ]
1652      do:
1653        pre: devlink-nl-pre-doit
1654        post: devlink-nl-post-doit
1655        request:
1656          value: 51
1657          attributes: *dev-id-attrs
1658        reply: &info-get-reply
1659          value: 51
1660          attributes:
1661            - bus-name
1662            - dev-name
1663            - info-driver-name
1664            - info-serial-number
1665            - info-version-fixed
1666            - info-version-running
1667            - info-version-stored
1668      dump:
1669        reply: *info-get-reply
1670
1671    -
1672      name: health-reporter-get
1673      doc: Get health reporter instances.
1674      attribute-set: devlink
1675      dont-validate: [ strict ]
1676      do:
1677        pre: devlink-nl-pre-doit-port-optional
1678        post: devlink-nl-post-doit
1679        request:
1680          attributes: &health-reporter-id-attrs
1681            - bus-name
1682            - dev-name
1683            - port-index
1684            - health-reporter-name
1685        reply: &health-reporter-get-reply
1686          attributes: *health-reporter-id-attrs
1687      dump:
1688        request:
1689          attributes: *port-id-attrs
1690        reply: *health-reporter-get-reply
1691
1692    -
1693      name: health-reporter-set
1694      doc: Set health reporter instances.
1695      attribute-set: devlink
1696      dont-validate: [ strict ]
1697      flags: [ admin-perm ]
1698      do:
1699        pre: devlink-nl-pre-doit-port-optional
1700        post: devlink-nl-post-doit
1701        request:
1702          attributes:
1703            - bus-name
1704            - dev-name
1705            - port-index
1706            - health-reporter-name
1707            - health-reporter-graceful-period
1708            - health-reporter-auto-recover
1709            - health-reporter-auto-dump
1710
1711    -
1712      name: health-reporter-recover
1713      doc: Recover health reporter instances.
1714      attribute-set: devlink
1715      dont-validate: [ strict ]
1716      flags: [ admin-perm ]
1717      do:
1718        pre: devlink-nl-pre-doit-port-optional
1719        post: devlink-nl-post-doit
1720        request:
1721          attributes: *health-reporter-id-attrs
1722
1723    -
1724      name: health-reporter-diagnose
1725      doc: Diagnose health reporter instances.
1726      attribute-set: devlink
1727      dont-validate: [ strict ]
1728      flags: [ admin-perm ]
1729      do:
1730        pre: devlink-nl-pre-doit-port-optional
1731        post: devlink-nl-post-doit
1732        request:
1733          attributes: *health-reporter-id-attrs
1734
1735    -
1736      name: health-reporter-dump-get
1737      doc: Dump health reporter instances.
1738      attribute-set: devlink
1739      dont-validate: [ dump-strict ]
1740      flags: [ admin-perm ]
1741      dump:
1742        request:
1743          attributes: *health-reporter-id-attrs
1744        reply:
1745          value: 56
1746          attributes:
1747            - fmsg
1748
1749    -
1750      name: health-reporter-dump-clear
1751      doc: Clear dump of health reporter instances.
1752      attribute-set: devlink
1753      dont-validate: [ strict ]
1754      flags: [ admin-perm ]
1755      do:
1756        pre: devlink-nl-pre-doit-port-optional
1757        post: devlink-nl-post-doit
1758        request:
1759          attributes: *health-reporter-id-attrs
1760
1761    -
1762      name: flash-update
1763      doc: Flash update devlink instances.
1764      attribute-set: devlink
1765      dont-validate: [ strict ]
1766      flags: [ admin-perm ]
1767      do:
1768        pre: devlink-nl-pre-doit
1769        post: devlink-nl-post-doit
1770        request:
1771          attributes:
1772            - bus-name
1773            - dev-name
1774            - flash-update-file-name
1775            - flash-update-component
1776            - flash-update-overwrite-mask
1777
1778    -
1779      name: trap-get
1780      doc: Get trap instances.
1781      attribute-set: devlink
1782      dont-validate: [ strict ]
1783      do:
1784        pre: devlink-nl-pre-doit
1785        post: devlink-nl-post-doit
1786        request:
1787          value: 61
1788          attributes: &trap-id-attrs
1789            - bus-name
1790            - dev-name
1791            - trap-name
1792        reply: &trap-get-reply
1793          value: 63
1794          attributes: *trap-id-attrs
1795      dump:
1796        request:
1797          attributes: *dev-id-attrs
1798        reply: *trap-get-reply
1799
1800    -
1801      name: trap-set
1802      doc: Set trap instances.
1803      attribute-set: devlink
1804      dont-validate: [ strict ]
1805      flags: [ admin-perm ]
1806      do:
1807        pre: devlink-nl-pre-doit
1808        post: devlink-nl-post-doit
1809        request:
1810          attributes:
1811            - bus-name
1812            - dev-name
1813            - trap-name
1814            - trap-action
1815
1816    -
1817      name: trap-group-get
1818      doc: Get trap group instances.
1819      attribute-set: devlink
1820      dont-validate: [ strict ]
1821      do:
1822        pre: devlink-nl-pre-doit
1823        post: devlink-nl-post-doit
1824        request:
1825          value: 65
1826          attributes: &trap-group-id-attrs
1827            - bus-name
1828            - dev-name
1829            - trap-group-name
1830        reply: &trap-group-get-reply
1831          value: 67
1832          attributes: *trap-group-id-attrs
1833      dump:
1834        request:
1835          attributes: *dev-id-attrs
1836        reply: *trap-group-get-reply
1837
1838    -
1839      name: trap-group-set
1840      doc: Set trap group instances.
1841      attribute-set: devlink
1842      dont-validate: [ strict ]
1843      flags: [ admin-perm ]
1844      do:
1845        pre: devlink-nl-pre-doit
1846        post: devlink-nl-post-doit
1847        request:
1848          attributes:
1849            - bus-name
1850            - dev-name
1851            - trap-group-name
1852            - trap-action
1853            - trap-policer-id
1854
1855    -
1856      name: trap-policer-get
1857      doc: Get trap policer instances.
1858      attribute-set: devlink
1859      dont-validate: [ strict ]
1860      do:
1861        pre: devlink-nl-pre-doit
1862        post: devlink-nl-post-doit
1863        request:
1864          value: 69
1865          attributes: &trap-policer-id-attrs
1866            - bus-name
1867            - dev-name
1868            - trap-policer-id
1869        reply: &trap-policer-get-reply
1870          value: 71
1871          attributes: *trap-policer-id-attrs
1872      dump:
1873        request:
1874          attributes: *dev-id-attrs
1875        reply: *trap-policer-get-reply
1876
1877    -
1878      name: trap-policer-set
1879      doc: Get trap policer instances.
1880      attribute-set: devlink
1881      dont-validate: [ strict ]
1882      flags: [ admin-perm ]
1883      do:
1884        pre: devlink-nl-pre-doit
1885        post: devlink-nl-post-doit
1886        request:
1887          attributes:
1888            - bus-name
1889            - dev-name
1890            - trap-policer-id
1891            - trap-policer-rate
1892            - trap-policer-burst
1893
1894    -
1895      name: health-reporter-test
1896      doc: Test health reporter instances.
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: 73
1905          attributes: *health-reporter-id-attrs
1906
1907    -
1908      name: rate-get
1909      doc: Get rate instances.
1910      attribute-set: devlink
1911      dont-validate: [ strict ]
1912      do:
1913        pre: devlink-nl-pre-doit
1914        post: devlink-nl-post-doit
1915        request:
1916          value: 74
1917          attributes: &rate-id-attrs
1918            - bus-name
1919            - dev-name
1920            - port-index
1921            - rate-node-name
1922        reply: &rate-get-reply
1923          value: 76
1924          attributes: *rate-id-attrs
1925      dump:
1926        request:
1927          attributes: *dev-id-attrs
1928        reply: *rate-get-reply
1929
1930    -
1931      name: rate-set
1932      doc: Set rate instances.
1933      attribute-set: devlink
1934      dont-validate: [ strict ]
1935      flags: [ admin-perm ]
1936      do:
1937        pre: devlink-nl-pre-doit
1938        post: devlink-nl-post-doit
1939        request:
1940          attributes:
1941            - bus-name
1942            - dev-name
1943            - rate-node-name
1944            - rate-tx-share
1945            - rate-tx-max
1946            - rate-tx-priority
1947            - rate-tx-weight
1948            - rate-parent-node-name
1949
1950    -
1951      name: rate-new
1952      doc: Create rate instances.
1953      attribute-set: devlink
1954      dont-validate: [ strict ]
1955      flags: [ admin-perm ]
1956      do:
1957        pre: devlink-nl-pre-doit
1958        post: devlink-nl-post-doit
1959        request:
1960          attributes:
1961            - bus-name
1962            - dev-name
1963            - rate-node-name
1964            - rate-tx-share
1965            - rate-tx-max
1966            - rate-tx-priority
1967            - rate-tx-weight
1968            - rate-parent-node-name
1969
1970    -
1971      name: rate-del
1972      doc: Delete rate instances.
1973      attribute-set: devlink
1974      dont-validate: [ strict ]
1975      flags: [ admin-perm ]
1976      do:
1977        pre: devlink-nl-pre-doit
1978        post: devlink-nl-post-doit
1979        request:
1980          attributes:
1981            - bus-name
1982            - dev-name
1983            - rate-node-name
1984
1985    -
1986      name: linecard-get
1987      doc: Get line card instances.
1988      attribute-set: devlink
1989      dont-validate: [ strict ]
1990      do:
1991        pre: devlink-nl-pre-doit
1992        post: devlink-nl-post-doit
1993        request:
1994          value: 78
1995          attributes: &linecard-id-attrs
1996            - bus-name
1997            - dev-name
1998            - linecard-index
1999        reply: &linecard-get-reply
2000          value: 80
2001          attributes: *linecard-id-attrs
2002      dump:
2003        request:
2004          attributes: *dev-id-attrs
2005        reply: *linecard-get-reply
2006
2007    -
2008      name: linecard-set
2009      doc: Set line card instances.
2010      attribute-set: devlink
2011      dont-validate: [ strict ]
2012      flags: [ admin-perm ]
2013      do:
2014        pre: devlink-nl-pre-doit
2015        post: devlink-nl-post-doit
2016        request:
2017          attributes:
2018            - bus-name
2019            - dev-name
2020            - linecard-index
2021            - linecard-type
2022
2023    -
2024      name: selftests-get
2025      doc: Get device selftest instances.
2026      attribute-set: devlink
2027      dont-validate: [ strict, dump ]
2028      do:
2029        pre: devlink-nl-pre-doit
2030        post: devlink-nl-post-doit
2031        request:
2032          value: 82
2033          attributes: *dev-id-attrs
2034        reply: &selftests-get-reply
2035          value: 82
2036          attributes: *dev-id-attrs
2037      dump:
2038        reply: *selftests-get-reply
2039
2040    -
2041      name: selftests-run
2042      doc: Run device selftest instances.
2043      attribute-set: devlink
2044      dont-validate: [ strict ]
2045      flags: [ admin-perm ]
2046      do:
2047        pre: devlink-nl-pre-doit
2048        post: devlink-nl-post-doit
2049        request:
2050          attributes:
2051            - bus-name
2052            - dev-name
2053            - selftests
2054