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