GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / netlink / specs / tc.yaml
1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3 name: tc
4 protocol: netlink-raw
5 protonum: 0
6
7 doc:
8   Netlink raw family for tc qdisc, chain, class and filter configuration
9   over rtnetlink.
10
11 definitions:
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
497 attribute-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
1686 sub-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
1873 operations:
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
2027 mcast-groups:
2028   list:
2029     -
2030       name: rtnlgrp-tc
2031       value: 4