xref: /linux/Documentation/netlink/specs/tc.yaml (revision e7d759f31ca295d589f7420719c311870bb3166f)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: tc
4protocol: netlink-raw
5protonum: 0
6
7doc:
8  Netlink raw family for tc qdisc, chain, class and filter configuration
9  over rtnetlink.
10
11definitions:
12  -
13    name: tcmsg
14    type: struct
15    members:
16      -
17        name: family
18        type: u8
19      -
20        name: pad
21        type: pad
22        len: 3
23      -
24        name: ifindex
25        type: s32
26      -
27        name: handle
28        type: u32
29      -
30        name: parent
31        type: u32
32      -
33        name: info
34        type: u32
35  -
36    name: tc-cls-flags
37    type: flags
38    entries:
39      - skip-hw
40      - skip-sw
41      - in-hw
42      - not-in-nw
43      - verbose
44  -
45    name: tc-stats
46    type: struct
47    members:
48      -
49        name: bytes
50        type: u64
51      -
52        name: packets
53        type: u32
54      -
55        name: drops
56        type: u32
57      -
58        name: overlimits
59        type: u32
60      -
61        name: bps
62        type: u32
63      -
64        name: pps
65        type: u32
66      -
67        name: qlen
68        type: u32
69      -
70        name: backlog
71        type: u32
72  -
73    name: tc-cbs-qopt
74    type: struct
75    members:
76      -
77        name: offload
78        type: u8
79      -
80        name: pad
81        type: pad
82        len: 3
83      -
84        name: hicredit
85        type: s32
86      -
87        name: locredit
88        type: s32
89      -
90        name: idleslope
91        type: s32
92      -
93        name: sendslope
94        type: s32
95  -
96    name: tc-etf-qopt
97    type: struct
98    members:
99      -
100        name: delta
101        type: s32
102      -
103        name: clockid
104        type: s32
105      -
106        name: flags
107        type: s32
108  -
109    name: tc-fifo-qopt
110    type: struct
111    members:
112      -
113        name: limit
114        type: u32
115  -
116    name: tc-htb-opt
117    type: struct
118    members:
119      -
120        name: rate
121        type: binary
122        len: 12
123      -
124        name: ceil
125        type: binary
126        len: 12
127      -
128        name: buffer
129        type: u32
130      -
131        name: cbuffer
132        type: u32
133      -
134        name: quantum
135        type: u32
136      -
137        name: level
138        type: u32
139      -
140        name: prio
141        type: u32
142  -
143    name: tc-htb-glob
144    type: struct
145    members:
146      -
147        name: version
148        type: u32
149      -
150        name: rate2quantum
151        type: u32
152      -
153        name: defcls
154        type: u32
155      -
156        name: debug
157        type: u32
158      -
159        name: direct-pkts
160        type: u32
161  -
162    name: tc-gred-qopt
163    type: struct
164    members:
165      -
166        name: limit
167        type: u32
168      -
169        name: qth-min
170        type: u32
171      -
172        name: qth-max
173        type: u32
174      -
175        name: DP
176        type: u32
177      -
178        name: backlog
179        type: u32
180      -
181        name: qave
182        type: u32
183      -
184        name: forced
185        type: u32
186      -
187        name: early
188        type: u32
189      -
190        name: other
191        type: u32
192      -
193        name: pdrop
194        type: u32
195      -
196        name: Wlog
197        type: u8
198      -
199        name: Plog
200        type: u8
201      -
202        name: Scell_log
203        type: u8
204      -
205        name: prio
206        type: u8
207      -
208        name: packets
209        type: u32
210      -
211        name: bytesin
212        type: u32
213  -
214    name: tc-gred-sopt
215    type: struct
216    members:
217      -
218        name: DPs
219        type: u32
220      -
221        name: def_DP
222        type: u32
223      -
224        name: grio
225        type: u8
226      -
227        name: flags
228        type: u8
229      -
230        name: pad
231        type: pad
232        len: 2
233  -
234    name: tc-hfsc-qopt
235    type: struct
236    members:
237      -
238        name: defcls
239        type: u16
240  -
241    name: tc-mqprio-qopt
242    type: struct
243    members:
244      -
245        name: num-tc
246        type: u8
247      -
248        name: prio-tc-map
249        type: binary
250        len: 16
251      -
252        name: hw
253        type: u8
254      -
255        name: count
256        type: binary
257        len: 32
258      -
259        name: offset
260        type: binary
261        len: 32
262  -
263    name: tc-multiq-qopt
264    type: struct
265    members:
266      -
267        name: bands
268        type: u16
269      -
270        name: max-bands
271        type: u16
272  -
273    name: tc-netem-qopt
274    type: struct
275    members:
276      -
277        name: latency
278        type: u32
279      -
280        name: limit
281        type: u32
282      -
283        name: loss
284        type: u32
285      -
286        name: gap
287        type: u32
288      -
289        name: duplicate
290        type: u32
291      -
292        name: jitter
293        type: u32
294  -
295    name: tc-plug-qopt
296    type: struct
297    members:
298      -
299        name: action
300        type: s32
301      -
302        name: limit
303        type: u32
304  -
305    name: tc-prio-qopt
306    type: struct
307    members:
308      -
309        name: bands
310        type: u16
311      -
312        name: priomap
313        type: binary
314        len: 16
315  -
316    name: tc-red-qopt
317    type: struct
318    members:
319      -
320        name: limit
321        type: u32
322      -
323        name: qth-min
324        type: u32
325      -
326        name: qth-max
327        type: u32
328      -
329        name: Wlog
330        type: u8
331      -
332        name: Plog
333        type: u8
334      -
335        name: Scell-log
336        type: u8
337      -
338        name: flags
339        type: u8
340  -
341    name: tc-sfb-qopt
342    type: struct
343    members:
344      -
345        name: rehash-interval
346        type: u32
347      -
348        name: warmup-time
349        type: u32
350      -
351        name: max
352        type: u32
353      -
354        name: bin-size
355        type: u32
356      -
357        name: increment
358        type: u32
359      -
360        name: decrement
361        type: u32
362      -
363        name: limit
364        type: u32
365      -
366        name: penalty-rate
367        type: u32
368      -
369        name: penalty-burst
370        type: u32
371  -
372    name: tc-sfq-qopt-v1 # TODO nested structs
373    type: struct
374    members:
375      -
376        name: quantum
377        type: u32
378      -
379        name: perturb-period
380        type: s32
381      -
382        name: limit
383        type: u32
384      -
385        name: divisor
386        type: u32
387      -
388        name: flows
389        type: u32
390      -
391        name: depth
392        type: u32
393      -
394        name: headdrop
395        type: u32
396      -
397        name: limit
398        type: u32
399      -
400        name: qth-min
401        type: u32
402      -
403        name: qth-mac
404        type: u32
405      -
406        name: Wlog
407        type: u8
408      -
409        name: Plog
410        type: u8
411      -
412        name: Scell-log
413        type: u8
414      -
415        name: flags
416        type: u8
417      -
418        name: max-P
419        type: u32
420      -
421        name: prob-drop
422        type: u32
423      -
424        name: forced-drop
425        type: u32
426      -
427        name: prob-mark
428        type: u32
429      -
430        name: forced-mark
431        type: u32
432      -
433        name: prob-mark-head
434        type: u32
435      -
436        name: forced-mark-head
437        type: u32
438  -
439    name: tc-tbf-qopt
440    type: struct
441    members:
442      -
443        name: rate
444        type: binary # TODO nested struct tc_ratespec
445        len: 12
446      -
447        name: peakrate
448        type: binary # TODO nested struct tc_ratespec
449        len: 12
450      -
451        name: limit
452        type: u32
453      -
454        name: buffer
455        type: u32
456      -
457        name: mtu
458        type: u32
459  -
460    name: tc-sizespec
461    type: struct
462    members:
463      -
464        name: cell-log
465        type: u8
466      -
467        name: size-log
468        type: u8
469      -
470        name: cell-align
471        type: s16
472      -
473        name: overhead
474        type: s32
475      -
476        name: linklayer
477        type: u32
478      -
479        name: mpu
480        type: u32
481      -
482        name: mtu
483        type: u32
484      -
485        name: tsize
486        type: u32
487  -
488    name: gnet-estimator
489    type: struct
490    members:
491      -
492        name: interval
493        type: s8
494      -
495        name: ewma-log
496        type: u8
497attribute-sets:
498  -
499    name: tc-attrs
500    attributes:
501      -
502        name: kind
503        type: string
504      -
505        name: options
506        type: sub-message
507        sub-message: tc-options-msg
508        selector: kind
509      -
510        name: stats
511        type: binary
512        struct: tc-stats
513      -
514        name: xstats
515        type: binary
516      -
517        name: rate
518        type: binary
519        struct: gnet-estimator
520      -
521        name: fcnt
522        type: u32
523      -
524        name: stats2
525        type: nest
526        nested-attributes: tca-stats-attrs
527      -
528        name: stab
529        type: nest
530        nested-attributes: tca-stab-attrs
531      -
532        name: pad
533        type: pad
534      -
535        name: dump-invisible
536        type: flag
537      -
538        name: chain
539        type: u32
540      -
541        name: hw-offload
542        type: u8
543      -
544        name: ingress-block
545        type: u32
546      -
547        name: egress-block
548        type: u32
549      -
550        name: dump-flags
551        type: bitfield32
552      -
553        name: ext-warn-msg
554        type: string
555  -
556    name: tc-cake-attrs
557    attributes:
558      -
559        name: pad
560        type: pad
561      -
562        name: base-rate64
563        type: u64
564      -
565        name: diffserv-mode
566        type: u32
567      -
568        name: atm
569        type: u32
570      -
571        name: flow-mode
572        type: u32
573      -
574        name: overhead
575        type: u32
576      -
577        name: rtt
578        type: u32
579      -
580        name: target
581        type: u32
582      -
583        name: autorate
584        type: u32
585      -
586        name: memory
587        type: u32
588      -
589        name: nat
590        type: u32
591      -
592        name: raw
593        type: u32
594      -
595        name: wash
596        type: u32
597      -
598        name: mpu
599        type: u32
600      -
601        name: ingress
602        type: u32
603      -
604        name: ack-filter
605        type: u32
606      -
607        name: split-gso
608        type: u32
609      -
610        name: fwmark
611        type: u32
612  -
613    name: tc-cake-stats-attrs
614    attributes:
615      -
616        name: pad
617        type: pad
618      -
619        name: capacity-estimate64
620        type: u64
621      -
622        name: memory-limit
623        type: u32
624      -
625        name: memory-used
626        type: u32
627      -
628        name: avg-netoff
629        type: u32
630      -
631        name: min-netlen
632        type: u32
633      -
634        name: max-netlen
635        type: u32
636      -
637        name: min-adjlen
638        type: u32
639      -
640        name: max-adjlen
641        type: u32
642      -
643        name: tin-stats
644        type: binary
645      -
646        name: deficit
647        type: s32
648      -
649        name: cobalt-count
650        type: u32
651      -
652        name: dropping
653        type: u32
654      -
655        name: drop-next-us
656        type: s32
657      -
658        name: p-drop
659        type: u32
660      -
661        name: blue-timer-us
662        type: s32
663  -
664    name: tc-cbs-attrs
665    attributes:
666      -
667        name: parms
668        type: binary
669        struct: tc-cbs-qopt
670  -
671    name: tc-choke-attrs
672    attributes:
673      -
674        name: parms
675        type: binary
676        struct: tc-red-qopt
677      -
678        name: stab
679        type: binary
680      -
681        name: max-p
682        type: u32
683  -
684    name: tc-codel-attrs
685    attributes:
686      -
687        name: target
688        type: u32
689      -
690        name: limit
691        type: u32
692      -
693        name: interval
694        type: u32
695      -
696        name: ecn
697        type: u32
698      -
699        name: ce-threshold
700        type: u32
701  -
702    name: tc-drr-attrs
703    attributes:
704      -
705        name: quantum
706        type: u32
707  -
708    name: tc-flower-attrs
709    attributes:
710      -
711        name: classid
712        type: u32
713      -
714        name: indev
715        type: string
716      -
717        name: act
718        type: array-nest
719        nested-attributes: tc-act-attrs
720      -
721        name: key-eth-dst
722        type: binary
723        display-hint: mac
724      -
725        name: key-eth-dst-mask
726        type: binary
727        display-hint: mac
728      -
729        name: key-eth-src
730        type: binary
731        display-hint: mac
732      -
733        name: key-eth-src-mask
734        type: binary
735        display-hint: mac
736      -
737        name: key-eth-type
738        type: u16
739        byte-order: big-endian
740      -
741        name: key-ip-proto
742        type: u8
743      -
744        name: key-ipv4-src
745        type: u32
746        byte-order: big-endian
747        display-hint: ipv4
748      -
749        name: key-ipv4-src-mask
750        type: u32
751        byte-order: big-endian
752        display-hint: ipv4
753      -
754        name: key-ipv4-dst
755        type: u32
756        byte-order: big-endian
757        display-hint: ipv4
758      -
759        name: key-ipv4-dst-mask
760        type: u32
761        byte-order: big-endian
762        display-hint: ipv4
763      -
764        name: key-ipv6-src
765        type: binary
766        display-hint: ipv6
767      -
768        name: key-ipv6-src-mask
769        type: binary
770        display-hint: ipv6
771      -
772        name: key-ipv6-dst
773        type: binary
774        display-hint: ipv6
775      -
776        name: key-ipv6-dst-mask
777        type: binary
778        display-hint: ipv6
779      -
780        name: key-tcp-src
781        type: u16
782        byte-order: big-endian
783      -
784        name: key-tcp-dst
785        type: u16
786        byte-order: big-endian
787      -
788        name: key-udp-src
789        type: u16
790        byte-order: big-endian
791      -
792        name: key-udp-dst
793        type: u16
794        byte-order: big-endian
795      -
796        name: flags
797        type: u32
798        enum: tc-cls-flags
799        enum-as-flags: true
800      -
801        name: key-vlan-id
802        type: u16
803        byte-order: big-endian
804      -
805        name: key-vlan-prio
806        type: u8
807      -
808        name: key-vlan-eth-type
809        type: u16
810        byte-order: big-endian
811      -
812        name: key-enc-key-id
813        type: u32
814        byte-order: big-endian
815      -
816        name: key-enc-ipv4-src
817        type: u32
818        byte-order: big-endian
819        display-hint: ipv4
820      -
821        name: key-enc-ipv4-src-mask
822        type: u32
823        byte-order: big-endian
824        display-hint: ipv4
825      -
826        name: key-enc-ipv4-dst
827        type: u32
828        byte-order: big-endian
829        display-hint: ipv4
830      -
831        name: key-enc-ipv4-dst-mask
832        type: u32
833        byte-order: big-endian
834        display-hint: ipv4
835      -
836        name: key-enc-ipv6-src
837        type: binary
838        display-hint: ipv6
839      -
840        name: key-enc-ipv6-src-mask
841        type: binary
842        display-hint: ipv6
843      -
844        name: key-enc-ipv6-dst
845        type: binary
846        display-hint: ipv6
847      -
848        name: key-enc-ipv6-dst-mask
849        type: binary
850        display-hint: ipv6
851      -
852        name: key-tcp-src-mask
853        type: u16
854        byte-order: big-endian
855      -
856        name: key-tcp-dst-mask
857        type: u16
858        byte-order: big-endian
859      -
860        name: key-udp-src-mask
861        type: u16
862        byte-order: big-endian
863      -
864        name: key-udp-dst-mask
865        type: u16
866        byte-order: big-endian
867      -
868        name: key-sctp-src-mask
869        type: u16
870        byte-order: big-endian
871      -
872        name: key-sctp-dst-mask
873        type: u16
874        byte-order: big-endian
875      -
876        name: key-sctp-src
877        type: u16
878        byte-order: big-endian
879      -
880        name: key-sctp-dst
881        type: u16
882        byte-order: big-endian
883      -
884        name: key-enc-udp-src-port
885        type: u16
886        byte-order: big-endian
887      -
888        name: key-enc-udp-src-port-mask
889        type: u16
890        byte-order: big-endian
891      -
892        name: key-enc-udp-dst-port
893        type: u16
894        byte-order: big-endian
895      -
896        name: key-enc-udp-dst-port-mask
897        type: u16
898        byte-order: big-endian
899      -
900        name: key-flags
901        type: u32
902        byte-order: big-endian
903      -
904        name: key-flags-mask
905        type: u32
906        byte-order: big-endian
907      -
908        name: key-icmpv4-code
909        type: u8
910      -
911        name: key-icmpv4-code-mask
912        type: u8
913      -
914        name: key-icmpv4-type
915        type: u8
916      -
917        name: key-icmpv4-type-mask
918        type: u8
919      -
920        name: key-icmpv6-code
921        type: u8
922      -
923        name: key-icmpv6-code-mask
924        type: u8
925      -
926        name: key-icmpv6-type
927        type: u8
928      -
929        name: key-icmpv6-type-mask
930        type: u8
931      -
932        name: key-arp-sip
933        type: u32
934        byte-order: big-endian
935      -
936        name: key-arp-sip-mask
937        type: u32
938        byte-order: big-endian
939      -
940        name: key-arp-tip
941        type: u32
942        byte-order: big-endian
943      -
944        name: key-arp-tip-mask
945        type: u32
946        byte-order: big-endian
947      -
948        name: key-arp-op
949        type: u8
950      -
951        name: key-arp-op-mask
952        type: u8
953      -
954        name: key-arp-sha
955        type: binary
956      -
957        name: key-arp-sha-mask
958        type: binary
959      -
960        name: key-arp-tha
961        type: binary
962      -
963        name: key-arp-tha-mask
964        type: binary
965      -
966        name: key-mpls-ttl
967        type: u8
968      -
969        name: key-mpls-bos
970        type: u8
971      -
972        name: key-mpls-tc
973        type: u8
974      -
975        name: key-mpls-label
976        type: u32
977        byte-order: big-endian
978      -
979        name: key-tcp-flags
980        type: u16
981        byte-order: big-endian
982      -
983        name: key-tcp-flags-mask
984        type: u16
985        byte-order: big-endian
986      -
987        name: key-ip-tos
988        type: u8
989      -
990        name: key-ip-tos-mask
991        type: u8
992      -
993        name: key-ip-ttl
994        type: u8
995      -
996        name: key-ip-ttl-mask
997        type: u8
998      -
999        name: key-cvlan-id
1000        type: u16
1001        byte-order: big-endian
1002      -
1003        name: key-cvlan-prio
1004        type: u8
1005      -
1006        name: key-cvlan-eth-type
1007        type: u16
1008        byte-order: big-endian
1009      -
1010        name: key-enc-ip-tos
1011        type: u8
1012      -
1013        name: key-enc-ip-tos-mask
1014        type: u8
1015      -
1016        name: key-enc-ip-ttl
1017        type: u8
1018      -
1019        name: key-enc-ip-ttl-mask
1020        type: u8
1021      -
1022        name: key-enc-opts
1023        type: binary
1024      -
1025        name: key-enc-opts-mask
1026        type: binary
1027      -
1028        name: in-hw-count
1029        type: u32
1030      -
1031        name: key-port-src-min
1032        type: u16
1033        byte-order: big-endian
1034      -
1035        name: key-port-src-max
1036        type: u16
1037        byte-order: big-endian
1038      -
1039        name: key-port-dst-min
1040        type: u16
1041        byte-order: big-endian
1042      -
1043        name: key-port-dst-max
1044        type: u16
1045        byte-order: big-endian
1046      -
1047        name: key-ct-state
1048        type: u16
1049      -
1050        name: key-ct-state-mask
1051        type: u16
1052      -
1053        name: key-ct-zone
1054        type: u16
1055      -
1056        name: key-ct-zone-mask
1057        type: u16
1058      -
1059        name: key-ct-mark
1060        type: u32
1061      -
1062        name: key-ct-mark-mask
1063        type: u32
1064      -
1065        name: key-ct-labels
1066        type: binary
1067      -
1068        name: key-ct-labels-mask
1069        type: binary
1070      -
1071        name: key-mpls-opts
1072        type: binary
1073      -
1074        name: key-hash
1075        type: u32
1076      -
1077        name: key-hash-mask
1078        type: u32
1079      -
1080        name: key-num-of-vlans
1081        type: u8
1082      -
1083        name: key-pppoe-sid
1084        type: u16
1085        byte-order: big-endian
1086      -
1087        name: key-ppp-proto
1088        type: u16
1089        byte-order: big-endian
1090      -
1091        name: key-l2-tpv3-sid
1092        type: u32
1093        byte-order: big-endian
1094  -
1095    name: tc-gred-attrs
1096    attributes:
1097      -
1098        name: parms
1099        type: binary # array of struct: tc-gred-qopt
1100      -
1101        name: stab
1102        type: binary
1103        sub-type: u8
1104      -
1105        name: dps
1106        type: binary
1107        struct: tc-gred-sopt
1108      -
1109        name: max-p
1110        type: binary
1111        sub-type: u32
1112      -
1113        name: limit
1114        type: u32
1115      -
1116        name: vq-list
1117        type: nest
1118        nested-attributes: tca-gred-vq-list-attrs
1119  -
1120    name: tca-gred-vq-list-attrs
1121    attributes:
1122      -
1123        name: entry
1124        type: nest
1125        nested-attributes: tca-gred-vq-entry-attrs
1126        multi-attr: true
1127  -
1128    name: tca-gred-vq-entry-attrs
1129    attributes:
1130      -
1131        name: pad
1132        type: pad
1133      -
1134        name: dp
1135        type: u32
1136      -
1137        name: stat-bytes
1138        type: u32
1139      -
1140        name: stat-packets
1141        type: u32
1142      -
1143        name: stat-backlog
1144        type: u32
1145      -
1146        name: stat-prob-drop
1147        type: u32
1148      -
1149        name: stat-prob-mark
1150        type: u32
1151      -
1152        name: stat-forced-drop
1153        type: u32
1154      -
1155        name: stat-forced-mark
1156        type: u32
1157      -
1158        name: stat-pdrop
1159        type: u32
1160      -
1161        name: stat-other
1162        type: u32
1163      -
1164        name: flags
1165        type: u32
1166  -
1167    name: tc-hfsc-attrs
1168    attributes:
1169      -
1170        name: rsc
1171        type: binary
1172      -
1173        name: fsc
1174        type: binary
1175      -
1176        name: usc
1177        type: binary
1178  -
1179    name: tc-hhf-attrs
1180    attributes:
1181      -
1182        name: backlog-limit
1183        type: u32
1184      -
1185        name: quantum
1186        type: u32
1187      -
1188        name: hh-flows-limit
1189        type: u32
1190      -
1191        name: reset-timeout
1192        type: u32
1193      -
1194        name: admit-bytes
1195        type: u32
1196      -
1197        name: evict-timeout
1198        type: u32
1199      -
1200        name: non-hh-weight
1201        type: u32
1202  -
1203    name: tc-htb-attrs
1204    attributes:
1205      -
1206        name: parms
1207        type: binary
1208        struct: tc-htb-opt
1209      -
1210        name: init
1211        type: binary
1212        struct: tc-htb-glob
1213      -
1214        name: ctab
1215        type: binary
1216      -
1217        name: rtab
1218        type: binary
1219      -
1220        name: direct-qlen
1221        type: u32
1222      -
1223        name: rate64
1224        type: u64
1225      -
1226        name: ceil64
1227        type: u64
1228      -
1229        name: pad
1230        type: pad
1231      -
1232        name: offload
1233        type: flag
1234  -
1235    name: tc-act-attrs
1236    attributes:
1237      -
1238        name: kind
1239        type: string
1240      -
1241        name: options
1242        type: sub-message
1243        sub-message: tc-act-options-msg
1244        selector: kind
1245      -
1246        name: index
1247        type: u32
1248      -
1249        name: stats
1250        type: binary
1251      -
1252        name: pad
1253        type: pad
1254      -
1255        name: cookie
1256        type: binary
1257      -
1258        name: flags
1259        type: bitfield32
1260      -
1261        name: hw-stats
1262        type: bitfield32
1263      -
1264        name: used-hw-stats
1265        type: bitfield32
1266      -
1267        name: in-hw-count
1268        type: u32
1269  -
1270    name: tc-etf-attrs
1271    attributes:
1272      -
1273        name: parms
1274        type: binary
1275        struct: tc-etf-qopt
1276  -
1277    name: tc-ets-attrs
1278    attributes:
1279      -
1280        name: nbands
1281        type: u8
1282      -
1283        name: nstrict
1284        type: u8
1285      -
1286        name: quanta
1287        type: nest
1288        nested-attributes: tc-ets-attrs
1289      -
1290        name: quanta-band
1291        type: u32
1292        multi-attr: true
1293      -
1294        name: priomap
1295        type: nest
1296        nested-attributes: tc-ets-attrs
1297      -
1298        name: priomap-band
1299        type: u8
1300        multi-attr: true
1301  -
1302    name: tc-fq-attrs
1303    attributes:
1304      -
1305        name: plimit
1306        type: u32
1307      -
1308        name: flow-plimit
1309        type: u32
1310      -
1311        name: quantum
1312        type: u32
1313      -
1314        name: initial-quantum
1315        type: u32
1316      -
1317        name: rate-enable
1318        type: u32
1319      -
1320        name: flow-default-rate
1321        type: u32
1322      -
1323        name: flow-max-rate
1324        type: u32
1325      -
1326        name: buckets-log
1327        type: u32
1328      -
1329        name: flow-refill-delay
1330        type: u32
1331      -
1332        name: orphan-mask
1333        type: u32
1334      -
1335        name: low-rate-threshold
1336        type: u32
1337      -
1338        name: ce-threshold
1339        type: u32
1340      -
1341        name: timer-slack
1342        type: u32
1343      -
1344        name: horizon
1345        type: u32
1346      -
1347        name: horizon-drop
1348        type: u8
1349  -
1350    name: tc-fq-codel-attrs
1351    attributes:
1352      -
1353        name: target
1354        type: u32
1355      -
1356        name: limit
1357        type: u32
1358      -
1359        name: interval
1360        type: u32
1361      -
1362        name: ecn
1363        type: u32
1364      -
1365        name: flows
1366        type: u32
1367      -
1368        name: quantum
1369        type: u32
1370      -
1371        name: ce-threshold
1372        type: u32
1373      -
1374        name: drop-batch-size
1375        type: u32
1376      -
1377        name: memory-limit
1378        type: u32
1379      -
1380        name: ce-threshold-selector
1381        type: u8
1382      -
1383        name: ce-threshold-mask
1384        type: u8
1385  -
1386    name: tc-fq-pie-attrs
1387    attributes:
1388      -
1389        name: limit
1390        type: u32
1391      -
1392        name: flows
1393        type: u32
1394      -
1395        name: target
1396        type: u32
1397      -
1398        name: tupdate
1399        type: u32
1400      -
1401        name: alpha
1402        type: u32
1403      -
1404        name: beta
1405        type: u32
1406      -
1407        name: quantum
1408        type: u32
1409      -
1410        name: memory-limit
1411        type: u32
1412      -
1413        name: ecn-prob
1414        type: u32
1415      -
1416        name: ecn
1417        type: u32
1418      -
1419        name: bytemode
1420        type: u32
1421      -
1422        name: dq-rate-estimator
1423        type: u32
1424  -
1425    name: tc-netem-attrs
1426    attributes:
1427      -
1428        name: corr
1429        type: binary
1430      -
1431        name: delay-dist
1432        type: binary
1433        sub-type: s16
1434      -
1435        name: reorder
1436        type: binary
1437      -
1438        name: corrupt
1439        type: binary
1440      -
1441        name: loss
1442        type: binary
1443      -
1444        name: rate
1445        type: binary
1446      -
1447        name: ecn
1448        type: u32
1449      -
1450        name: rate64
1451        type: u64
1452      -
1453        name: pad
1454        type: u32
1455      -
1456        name: latency64
1457        type: s64
1458      -
1459        name: jitter64
1460        type: s64
1461      -
1462        name: slot
1463        type: binary
1464      -
1465        name: slot-dist
1466        type: binary
1467        sub-type: s16
1468  -
1469    name: tc-pie-attrs
1470    attributes:
1471      -
1472        name: target
1473        type: u32
1474      -
1475        name: limit
1476        type: u32
1477      -
1478        name: tupdate
1479        type: u32
1480      -
1481        name: alpha
1482        type: u32
1483      -
1484        name: beta
1485        type: u32
1486      -
1487        name: ecn
1488        type: u32
1489      -
1490        name: bytemode
1491        type: u32
1492      -
1493        name: dq-rate-estimator
1494        type: u32
1495  -
1496    name: tc-qfq-attrs
1497    attributes:
1498      -
1499        name: weight
1500        type: u32
1501      -
1502        name: lmax
1503        type: u32
1504  -
1505    name: tc-red-attrs
1506    attributes:
1507      -
1508        name: parms
1509        type: binary
1510        struct: tc-red-qopt
1511      -
1512        name: stab
1513        type: binary
1514      -
1515        name: max-p
1516        type: u32
1517      -
1518        name: flags
1519        type: binary
1520      -
1521        name: early-drop-block
1522        type: u32
1523      -
1524        name: mark-block
1525        type: u32
1526  -
1527    name: tc-taprio-attrs
1528    attributes:
1529      -
1530        name: priomap
1531        type: binary
1532        struct: tc-mqprio-qopt
1533      -
1534        name: sched-entry-list
1535        type: nest
1536        nested-attributes: tc-taprio-sched-entry-list
1537      -
1538        name: sched-base-time
1539        type: s64
1540      -
1541        name: sched-single-entry
1542        type: nest
1543        nested-attributes: tc-taprio-sched-entry
1544      -
1545        name: sched-clockid
1546        type: s32
1547      -
1548        name: pad
1549        type: pad
1550      -
1551        name: admin-sched
1552        type: binary
1553      -
1554        name: sched-cycle-time
1555        type: s64
1556      -
1557        name: sched-cycle-time-extension
1558        type: s64
1559      -
1560        name: flags
1561        type: u32
1562      -
1563        name: txtime-delay
1564        type: u32
1565      -
1566        name: tc-entry
1567        type: nest
1568        nested-attributes: tc-taprio-tc-entry-attrs
1569  -
1570    name: tc-taprio-sched-entry-list
1571    attributes:
1572      -
1573        name: entry
1574        type: nest
1575        nested-attributes: tc-taprio-sched-entry
1576  -
1577    name: tc-taprio-sched-entry
1578    attributes:
1579      -
1580        name: index
1581        type: u32
1582      -
1583        name: cmd
1584        type: u8
1585      -
1586        name: gate-mask
1587        type: u32
1588      -
1589        name: interval
1590        type: u32
1591  -
1592    name: tc-taprio-tc-entry-attrs
1593    attributes:
1594      -
1595        name: index
1596        type: u32
1597      -
1598        name: max-sdu
1599        type: u32
1600      -
1601        name: fp
1602        type: u32
1603  -
1604    name: tc-tbf-attrs
1605    attributes:
1606      -
1607        name: parms
1608        type: binary
1609        struct: tc-tbf-qopt
1610      -
1611        name: rtab
1612        type: binary
1613      -
1614        name: ptab
1615        type: binary
1616      -
1617        name: rate64
1618        type: u64
1619      -
1620        name: prate4
1621        type: u64
1622      -
1623        name: burst
1624        type: u32
1625      -
1626        name: pburst
1627        type: u32
1628      -
1629        name: pad
1630        type: pad
1631  -
1632    name: tca-gact-attrs
1633    attributes:
1634      -
1635        name: tm
1636        type: binary
1637      -
1638        name: parms
1639        type: binary
1640      -
1641        name: prob
1642        type: binary
1643      -
1644        name: pad
1645        type: pad
1646  -
1647    name: tca-stab-attrs
1648    attributes:
1649      -
1650        name: base
1651        type: binary
1652        struct: tc-sizespec
1653      -
1654        name: data
1655        type: binary
1656  -
1657    name: tca-stats-attrs
1658    attributes:
1659      -
1660        name: basic
1661        type: binary
1662      -
1663        name: rate-est
1664        type: binary
1665      -
1666        name: queue
1667        type: binary
1668      -
1669        name: app
1670        type: binary # TODO sub-message needs 2+ level deep lookup
1671        sub-message: tca-stats-app-msg
1672        selector: kind
1673      -
1674        name: rate-est64
1675        type: binary
1676      -
1677        name: pad
1678        type: pad
1679      -
1680        name: basic-hw
1681        type: binary
1682      -
1683        name: pkt64
1684        type: binary
1685
1686sub-messages:
1687  -
1688    name: tc-options-msg
1689    formats:
1690      -
1691        value: bfifo
1692        fixed-header: tc-fifo-qopt
1693      -
1694        value: cake
1695        attribute-set: tc-cake-attrs
1696      -
1697        value: cbs
1698        attribute-set: tc-cbs-attrs
1699      -
1700        value: choke
1701        attribute-set: tc-choke-attrs
1702      -
1703        value: clsact # no content
1704      -
1705        value: codel
1706        attribute-set: tc-codel-attrs
1707      -
1708        value: drr
1709        attribute-set: tc-drr-attrs
1710      -
1711        value: etf
1712        attribute-set: tc-etf-attrs
1713      -
1714        value: ets
1715        attribute-set: tc-ets-attrs
1716      -
1717        value: fq
1718        attribute-set: tc-fq-attrs
1719      -
1720        value: fq_codel
1721        attribute-set: tc-fq-codel-attrs
1722      -
1723        value: fq_pie
1724        attribute-set: tc-fq-pie-attrs
1725      -
1726        value: flower
1727        attribute-set: tc-flower-attrs
1728      -
1729        value: gred
1730        attribute-set: tc-gred-attrs
1731      -
1732        value: hfsc
1733        fixed-header: tc-hfsc-qopt
1734      -
1735        value: hhf
1736        attribute-set: tc-hhf-attrs
1737      -
1738        value: htb
1739        attribute-set: tc-htb-attrs
1740      -
1741        value: ingress # no content
1742      -
1743        value: mq # no content
1744      -
1745        value: mqprio
1746        fixed-header: tc-mqprio-qopt
1747      -
1748        value: multiq
1749        fixed-header: tc-multiq-qopt
1750      -
1751        value: netem
1752        fixed-header: tc-netem-qopt
1753        attribute-set: tc-netem-attrs
1754      -
1755        value: pfifo
1756        fixed-header: tc-fifo-qopt
1757      -
1758        value: pfifo_fast
1759        fixed-header: tc-prio-qopt
1760      -
1761        value: pfifo_head_drop
1762        fixed-header: tc-fifo-qopt
1763      -
1764        value: pie
1765        attribute-set: tc-pie-attrs
1766      -
1767        value: plug
1768        fixed-header: tc-plug-qopt
1769      -
1770        value: prio
1771        fixed-header: tc-prio-qopt
1772      -
1773        value: qfq
1774        attribute-set: tc-qfq-attrs
1775      -
1776        value: red
1777        attribute-set: tc-red-attrs
1778      -
1779        value: sfb
1780        fixed-header: tc-sfb-qopt
1781      -
1782        value: sfq
1783        fixed-header: tc-sfq-qopt-v1
1784      -
1785        value: taprio
1786        attribute-set: tc-taprio-attrs
1787      -
1788        value: tbf
1789        attribute-set: tc-tbf-attrs
1790  -
1791    name: tc-act-options-msg
1792    formats:
1793      -
1794        value: gact
1795        attribute-set: tca-gact-attrs
1796  -
1797    name: tca-stats-app-msg
1798    formats:
1799      -
1800        value: bfifo
1801      -
1802        value: blackhole
1803      -
1804        value: cake
1805        attribute-set: tc-cake-stats-attrs
1806      -
1807        value: cbs
1808      -
1809        value: choke
1810      -
1811        value: clsact
1812      -
1813        value: codel
1814      -
1815        value: drr
1816      -
1817        value: etf
1818      -
1819        value: ets
1820      -
1821        value: fq
1822      -
1823        value: fq_codel
1824      -
1825        value: fq_pie
1826      -
1827        value: flower
1828      -
1829        value: gred
1830      -
1831        value: hfsc
1832      -
1833        value: hhf
1834      -
1835        value: htb
1836      -
1837        value: ingress
1838      -
1839        value: mq
1840      -
1841        value: mqprio
1842      -
1843        value: multiq
1844      -
1845        value: netem
1846      -
1847        value: noqueue
1848      -
1849        value: pfifo
1850      -
1851        value: pfifo_fast
1852      -
1853        value: pfifo_head_drop
1854      -
1855        value: pie
1856      -
1857        value: plug
1858      -
1859        value: prio
1860      -
1861        value: qfq
1862      -
1863        value: red
1864      -
1865        value: sfb
1866      -
1867        value: sfq
1868      -
1869        value: taprio
1870      -
1871        value: tbf
1872
1873operations:
1874  enum-model: directional
1875  list:
1876    -
1877      name: newqdisc
1878      doc: Create new tc qdisc.
1879      attribute-set: tc-attrs
1880      fixed-header: tcmsg
1881      do:
1882        request:
1883          value: 36
1884          attributes: &create-params
1885            - kind
1886            - options
1887            - rate
1888            - chain
1889            - ingress-block
1890            - egress-block
1891    -
1892      name: delqdisc
1893      doc: Delete existing tc qdisc.
1894      attribute-set: tc-attrs
1895      fixed-header: tcmsg
1896      do:
1897        request:
1898          value: 37
1899    -
1900      name: getqdisc
1901      doc: Get / dump tc qdisc information.
1902      attribute-set: tc-attrs
1903      fixed-header: tcmsg
1904      do:
1905        request:
1906          value: 38
1907          attributes:
1908            - dump-invisible
1909        reply:
1910          value: 36
1911          attributes: &tc-all
1912            - kind
1913            - options
1914            - stats
1915            - xstats
1916            - rate
1917            - fcnt
1918            - stats2
1919            - stab
1920            - chain
1921            - ingress-block
1922            - egress-block
1923    -
1924      name: newtclass
1925      doc: Get / dump tc traffic class information.
1926      attribute-set: tc-attrs
1927      fixed-header: tcmsg
1928      do:
1929        request:
1930          value: 40
1931          attributes: *create-params
1932    -
1933      name: deltclass
1934      doc: Get / dump tc traffic class information.
1935      attribute-set: tc-attrs
1936      fixed-header: tcmsg
1937      do:
1938        request:
1939          value: 41
1940    -
1941      name: gettclass
1942      doc: Get / dump tc traffic class information.
1943      attribute-set: tc-attrs
1944      fixed-header: tcmsg
1945      do:
1946        request:
1947          value: 42
1948        reply:
1949          value: 40
1950          attributes: *tc-all
1951    -
1952      name: newtfilter
1953      doc: Get / dump tc filter information.
1954      attribute-set: tc-attrs
1955      fixed-header: tcmsg
1956      do:
1957        request:
1958          value: 44
1959          attributes: *create-params
1960    -
1961      name: deltfilter
1962      doc: Get / dump tc filter information.
1963      attribute-set: tc-attrs
1964      fixed-header: tcmsg
1965      do:
1966        request:
1967          value: 45
1968          attributes:
1969            - chain
1970            - kind
1971    -
1972      name: gettfilter
1973      doc: Get / dump tc filter information.
1974      attribute-set: tc-attrs
1975      fixed-header: tcmsg
1976      do:
1977        request:
1978          value: 46
1979          attributes:
1980            - chain
1981            - kind
1982        reply:
1983          value: 44
1984          attributes: *tc-all
1985      dump:
1986        request:
1987          value: 46
1988          attributes:
1989            - chain
1990            - dump-flags
1991        reply:
1992          value: 44
1993          attributes: *tc-all
1994    -
1995      name: newchain
1996      doc: Get / dump tc chain information.
1997      attribute-set: tc-attrs
1998      fixed-header: tcmsg
1999      do:
2000        request:
2001          value: 100
2002          attributes: *create-params
2003    -
2004      name: delchain
2005      doc: Get / dump tc chain information.
2006      attribute-set: tc-attrs
2007      fixed-header: tcmsg
2008      do:
2009        request:
2010          value: 101
2011          attributes:
2012            - chain
2013    -
2014      name: getchain
2015      doc: Get / dump tc chain information.
2016      attribute-set: tc-attrs
2017      fixed-header: tcmsg
2018      do:
2019        request:
2020          value: 102
2021          attributes:
2022            - chain
2023        reply:
2024          value: 100
2025          attributes: *tc-all
2026
2027mcast-groups:
2028  list:
2029    -
2030      name: rtnlgrp-tc
2031      value: 4
2032