xref: /linux/Documentation/netlink/specs/tc.yaml (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2---
3name: tc
4protocol: netlink-raw
5uapi-header: linux/pkt_cls.h
6protonum: 0
7
8doc: >-
9  Netlink raw family for tc qdisc, chain, class and filter configuration
10  over rtnetlink.
11
12definitions:
13  -
14    name: tcmsg
15    type: struct
16    header: linux/rtnetlink.h
17    members:
18      -
19        name: family
20        type: u8
21      -
22        name: pad
23        type: pad
24        len: 3
25      -
26        name: ifindex
27        type: s32
28      -
29        name: handle
30        type: u32
31      -
32        name: parent
33        type: u32
34      -
35        name: info
36        type: u32
37  -
38    name: cls-flags
39    enum-name:
40    type: flags
41    entries:
42      - skip-hw
43      - skip-sw
44      - in-hw
45      - not-in-nw
46      - verbose
47  -
48    name: flower-key-ctrl-flags
49    name-prefix: tca-flower-key-flags-
50    enum-name:
51    type: flags
52    entries:
53      - frag
54      - firstfrag
55      - tuncsum
56      - tundf
57      - tunoam
58      - tuncrit
59  -
60    name: dualpi2-drop-overload
61    type: enum
62    entries: [overflow, drop]
63  -
64    name: dualpi2-drop-early
65    type: enum
66    entries: [drop-dequeue, drop-enqueue]
67  -
68    name: dualpi2-ecn-mask
69    type: enum
70    value-start: 1
71    entries: [l4s-ect, cla-ect, any-ect]
72  -
73    name: dualpi2-split-gso
74    type: enum
75    entries: [no-split-gso, split-gso]
76  -
77    name: tc-stats
78    type: struct
79    members:
80      -
81        name: bytes
82        type: u64
83        doc: Number of enqueued bytes
84      -
85        name: packets
86        type: u32
87        doc: Number of enqueued packets
88      -
89        name: drops
90        type: u32
91        doc: Packets dropped because of lack of resources
92      -
93        name: overlimits
94        type: u32
95        doc: |
96          Number of throttle events when this flow goes out of allocated
97          bandwidth
98      -
99        name: bps
100        type: u32
101        doc: Current flow byte rate
102      -
103        name: pps
104        type: u32
105        doc: Current flow packet rate
106      -
107        name: qlen
108        type: u32
109      -
110        name: backlog
111        type: u32
112  -
113    name: tc-cbs-qopt
114    type: struct
115    members:
116      -
117        name: offload
118        type: u8
119      -
120        name: pad
121        type: pad
122        len: 3
123      -
124        name: hicredit
125        type: s32
126      -
127        name: locredit
128        type: s32
129      -
130        name: idleslope
131        type: s32
132      -
133        name: sendslope
134        type: s32
135  -
136    name: tc-etf-qopt
137    type: struct
138    members:
139      -
140        name: delta
141        type: s32
142      -
143        name: clockid
144        type: s32
145      -
146        name: flags
147        type: s32
148  -
149    name: tc-fifo-qopt
150    type: struct
151    members:
152      -
153        name: limit
154        type: u32
155        doc: Queue length; bytes for bfifo, packets for pfifo
156  -
157    name: tc-htb-opt
158    type: struct
159    members:
160      -
161        name: rate
162        type: binary
163        struct: tc-ratespec
164      -
165        name: ceil
166        type: binary
167        struct: tc-ratespec
168      -
169        name: buffer
170        type: u32
171      -
172        name: cbuffer
173        type: u32
174      -
175        name: quantum
176        type: u32
177      -
178        name: level
179        type: u32
180      -
181        name: prio
182        type: u32
183  -
184    name: tc-htb-glob
185    type: struct
186    members:
187      -
188        name: version
189        type: u32
190      -
191        name: rate2quantum
192        type: u32
193        doc: bps->quantum divisor
194      -
195        name: defcls
196        type: u32
197        doc: Default class number
198      -
199        name: debug
200        type: u32
201        doc: Debug flags
202      -
203        name: direct-pkts
204        type: u32
205        doc: Count of non shaped packets
206  -
207    name: tc-gred-qopt
208    type: struct
209    members:
210      -
211        name: limit
212        type: u32
213        doc: HARD maximal queue length in bytes
214      -
215        name: qth-min
216        type: u32
217        doc: Min average length threshold in bytes
218      -
219        name: qth-max
220        type: u32
221        doc: Max average length threshold in bytes
222      -
223        name: DP
224        type: u32
225        doc: Up to 2^32 DPs
226      -
227        name: backlog
228        type: u32
229      -
230        name: qave
231        type: u32
232      -
233        name: forced
234        type: u32
235      -
236        name: early
237        type: u32
238      -
239        name: other
240        type: u32
241      -
242        name: pdrop
243        type: u32
244      -
245        name: Wlog
246        type: u8
247        doc: log(W)
248      -
249        name: Plog
250        type: u8
251        doc: log(P_max / (qth-max - qth-min))
252      -
253        name: Scell-log
254        type: u8
255        doc: cell size for idle damping
256      -
257        name: prio
258        type: u8
259        doc: Priority of this VQ
260      -
261        name: packets
262        type: u32
263      -
264        name: bytesin
265        type: u32
266  -
267    name: tc-gred-sopt
268    type: struct
269    members:
270      -
271        name: DPs
272        type: u32
273      -
274        name: def-DP
275        type: u32
276      -
277        name: grio
278        type: u8
279      -
280        name: flags
281        type: u8
282      -
283        name: pad
284        type: pad
285        len: 2
286  -
287    name: tc-hfsc-qopt
288    type: struct
289    members:
290      -
291        name: defcls
292        type: u16
293  -
294    name: tc-mqprio-qopt
295    type: struct
296    members:
297      -
298        name: num-tc
299        type: u8
300      -
301        name: prio-tc-map
302        type: binary
303        len: 16
304      -
305        name: hw
306        type: u8
307      -
308        name: count
309        type: binary
310        len: 32
311      -
312        name: offset
313        type: binary
314        len: 32
315  -
316    name: tc-multiq-qopt
317    type: struct
318    members:
319      -
320        name: bands
321        type: u16
322        doc: Number of bands
323      -
324        name: max-bands
325        type: u16
326        doc: Maximum number of queues
327  -
328    name: tc-netem-qopt
329    type: struct
330    members:
331      -
332        name: latency
333        type: u32
334        doc: Added delay in microseconds
335      -
336        name: limit
337        type: u32
338        doc: Fifo limit in packets
339      -
340        name: loss
341        type: u32
342        doc: Random packet loss (0=none, ~0=100%)
343      -
344        name: gap
345        type: u32
346        doc: Re-ordering gap (0 for none)
347      -
348        name: duplicate
349        type: u32
350        doc: Random packet duplication (0=none, ~0=100%)
351      -
352        name: jitter
353        type: u32
354        doc: Random jitter latency in microseconds
355  -
356    name: tc-netem-gimodel
357    doc: State transition probabilities for 4 state model
358    type: struct
359    members:
360      -
361        name: p13
362        type: u32
363      -
364        name: p31
365        type: u32
366      -
367        name: p32
368        type: u32
369      -
370        name: p14
371        type: u32
372      -
373        name: p23
374        type: u32
375  -
376    name: tc-netem-gemodel
377    doc: Gilbert-Elliot models
378    type: struct
379    members:
380      -
381        name: p
382        type: u32
383      -
384        name: r
385        type: u32
386      -
387        name: h
388        type: u32
389      -
390        name: k1
391        type: u32
392  -
393    name: tc-netem-corr
394    type: struct
395    members:
396      -
397        name: delay-corr
398        type: u32
399        doc: Delay correlation
400      -
401        name: loss-corr
402        type: u32
403        doc: Packet loss correlation
404      -
405        name: dup-corr
406        type: u32
407        doc: Duplicate correlation
408  -
409    name: tc-netem-reorder
410    type: struct
411    members:
412      -
413        name: probability
414        type: u32
415      -
416        name: correlation
417        type: u32
418  -
419    name: tc-netem-corrupt
420    type: struct
421    members:
422      -
423        name: probability
424        type: u32
425      -
426        name: correlation
427        type: u32
428  -
429    name: tc-netem-rate
430    type: struct
431    members:
432      -
433        name: rate
434        type: u32
435      -
436        name: packet-overhead
437        type: s32
438      -
439        name: cell-size
440        type: u32
441      -
442        name: cell-overhead
443        type: s32
444  -
445    name: tc-netem-slot
446    type: struct
447    members:
448      -
449        name: min-delay
450        type: s64
451      -
452        name: max-delay
453        type: s64
454      -
455        name: max-packets
456        type: s32
457      -
458        name: max-bytes
459        type: s32
460      -
461        name: dist-delay
462        type: s64
463      -
464        name: dist-jitter
465        type: s64
466  -
467    name: tc-plug-qopt
468    type: struct
469    members:
470      -
471        name: action
472        type: s32
473      -
474        name: limit
475        type: u32
476  -
477    name: tc-prio-qopt
478    type: struct
479    members:
480      -
481        name: bands
482        type: u32
483        doc: Number of bands
484      -
485        name: priomap
486        type: binary
487        len: 16
488        doc: Map of logical priority -> PRIO band
489  -
490    name: tc-red-qopt
491    type: struct
492    members:
493      -
494        name: limit
495        type: u32
496        doc: Hard queue length in packets
497      -
498        name: qth-min
499        type: u32
500        doc: Min average threshold in packets
501      -
502        name: qth-max
503        type: u32
504        doc: Max average threshold in packets
505      -
506        name: Wlog
507        type: u8
508        doc: log(W)
509      -
510        name: Plog
511        type: u8
512        doc: log(P_max / (qth-max - qth-min))
513      -
514        name: Scell-log
515        type: u8
516        doc: Cell size for idle damping
517      -
518        name: flags
519        type: u8
520  -
521    name: tc-sfb-qopt
522    type: struct
523    members:
524      -
525        name: rehash-interval
526        type: u32
527      -
528        name: warmup-time
529        type: u32
530      -
531        name: max
532        type: u32
533      -
534        name: bin-size
535        type: u32
536      -
537        name: increment
538        type: u32
539      -
540        name: decrement
541        type: u32
542      -
543        name: limit
544        type: u32
545      -
546        name: penalty-rate
547        type: u32
548      -
549        name: penalty-burst
550        type: u32
551  -
552    name: tc-sfq-qopt
553    type: struct
554    members:
555      -
556        name: quantum
557        type: u32
558        doc: Bytes per round allocated to flow
559      -
560        name: perturb-period
561        type: s32
562        doc: Period of hash perturbation
563      -
564        name: limit
565        type: u32
566        doc: Maximal packets in queue
567      -
568        name: divisor
569        type: u32
570        doc: Hash divisor
571      -
572        name: flows
573        type: u32
574        doc: Maximal number of flows
575  -
576    name: tc-sfqred-stats
577    type: struct
578    members:
579      -
580        name: prob-drop
581        type: u32
582        doc: Early drops, below max threshold
583      -
584        name: forced-drop
585        type: u32
586        doc: Early drops, after max threshold
587      -
588        name: prob-mark
589        type: u32
590        doc: Marked packets, below max threshold
591      -
592        name: forced-mark
593        type: u32
594        doc: Marked packets, after max threshold
595      -
596        name: prob-mark-head
597        type: u32
598        doc: Marked packets, below max threshold
599      -
600        name: forced-mark-head
601        type: u32
602        doc: Marked packets, after max threshold
603  -
604    name: tc-sfq-qopt-v1
605    type: struct
606    members:
607      -
608        name: v0
609        type: binary
610        struct: tc-sfq-qopt
611      -
612        name: depth
613        type: u32
614        doc: Maximum number of packets per flow
615      -
616        name: headdrop
617        type: u32
618      -
619        name: limit
620        type: u32
621        doc: HARD maximal flow queue length in bytes
622      -
623        name: qth-min
624        type: u32
625        doc: Min average length threshold in bytes
626      -
627        name: qth-max
628        type: u32
629        doc: Max average length threshold in bytes
630      -
631        name: Wlog
632        type: u8
633        doc: log(W)
634      -
635        name: Plog
636        type: u8
637        doc: log(P_max / (qth-max - qth-min))
638      -
639        name: Scell-log
640        type: u8
641        doc: Cell size for idle damping
642      -
643        name: flags
644        type: u8
645      -
646        name: max-P
647        type: u32
648        doc: probability, high resolution
649      -
650        name: stats
651        type: binary
652        struct: tc-sfqred-stats
653  -
654    name: tc-ratespec
655    type: struct
656    header: linux/pkt_sched.h
657    members:
658      -
659        name: cell-log
660        type: u8
661      -
662        name: linklayer
663        type: u8
664      -
665        name: overhead
666        type: u8
667      -
668        name: cell-align
669        type: u8
670      -
671        name: mpu
672        type: u8
673      -
674        name: rate
675        type: u32
676  -
677    name: tc-tbf-qopt
678    type: struct
679    members:
680      -
681        name: rate
682        type: binary
683        struct: tc-ratespec
684      -
685        name: peakrate
686        type: binary
687        struct: tc-ratespec
688      -
689        name: limit
690        type: u32
691      -
692        name: buffer
693        type: u32
694      -
695        name: mtu
696        type: u32
697  -
698    name: tc-sizespec
699    type: struct
700    members:
701      -
702        name: cell-log
703        type: u8
704      -
705        name: size-log
706        type: u8
707      -
708        name: cell-align
709        type: s16
710      -
711        name: overhead
712        type: s32
713      -
714        name: linklayer
715        type: u32
716      -
717        name: mpu
718        type: u32
719      -
720        name: mtu
721        type: u32
722      -
723        name: tsize
724        type: u32
725  -
726    name: gnet-estimator
727    type: struct
728    members:
729      -
730        name: interval
731        type: s8
732        doc: Sampling period
733      -
734        name: ewma-log
735        type: u8
736        doc: The log() of measurement window weight
737  -
738    name: tc-choke-xstats
739    type: struct
740    members:
741      -
742        name: early
743        type: u32
744        doc: Early drops
745      -
746        name: pdrop
747        type: u32
748        doc: Drops due to queue limits
749      -
750        name: other
751        type: u32
752        doc: Drops due to drop() calls
753      -
754        name: marked
755        type: u32
756        doc: Marked packets
757      -
758        name: matched
759        type: u32
760        doc: Drops due to flow match
761  -
762    name: tc-codel-xstats
763    type: struct
764    members:
765      -
766        name: maxpacket
767        type: u32
768        doc: Largest packet we've seen so far
769      -
770        name: count
771        type: u32
772        doc: |
773          How many drops we've done since the last time we entered dropping
774          state
775      -
776        name: lastcount
777        type: u32
778        doc: Count at entry to dropping state
779      -
780        name: ldelay
781        type: u32
782        doc: in-queue delay seen by most recently dequeued packet
783      -
784        name: drop-next
785        type: s32
786        doc: Time to drop next packet
787      -
788        name: drop-overlimit
789        type: u32
790        doc: Number of times max qdisc packet limit was hit
791      -
792        name: ecn-mark
793        type: u32
794        doc: Number of packets we've ECN marked instead of dropped
795      -
796        name: dropping
797        type: u32
798        doc: Are we in a dropping state?
799      -
800        name: ce-mark
801        type: u32
802        doc: Number of CE marked packets because of ce-threshold
803  -
804    name: tc-fq-codel-xstats
805    type: struct
806    members:
807      -
808        name: type
809        type: u32
810      -
811        name: maxpacket
812        type: u32
813        doc: Largest packet we've seen so far
814      -
815        name: drop-overlimit
816        type: u32
817        doc: Number of times max qdisc packet limit was hit
818      -
819        name: ecn-mark
820        type: u32
821        doc: Number of packets we ECN marked instead of being dropped
822      -
823        name: new-flow-count
824        type: u32
825        doc: Number of times packets created a new flow
826      -
827        name: new-flows-len
828        type: u32
829        doc: Count of flows in new list
830      -
831        name: old-flows-len
832        type: u32
833        doc: Count of flows in old list
834      -
835        name: ce-mark
836        type: u32
837        doc: Packets above ce-threshold
838      -
839        name: memory-usage
840        type: u32
841        doc: Memory usage in bytes
842      -
843        name: drop-overmemory
844        type: u32
845  -
846    name: tc-dualpi2-xstats
847    type: struct
848    members:
849      -
850        name: prob
851        type: u32
852        doc: Current base PI probability
853      -
854        name: delay-c
855        type: u32
856        doc: Current C-queue delay in microseconds
857      -
858        name: delay-l
859        type: u32
860        doc: Current L-queue delay in microseconds
861      -
862        name: pkts-in-c
863        type: u32
864        doc: Number of packets enqueued in the C-queue
865      -
866        name: pkts-in-l
867        type: u32
868        doc: Number of packets enqueued in the L-queue
869      -
870        name: maxq
871        type: u32
872        doc: Maximum number of packets seen by the DualPI2
873      -
874        name: ecn-mark
875        type: u32
876        doc: All packets marked with ECN
877      -
878        name: step-mark
879        type: u32
880        doc: Only packets marked with ECN due to L-queue step AQM
881      -
882        name: credit
883        type: s32
884        doc: Current credit value for WRR
885      -
886        name: memory-used
887        type: u32
888        doc: Memory used in bytes by the DualPI2
889      -
890        name: max-memory-used
891        type: u32
892        doc: Maximum memory used in bytes by the DualPI2
893      -
894        name: memory-limit
895        type: u32
896        doc: Memory limit in bytes
897  -
898    name: tc-fq-pie-xstats
899    type: struct
900    members:
901      -
902        name: packets-in
903        type: u32
904        doc: Total number of packets enqueued
905      -
906        name: dropped
907        type: u32
908        doc: Packets dropped due to fq_pie_action
909      -
910        name: overlimit
911        type: u32
912        doc: Dropped due to lack of space in queue
913      -
914        name: overmemory
915        type: u32
916        doc: Dropped due to lack of memory in queue
917      -
918        name: ecn-mark
919        type: u32
920        doc: Packets marked with ECN
921      -
922        name: new-flow-count
923        type: u32
924        doc: Count of new flows created by packets
925      -
926        name: new-flows-len
927        type: u32
928        doc: Count of flows in new list
929      -
930        name: old-flows-len
931        type: u32
932        doc: Count of flows in old list
933      -
934        name: memory-usage
935        type: u32
936        doc: Total memory across all queues
937  -
938    name: tc-fq-qd-stats
939    type: struct
940    members:
941      -
942        name: gc-flows
943        type: u64
944      -
945        name: highprio-packets
946        type: u64
947        doc: obsolete
948      -
949        name: tcp-retrans
950        type: u64
951        doc: obsolete
952      -
953        name: throttled
954        type: u64
955      -
956        name: flows-plimit
957        type: u64
958      -
959        name: pkts-too-long
960        type: u64
961      -
962        name: allocation-errors
963        type: u64
964      -
965        name: time-next-delayed-flow
966        type: s64
967      -
968        name: flows
969        type: u32
970      -
971        name: inactive-flows
972        type: u32
973      -
974        name: throttled-flows
975        type: u32
976      -
977        name: unthrottle-latency-ns
978        type: u32
979      -
980        name: ce-mark
981        type: u64
982        doc: Packets above ce-threshold
983      -
984        name: horizon-drops
985        type: u64
986      -
987        name: horizon-caps
988        type: u64
989      -
990        name: fastpath-packets
991        type: u64
992      -
993        name: band-drops
994        type: binary
995        len: 24
996      -
997        name: band-pkt-count
998        type: binary
999        len: 12
1000      -
1001        name: pad
1002        type: pad
1003        len: 4
1004  -
1005    name: tc-hhf-xstats
1006    type: struct
1007    members:
1008      -
1009        name: drop-overlimit
1010        type: u32
1011        doc: Number of times max qdisc packet limit was hit
1012      -
1013        name: hh-overlimit
1014        type: u32
1015        doc: Number of times max heavy-hitters was hit
1016      -
1017        name: hh-tot-count
1018        type: u32
1019        doc: Number of captured heavy-hitters so far
1020      -
1021        name: hh-cur-count
1022        type: u32
1023        doc: Number of current heavy-hitters
1024  -
1025    name: tc-pie-xstats
1026    type: struct
1027    members:
1028      -
1029        name: prob
1030        type: u64
1031        doc: Current probability
1032      -
1033        name: delay
1034        type: u32
1035        doc: Current delay in ms
1036      -
1037        name: avg-dq-rate
1038        type: u32
1039        doc: Current average dq rate in bits/pie-time
1040      -
1041        name: dq-rate-estimating
1042        type: u32
1043        doc: Is avg-dq-rate being calculated?
1044      -
1045        name: packets-in
1046        type: u32
1047        doc: Total number of packets enqueued
1048      -
1049        name: dropped
1050        type: u32
1051        doc: Packets dropped due to pie action
1052      -
1053        name: overlimit
1054        type: u32
1055        doc: Dropped due to lack of space in queue
1056      -
1057        name: maxq
1058        type: u32
1059        doc: Maximum queue size
1060      -
1061        name: ecn-mark
1062        type: u32
1063        doc: Packets marked with ECN
1064  -
1065    name: tc-red-xstats
1066    type: struct
1067    members:
1068      -
1069        name: early
1070        type: u32
1071        doc: Early drops
1072      -
1073        name: pdrop
1074        type: u32
1075        doc: Drops due to queue limits
1076      -
1077        name: other
1078        type: u32
1079        doc: Drops due to drop() calls
1080      -
1081        name: marked
1082        type: u32
1083        doc: Marked packets
1084  -
1085    name: tc-sfb-xstats
1086    type: struct
1087    members:
1088      -
1089        name: earlydrop
1090        type: u32
1091      -
1092        name: penaltydrop
1093        type: u32
1094      -
1095        name: bucketdrop
1096        type: u32
1097      -
1098        name: queuedrop
1099        type: u32
1100      -
1101        name: childdrop
1102        type: u32
1103        doc: drops in child qdisc
1104      -
1105        name: marked
1106        type: u32
1107      -
1108        name: maxqlen
1109        type: u32
1110      -
1111        name: maxprob
1112        type: u32
1113      -
1114        name: avgprob
1115        type: u32
1116  -
1117    name: tc-sfq-xstats
1118    type: struct
1119    members:
1120      -
1121        name: allot
1122        type: s32
1123  -
1124    name: gnet-stats-basic
1125    type: struct
1126    members:
1127      -
1128        name: bytes
1129        type: u64
1130      -
1131        name: packets
1132        type: u32
1133  -
1134    name: gnet-stats-rate-est
1135    type: struct
1136    members:
1137      -
1138        name: bps
1139        type: u32
1140      -
1141        name: pps
1142        type: u32
1143  -
1144    name: gnet-stats-rate-est64
1145    type: struct
1146    members:
1147      -
1148        name: bps
1149        type: u64
1150      -
1151        name: pps
1152        type: u64
1153  -
1154    name: gnet-stats-queue
1155    type: struct
1156    members:
1157      -
1158        name: qlen
1159        type: u32
1160      -
1161        name: backlog
1162        type: u32
1163      -
1164        name: drops
1165        type: u32
1166      -
1167        name: requeues
1168        type: u32
1169      -
1170        name: overlimits
1171        type: u32
1172  -
1173    name: tc-u32-key
1174    type: struct
1175    members:
1176      -
1177        name: mask
1178        type: u32
1179        byte-order: big-endian
1180      -
1181        name: val
1182        type: u32
1183        byte-order: big-endian
1184      -
1185        name: "off"
1186        type: s32
1187      -
1188        name: offmask
1189        type: s32
1190  -
1191    name: tc-u32-mark
1192    type: struct
1193    members:
1194      -
1195        name: val
1196        type: u32
1197      -
1198        name: mask
1199        type: u32
1200      -
1201        name: success
1202        type: u32
1203  -
1204    name: tc-u32-sel
1205    type: struct
1206    members:
1207      -
1208        name: flags
1209        type: u8
1210      -
1211        name: offshift
1212        type: u8
1213      -
1214        name: nkeys
1215        type: u8
1216      -
1217        name: offmask
1218        type: u16
1219        byte-order: big-endian
1220      -
1221        name: "off"
1222        type: u16
1223      -
1224        name: offoff
1225        type: s16
1226      -
1227        name: hoff
1228        type: s16
1229      -
1230        name: hmask
1231        type: u32
1232        byte-order: big-endian
1233      -
1234        name: keys
1235        type: binary
1236        struct: tc-u32-key  # TODO: array
1237  -
1238    name: tc-u32-pcnt
1239    type: struct
1240    members:
1241      -
1242        name: rcnt
1243        type: u64
1244      -
1245        name: rhit
1246        type: u64
1247      -
1248        name: kcnts
1249        type: u64  # TODO: array
1250  -
1251    name: tcf-t
1252    type: struct
1253    members:
1254      -
1255        name: install
1256        type: u64
1257      -
1258        name: lastuse
1259        type: u64
1260      -
1261        name: expires
1262        type: u64
1263      -
1264        name: firstuse
1265        type: u64
1266  -
1267    name: tc-gact
1268    type: struct
1269    members:
1270      -
1271        name: index
1272        type: u32
1273      -
1274        name: capab
1275        type: u32
1276      -
1277        name: action
1278        type: s32
1279      -
1280        name: refcnt
1281        type: s32
1282      -
1283        name: bindcnt
1284        type: s32
1285  -
1286    name: tc-gact-p
1287    type: struct
1288    members:
1289      -
1290        name: ptype
1291        type: u16
1292      -
1293        name: pval
1294        type: u16
1295      -
1296        name: paction
1297        type: s32
1298  -
1299    name: tcf-ematch-tree-hdr
1300    type: struct
1301    members:
1302      -
1303        name: nmatches
1304        type: u16
1305      -
1306        name: progid
1307        type: u16
1308  -
1309    name: tc-basic-pcnt
1310    type: struct
1311    members:
1312      -
1313        name: rcnt
1314        type: u64
1315      -
1316        name: rhit
1317        type: u64
1318  -
1319    name: tc-matchall-pcnt
1320    type: struct
1321    members:
1322      -
1323        name: rhit
1324        type: u64
1325  -
1326    name: tc-mpls
1327    type: struct
1328    members:
1329      -
1330        name: index
1331        type: u32
1332      -
1333        name: capab
1334        type: u32
1335      -
1336        name: action
1337        type: s32
1338      -
1339        name: refcnt
1340        type: s32
1341      -
1342        name: bindcnt
1343        type: s32
1344      -
1345        name: m-action
1346        type: s32
1347  -
1348    name: tc-police
1349    type: struct
1350    members:
1351      -
1352        name: index
1353        type: u32
1354      -
1355        name: action
1356        type: s32
1357      -
1358        name: limit
1359        type: u32
1360      -
1361        name: burst
1362        type: u32
1363      -
1364        name: mtu
1365        type: u32
1366      -
1367        name: rate
1368        type: binary
1369        struct: tc-ratespec
1370      -
1371        name: peakrate
1372        type: binary
1373        struct: tc-ratespec
1374      -
1375        name: refcnt
1376        type: s32
1377      -
1378        name: bindcnt
1379        type: s32
1380      -
1381        name: capab
1382        type: u32
1383  -
1384    name: tc-pedit-sel
1385    type: struct
1386    members:
1387      -
1388        name: index
1389        type: u32
1390      -
1391        name: capab
1392        type: u32
1393      -
1394        name: action
1395        type: s32
1396      -
1397        name: refcnt
1398        type: s32
1399      -
1400        name: bindcnt
1401        type: s32
1402      -
1403        name: nkeys
1404        type: u8
1405      -
1406        name: flags
1407        type: u8
1408      -
1409        name: keys
1410        type: binary
1411        struct: tc-pedit-key  # TODO: array
1412  -
1413    name: tc-pedit-key
1414    type: struct
1415    members:
1416      -
1417        name: mask
1418        type: u32
1419      -
1420        name: val
1421        type: u32
1422      -
1423        name: "off"
1424        type: u32
1425      -
1426        name: at
1427        type: u32
1428      -
1429        name: offmask
1430        type: u32
1431      -
1432        name: shift
1433        type: u32
1434  -
1435    name: tc-vlan
1436    type: struct
1437    members:
1438      -
1439        name: index
1440        type: u32
1441      -
1442        name: capab
1443        type: u32
1444      -
1445        name: action
1446        type: s32
1447      -
1448        name: refcnt
1449        type: s32
1450      -
1451        name: bindcnt
1452        type: s32
1453      -
1454        name: v-action
1455        type: s32
1456attribute-sets:
1457  -
1458    name: attrs
1459    name-prefix: tca-
1460    attributes:
1461      -
1462        name: kind
1463        type: string
1464      -
1465        name: options
1466        type: sub-message
1467        sub-message: options-msg
1468        selector: kind
1469      -
1470        name: stats
1471        type: binary
1472        struct: tc-stats
1473      -
1474        name: xstats
1475        type: sub-message
1476        sub-message: tca-stats-app-msg
1477        selector: kind
1478      -
1479        name: rate
1480        type: binary
1481        struct: gnet-estimator
1482      -
1483        name: fcnt
1484        type: u32
1485      -
1486        name: stats2
1487        type: nest
1488        nested-attributes: tca-stats-attrs
1489      -
1490        name: stab
1491        type: nest
1492        nested-attributes: tca-stab-attrs
1493      -
1494        name: pad
1495        type: pad
1496      -
1497        name: dump-invisible
1498        type: flag
1499      -
1500        name: chain
1501        type: u32
1502      -
1503        name: hw-offload
1504        type: u8
1505      -
1506        name: ingress-block
1507        type: u32
1508      -
1509        name: egress-block
1510        type: u32
1511      -
1512        name: dump-flags
1513        type: bitfield32
1514      -
1515        name: ext-warn-msg
1516        type: string
1517  -
1518    name: act-attrs
1519    name-prefix: tca-act-
1520    attributes:
1521      -
1522        name: kind
1523        type: string
1524      -
1525        name: options
1526        type: sub-message
1527        sub-message: act-options-msg
1528        selector: kind
1529      -
1530        name: index
1531        type: u32
1532      -
1533        name: stats
1534        type: nest
1535        nested-attributes: tca-stats-attrs
1536      -
1537        name: pad
1538        type: pad
1539      -
1540        name: cookie
1541        type: binary
1542      -
1543        name: flags
1544        type: bitfield32
1545      -
1546        name: hw-stats
1547        type: bitfield32
1548      -
1549        name: used-hw-stats
1550        type: bitfield32
1551      -
1552        name: in-hw-count
1553        type: u32
1554  -
1555    name: act-bpf-attrs
1556    name-prefix: tca-act-bpf-
1557    header: linux/tc_act/tc_bpf.h
1558    attributes:
1559      -
1560        name: tm
1561        type: binary
1562        struct: tcf-t
1563      -
1564        name: parms
1565        type: binary
1566      -
1567        name: ops-len
1568        type: u16
1569      -
1570        name: ops
1571        type: binary
1572      -
1573        name: fd
1574        type: u32
1575      -
1576        name: name
1577        type: string
1578      -
1579        name: pad
1580        type: pad
1581      -
1582        name: tag
1583        type: binary
1584      -
1585        name: id
1586        type: binary
1587  -
1588    name: act-connmark-attrs
1589    name-prefix: tca-connmark-
1590    header: linux/tc_act/tc_connmark.h
1591    attributes:
1592      -
1593        name: parms
1594        type: binary
1595      -
1596        name: tm
1597        type: binary
1598        struct: tcf-t
1599      -
1600        name: pad
1601        type: pad
1602  -
1603    name: act-csum-attrs
1604    name-prefix: tca-csum-
1605    header: linux/tc_act/tc_csum.h
1606    attributes:
1607      -
1608        name: parms
1609        type: binary
1610      -
1611        name: tm
1612        type: binary
1613        struct: tcf-t
1614      -
1615        name: pad
1616        type: pad
1617  -
1618    name: act-ct-attrs
1619    name-prefix: tca-ct-
1620    header: linux/tc_act/tc_ct.h
1621    attributes:
1622      -
1623        name: parms
1624        type: binary
1625      -
1626        name: tm
1627        type: binary
1628        struct: tcf-t
1629      -
1630        name: action
1631        type: u16
1632      -
1633        name: zone
1634        type: u16
1635      -
1636        name: mark
1637        type: u32
1638      -
1639        name: mark-mask
1640        type: u32
1641      -
1642        name: labels
1643        type: binary
1644      -
1645        name: labels-mask
1646        type: binary
1647      -
1648        name: nat-ipv4-min
1649        type: u32
1650        byte-order: big-endian
1651      -
1652        name: nat-ipv4-max
1653        type: u32
1654        byte-order: big-endian
1655      -
1656        name: nat-ipv6-min
1657        type: binary
1658      -
1659        name: nat-ipv6-max
1660        type: binary
1661      -
1662        name: nat-port-min
1663        type: u16
1664        byte-order: big-endian
1665      -
1666        name: nat-port-max
1667        type: u16
1668        byte-order: big-endian
1669      -
1670        name: pad
1671        type: pad
1672      -
1673        name: helper-name
1674        type: string
1675      -
1676        name: helper-family
1677        type: u8
1678      -
1679        name: helper-proto
1680        type: u8
1681  -
1682    name: act-ctinfo-attrs
1683    name-prefix: tca-ctinfo-
1684    header: linux/tc_act/tc_ctinfo.h
1685    attributes:
1686      -
1687        name: pad
1688        type: pad
1689      -
1690        name: tm
1691        type: binary
1692        struct: tcf-t
1693      -
1694        name: act
1695        type: binary
1696      -
1697        name: zone
1698        type: u16
1699      -
1700        name: parms-dscp-mask
1701        type: u32
1702      -
1703        name: parms-dscp-statemask
1704        type: u32
1705      -
1706        name: parms-cpmark-mask
1707        type: u32
1708      -
1709        name: stats-dscp-set
1710        type: u64
1711      -
1712        name: stats-dscp-error
1713        type: u64
1714      -
1715        name: stats-cpmark-set
1716        type: u64
1717  -
1718    name: act-gate-attrs
1719    name-prefix: tca-gate-
1720    header: linux/tc_act/tc_gate.h
1721    attributes:
1722      -
1723        name: tm
1724        type: binary
1725        struct: tcf-t
1726      -
1727        name: parms
1728        type: binary
1729      -
1730        name: pad
1731        type: pad
1732      -
1733        name: priority
1734        type: s32
1735      -
1736        name: entry-list
1737        type: binary
1738      -
1739        name: base-time
1740        type: u64
1741      -
1742        name: cycle-time
1743        type: u64
1744      -
1745        name: cycle-time-ext
1746        type: u64
1747      -
1748        name: flags
1749        type: u32
1750      -
1751        name: clockid
1752        type: s32
1753  -
1754    name: act-ife-attrs
1755    name-prefix: tca-ife-
1756    header: linux/tc_act/tc_ife.h
1757    attributes:
1758      -
1759        name: parms
1760        type: binary
1761      -
1762        name: tm
1763        type: binary
1764        struct: tcf-t
1765      -
1766        name: dmac
1767        type: binary
1768      -
1769        name: smac
1770        type: binary
1771      -
1772        name: type
1773        type: u16
1774      -
1775        name: metalst
1776        type: binary
1777      -
1778        name: pad
1779        type: pad
1780  -
1781    name: act-mirred-attrs
1782    name-prefix: tca-mirred-
1783    header: linux/tc_act/tc_mirred.h
1784    attributes:
1785      -
1786        name: tm
1787        type: binary
1788        struct: tcf-t
1789      -
1790        name: parms
1791        type: binary
1792      -
1793        name: pad
1794        type: pad
1795      -
1796        name: blockid
1797        type: binary
1798  -
1799    name: act-mpls-attrs
1800    name-prefix: tca-mpls-
1801    header: linux/tc_act/tc_mpls.h
1802    attributes:
1803      -
1804        name: tm
1805        type: binary
1806        struct: tcf-t
1807      -
1808        name: parms
1809        type: binary
1810        struct: tc-mpls
1811      -
1812        name: pad
1813        type: pad
1814      -
1815        name: proto
1816        type: u16
1817        byte-order: big-endian
1818      -
1819        name: label
1820        type: u32
1821      -
1822        name: tc
1823        type: u8
1824      -
1825        name: ttl
1826        type: u8
1827      -
1828        name: bos
1829        type: u8
1830  -
1831    name: act-nat-attrs
1832    name-prefix: tca-nat-
1833    header: linux/tc_act/tc_nat.h
1834    attributes:
1835      -
1836        name: parms
1837        type: binary
1838      -
1839        name: tm
1840        type: binary
1841        struct: tcf-t
1842      -
1843        name: pad
1844        type: pad
1845  -
1846    name: act-pedit-attrs
1847    name-prefix: tca-pedit-
1848    header: linux/tc_act/tc_pedit.h
1849    attributes:
1850      -
1851        name: tm
1852        type: binary
1853        struct: tcf-t
1854      -
1855        name: parms
1856        type: binary
1857        struct: tc-pedit-sel
1858      -
1859        name: pad
1860        type: pad
1861      -
1862        name: parms-ex
1863        type: binary
1864      -
1865        name: keys-ex
1866        type: binary
1867      -
1868        name: key-ex
1869        type: binary
1870  -
1871    name: act-simple-attrs
1872    name-prefix: tca-def-
1873    header: linux/tc_act/tc_defact.h
1874    attributes:
1875      -
1876        name: tm
1877        type: binary
1878        struct: tcf-t
1879      -
1880        name: parms
1881        type: binary
1882      -
1883        name: data
1884        type: binary
1885      -
1886        name: pad
1887        type: pad
1888  -
1889    name: act-skbedit-attrs
1890    name-prefix: tca-skbedit-
1891    header: linux/tc_act/tc_skbedit.h
1892    attributes:
1893      -
1894        name: tm
1895        type: binary
1896        struct: tcf-t
1897      -
1898        name: parms
1899        type: binary
1900      -
1901        name: priority
1902        type: u32
1903      -
1904        name: queue-mapping
1905        type: u16
1906      -
1907        name: mark
1908        type: u32
1909      -
1910        name: pad
1911        type: pad
1912      -
1913        name: ptype
1914        type: u16
1915      -
1916        name: mask
1917        type: u32
1918      -
1919        name: flags
1920        type: u64
1921      -
1922        name: queue-mapping-max
1923        type: u16
1924  -
1925    name: act-skbmod-attrs
1926    name-prefix: tca-skbmod-
1927    header: linux/tc_act/tc_skbmod.h
1928    attributes:
1929      -
1930        name: tm
1931        type: binary
1932        struct: tcf-t
1933      -
1934        name: parms
1935        type: binary
1936      -
1937        name: dmac
1938        type: binary
1939      -
1940        name: smac
1941        type: binary
1942      -
1943        name: etype
1944        type: binary
1945      -
1946        name: pad
1947        type: pad
1948  -
1949    name: act-tunnel-key-attrs
1950    name-prefix: tca-tunnel-key-
1951    header: linux/tc_act/tc_tunnel_key.h
1952    attributes:
1953      -
1954        name: tm
1955        type: binary
1956        struct: tcf-t
1957      -
1958        name: parms
1959        type: binary
1960      -
1961        name: enc-ipv4-src
1962        type: u32
1963        byte-order: big-endian
1964      -
1965        name: enc-ipv4-dst
1966        type: u32
1967        byte-order: big-endian
1968      -
1969        name: enc-ipv6-src
1970        type: binary
1971      -
1972        name: enc-ipv6-dst
1973        type: binary
1974      -
1975        name: enc-key-id
1976        type: u64
1977        byte-order: big-endian
1978      -
1979        name: pad
1980        type: pad
1981      -
1982        name: enc-dst-port
1983        type: u16
1984        byte-order: big-endian
1985      -
1986        name: no-csum
1987        type: u8
1988      -
1989        name: enc-opts
1990        type: binary
1991      -
1992        name: enc-tos
1993        type: u8
1994      -
1995        name: enc-ttl
1996        type: u8
1997      -
1998        name: no-frag
1999        type: flag
2000  -
2001    name: act-vlan-attrs
2002    name-prefix: tca-vlan-
2003    header: linux/tc_act/tc_vlan.h
2004    attributes:
2005      -
2006        name: tm
2007        type: binary
2008        struct: tcf-t
2009      -
2010        name: parms
2011        type: binary
2012        struct: tc-vlan
2013      -
2014        name: push-vlan-id
2015        type: u16
2016      -
2017        name: push-vlan-protocol
2018        type: u16
2019      -
2020        name: pad
2021        type: pad
2022      -
2023        name: push-vlan-priority
2024        type: u8
2025      -
2026        name: push-eth-dst
2027        type: binary
2028      -
2029        name: push-eth-src
2030        type: binary
2031  -
2032    name: basic-attrs
2033    name-prefix: tca-basic-
2034    attributes:
2035      -
2036        name: classid
2037        type: u32
2038      -
2039        name: ematches
2040        type: nest
2041        nested-attributes: ematch-attrs
2042      -
2043        name: act
2044        type: indexed-array
2045        sub-type: nest
2046        nested-attributes: act-attrs
2047      -
2048        name: police
2049        type: nest
2050        nested-attributes: police-attrs
2051      -
2052        name: pcnt
2053        type: binary
2054        struct: tc-basic-pcnt
2055      -
2056        name: pad
2057        type: pad
2058  -
2059    name: bpf-attrs
2060    name-prefix: tca-bpf-
2061    attributes:
2062      -
2063        name: act
2064        type: indexed-array
2065        sub-type: nest
2066        nested-attributes: act-attrs
2067      -
2068        name: police
2069        type: nest
2070        nested-attributes: police-attrs
2071      -
2072        name: classid
2073        type: u32
2074      -
2075        name: ops-len
2076        type: u16
2077      -
2078        name: ops
2079        type: binary
2080      -
2081        name: fd
2082        type: u32
2083      -
2084        name: name
2085        type: string
2086      -
2087        name: flags
2088        type: u32
2089      -
2090        name: flags-gen
2091        type: u32
2092      -
2093        name: tag
2094        type: binary
2095      -
2096        name: id
2097        type: u32
2098  -
2099    name: cake-attrs
2100    name-prefix: tca-cake-
2101    attributes:
2102      -
2103        name: pad
2104        type: pad
2105      -
2106        name: base-rate64
2107        type: u64
2108      -
2109        name: diffserv-mode
2110        type: u32
2111      -
2112        name: atm
2113        type: u32
2114      -
2115        name: flow-mode
2116        type: u32
2117      -
2118        name: overhead
2119        type: u32
2120      -
2121        name: rtt
2122        type: u32
2123      -
2124        name: target
2125        type: u32
2126      -
2127        name: autorate
2128        type: u32
2129      -
2130        name: memory
2131        type: u32
2132      -
2133        name: nat
2134        type: u32
2135      -
2136        name: raw
2137        type: u32
2138      -
2139        name: wash
2140        type: u32
2141      -
2142        name: mpu
2143        type: u32
2144      -
2145        name: ingress
2146        type: u32
2147      -
2148        name: ack-filter
2149        type: u32
2150      -
2151        name: split-gso
2152        type: u32
2153      -
2154        name: fwmark
2155        type: u32
2156  -
2157    name: cake-stats-attrs
2158    name-prefix: tca-cake-stats-
2159    attributes:
2160      -
2161        name: pad
2162        type: pad
2163      -
2164        name: capacity-estimate64
2165        type: u64
2166      -
2167        name: memory-limit
2168        type: u32
2169      -
2170        name: memory-used
2171        type: u32
2172      -
2173        name: avg-netoff
2174        type: u32
2175      -
2176        name: min-netlen
2177        type: u32
2178      -
2179        name: max-netlen
2180        type: u32
2181      -
2182        name: min-adjlen
2183        type: u32
2184      -
2185        name: max-adjlen
2186        type: u32
2187      -
2188        name: tin-stats
2189        type: indexed-array
2190        sub-type: nest
2191        nested-attributes: cake-tin-stats-attrs
2192      -
2193        name: deficit
2194        type: s32
2195      -
2196        name: cobalt-count
2197        type: u32
2198      -
2199        name: dropping
2200        type: u32
2201      -
2202        name: drop-next-us
2203        type: s32
2204      -
2205        name: p-drop
2206        type: u32
2207      -
2208        name: blue-timer-us
2209        type: s32
2210      -
2211        name: active-queues
2212        type: u32
2213  -
2214    name: cake-tin-stats-attrs
2215    name-prefix: tca-cake-tin-stats-
2216    attributes:
2217      -
2218        name: pad
2219        type: pad
2220      -
2221        name: sent-packets
2222        type: u32
2223      -
2224        name: sent-bytes64
2225        type: u64
2226      -
2227        name: dropped-packets
2228        type: u32
2229      -
2230        name: dropped-bytes64
2231        type: u64
2232      -
2233        name: acks-dropped-packets
2234        type: u32
2235      -
2236        name: acks-dropped-bytes64
2237        type: u64
2238      -
2239        name: ecn-marked-packets
2240        type: u32
2241      -
2242        name: ecn-marked-bytes64
2243        type: u64
2244      -
2245        name: backlog-packets
2246        type: u32
2247      -
2248        name: backlog-bytes
2249        type: u32
2250      -
2251        name: threshold-rate64
2252        type: u64
2253      -
2254        name: target-us
2255        type: u32
2256      -
2257        name: interval-us
2258        type: u32
2259      -
2260        name: way-indirect-hits
2261        type: u32
2262      -
2263        name: way-misses
2264        type: u32
2265      -
2266        name: way-collisions
2267        type: u32
2268      -
2269        name: peak-delay-us
2270        type: u32
2271      -
2272        name: avg-delay-us
2273        type: u32
2274      -
2275        name: base-delay-us
2276        type: u32
2277      -
2278        name: sparse-flows
2279        type: u32
2280      -
2281        name: bulk-flows
2282        type: u32
2283      -
2284        name: unresponsive-flows
2285        type: u32
2286      -
2287        name: max-skblen
2288        type: u32
2289      -
2290        name: flow-quantum
2291        type: u32
2292  -
2293    name: cbs-attrs
2294    name-prefix: tca-cbs-
2295    attributes:
2296      -
2297        name: parms
2298        type: binary
2299        struct: tc-cbs-qopt
2300  -
2301    name: cgroup-attrs
2302    name-prefix: tca-cgroup-
2303    attributes:
2304      -
2305        name: act
2306        type: indexed-array
2307        sub-type: nest
2308        nested-attributes: act-attrs
2309      -
2310        name: police
2311        type: nest
2312        nested-attributes: police-attrs
2313      -
2314        name: ematches
2315        type: binary
2316  -
2317    name: choke-attrs
2318    name-prefix: tca-choke-
2319    attributes:
2320      -
2321        name: parms
2322        type: binary
2323        struct: tc-red-qopt
2324      -
2325        name: stab
2326        type: binary
2327        checks:
2328          min-len: 256
2329          max-len: 256
2330      -
2331        name: max-p
2332        type: u32
2333  -
2334    name: codel-attrs
2335    name-prefix: tca-codel-
2336    attributes:
2337      -
2338        name: target
2339        type: u32
2340      -
2341        name: limit
2342        type: u32
2343      -
2344        name: interval
2345        type: u32
2346      -
2347        name: ecn
2348        type: u32
2349      -
2350        name: ce-threshold
2351        type: u32
2352  -
2353    name: drr-attrs
2354    name-prefix: tca-drr-
2355    attributes:
2356      -
2357        name: quantum
2358        type: u32
2359  -
2360    name: dualpi2-attrs
2361    name-prefix: tca-dualpi2-
2362    attributes:
2363      -
2364        name: limit
2365        type: u32
2366        doc: Limit of total number of packets in queue
2367      -
2368        name: memory-limit
2369        type: u32
2370        doc: Memory limit of total number of packets in queue
2371      -
2372        name: target
2373        type: u32
2374        doc: Classic target delay in microseconds
2375      -
2376        name: tupdate
2377        type: u32
2378        doc: Drop probability update interval time in microseconds
2379      -
2380        name: alpha
2381        type: u32
2382        doc: Integral gain factor in Hz for PI controller
2383      -
2384        name: beta
2385        type: u32
2386        doc: Proportional gain factor in Hz for PI controller
2387      -
2388        name: step-thresh-pkts
2389        type: u32
2390        doc: L4S step marking threshold in packets
2391      -
2392        name: step-thresh-us
2393        type: u32
2394        doc: L4S Step marking threshold in microseconds
2395      -
2396        name: min-qlen-step
2397        type: u32
2398        doc: Packets enqueued to the L-queue can apply the step threshold
2399             when the queue length of L-queue is larger than this value.
2400             (0 is recommended)
2401      -
2402        name: coupling
2403        type: u8
2404        doc: Probability coupling factor between Classic and L4S
2405             (2 is recommended)
2406      -
2407        name: drop-overload
2408        type: u8
2409        doc: Control the overload strategy (drop to preserve latency or
2410             let the queue overflow)
2411        enum: dualpi2-drop-overload
2412      -
2413        name: drop-early
2414        type: u8
2415        doc: Decide where the Classic packets are PI-based dropped or marked
2416        enum: dualpi2-drop-early
2417      -
2418        name: c-protection
2419        type: u8
2420        doc: Classic WRR weight in percentage (from 0 to 100)
2421      -
2422        name: ecn-mask
2423        type: u8
2424        doc: Configure the L-queue ECN classifier
2425        enum: dualpi2-ecn-mask
2426      -
2427        name: split-gso
2428        type: u8
2429        doc: Split aggregated skb or not
2430        enum: dualpi2-split-gso
2431  -
2432    name: ematch-attrs
2433    name-prefix: tca-ematch-
2434    attr-max-name: tca-ematch-tree-max
2435    attributes:
2436      -
2437        name: tree-hdr
2438        type: binary
2439        struct: tcf-ematch-tree-hdr
2440      -
2441        name: tree-list
2442        type: binary
2443  -
2444    name: flow-attrs
2445    name-prefix: tca-flow-
2446    attributes:
2447      -
2448        name: keys
2449        type: u32
2450      -
2451        name: mode
2452        type: u32
2453      -
2454        name: baseclass
2455        type: u32
2456      -
2457        name: rshift
2458        type: u32
2459      -
2460        name: addend
2461        type: u32
2462      -
2463        name: mask
2464        type: u32
2465      -
2466        name: xor
2467        type: u32
2468      -
2469        name: divisor
2470        type: u32
2471      -
2472        name: act
2473        type: binary
2474      -
2475        name: police
2476        type: nest
2477        nested-attributes: police-attrs
2478      -
2479        name: ematches
2480        type: binary
2481      -
2482        name: perturb
2483        type: u32
2484  -
2485    name: flower-attrs
2486    name-prefix: tca-flower-
2487    attributes:
2488      -
2489        name: classid
2490        type: u32
2491      -
2492        name: indev
2493        type: string
2494      -
2495        name: act
2496        type: indexed-array
2497        sub-type: nest
2498        nested-attributes: act-attrs
2499      -
2500        name: key-eth-dst
2501        type: binary
2502        display-hint: mac
2503      -
2504        name: key-eth-dst-mask
2505        type: binary
2506        display-hint: mac
2507      -
2508        name: key-eth-src
2509        type: binary
2510        display-hint: mac
2511      -
2512        name: key-eth-src-mask
2513        type: binary
2514        display-hint: mac
2515      -
2516        name: key-eth-type
2517        type: u16
2518        byte-order: big-endian
2519      -
2520        name: key-ip-proto
2521        type: u8
2522      -
2523        name: key-ipv4-src
2524        type: u32
2525        byte-order: big-endian
2526        display-hint: ipv4
2527      -
2528        name: key-ipv4-src-mask
2529        type: u32
2530        byte-order: big-endian
2531        display-hint: ipv4
2532      -
2533        name: key-ipv4-dst
2534        type: u32
2535        byte-order: big-endian
2536        display-hint: ipv4
2537      -
2538        name: key-ipv4-dst-mask
2539        type: u32
2540        byte-order: big-endian
2541        display-hint: ipv4
2542      -
2543        name: key-ipv6-src
2544        type: binary
2545        display-hint: ipv6
2546      -
2547        name: key-ipv6-src-mask
2548        type: binary
2549        display-hint: ipv6
2550      -
2551        name: key-ipv6-dst
2552        type: binary
2553        display-hint: ipv6
2554      -
2555        name: key-ipv6-dst-mask
2556        type: binary
2557        display-hint: ipv6
2558      -
2559        name: key-tcp-src
2560        type: u16
2561        byte-order: big-endian
2562      -
2563        name: key-tcp-dst
2564        type: u16
2565        byte-order: big-endian
2566      -
2567        name: key-udp-src
2568        type: u16
2569        byte-order: big-endian
2570      -
2571        name: key-udp-dst
2572        type: u16
2573        byte-order: big-endian
2574      -
2575        name: flags
2576        type: u32
2577        enum: cls-flags
2578        enum-as-flags: true
2579      -
2580        name: key-vlan-id
2581        type: u16
2582        byte-order: big-endian
2583      -
2584        name: key-vlan-prio
2585        type: u8
2586      -
2587        name: key-vlan-eth-type
2588        type: u16
2589        byte-order: big-endian
2590      -
2591        name: key-enc-key-id
2592        type: u32
2593        byte-order: big-endian
2594      -
2595        name: key-enc-ipv4-src
2596        type: u32
2597        byte-order: big-endian
2598        display-hint: ipv4
2599      -
2600        name: key-enc-ipv4-src-mask
2601        type: u32
2602        byte-order: big-endian
2603        display-hint: ipv4
2604      -
2605        name: key-enc-ipv4-dst
2606        type: u32
2607        byte-order: big-endian
2608        display-hint: ipv4
2609      -
2610        name: key-enc-ipv4-dst-mask
2611        type: u32
2612        byte-order: big-endian
2613        display-hint: ipv4
2614      -
2615        name: key-enc-ipv6-src
2616        type: binary
2617        display-hint: ipv6
2618      -
2619        name: key-enc-ipv6-src-mask
2620        type: binary
2621        display-hint: ipv6
2622      -
2623        name: key-enc-ipv6-dst
2624        type: binary
2625        display-hint: ipv6
2626      -
2627        name: key-enc-ipv6-dst-mask
2628        type: binary
2629        display-hint: ipv6
2630      -
2631        name: key-tcp-src-mask
2632        type: u16
2633        byte-order: big-endian
2634      -
2635        name: key-tcp-dst-mask
2636        type: u16
2637        byte-order: big-endian
2638      -
2639        name: key-udp-src-mask
2640        type: u16
2641        byte-order: big-endian
2642      -
2643        name: key-udp-dst-mask
2644        type: u16
2645        byte-order: big-endian
2646      -
2647        name: key-sctp-src-mask
2648        type: u16
2649        byte-order: big-endian
2650      -
2651        name: key-sctp-dst-mask
2652        type: u16
2653        byte-order: big-endian
2654      -
2655        name: key-sctp-src
2656        type: u16
2657        byte-order: big-endian
2658      -
2659        name: key-sctp-dst
2660        type: u16
2661        byte-order: big-endian
2662      -
2663        name: key-enc-udp-src-port
2664        type: u16
2665        byte-order: big-endian
2666      -
2667        name: key-enc-udp-src-port-mask
2668        type: u16
2669        byte-order: big-endian
2670      -
2671        name: key-enc-udp-dst-port
2672        type: u16
2673        byte-order: big-endian
2674      -
2675        name: key-enc-udp-dst-port-mask
2676        type: u16
2677        byte-order: big-endian
2678      -
2679        name: key-flags
2680        type: u32
2681        byte-order: big-endian
2682        enum: flower-key-ctrl-flags
2683        enum-as-flags: true
2684      -
2685        name: key-flags-mask
2686        type: u32
2687        byte-order: big-endian
2688        enum: flower-key-ctrl-flags
2689        enum-as-flags: true
2690      -
2691        name: key-icmpv4-code
2692        type: u8
2693      -
2694        name: key-icmpv4-code-mask
2695        type: u8
2696      -
2697        name: key-icmpv4-type
2698        type: u8
2699      -
2700        name: key-icmpv4-type-mask
2701        type: u8
2702      -
2703        name: key-icmpv6-code
2704        type: u8
2705      -
2706        name: key-icmpv6-code-mask
2707        type: u8
2708      -
2709        name: key-icmpv6-type
2710        type: u8
2711      -
2712        name: key-icmpv6-type-mask
2713        type: u8
2714      -
2715        name: key-arp-sip
2716        type: u32
2717        byte-order: big-endian
2718      -
2719        name: key-arp-sip-mask
2720        type: u32
2721        byte-order: big-endian
2722      -
2723        name: key-arp-tip
2724        type: u32
2725        byte-order: big-endian
2726      -
2727        name: key-arp-tip-mask
2728        type: u32
2729        byte-order: big-endian
2730      -
2731        name: key-arp-op
2732        type: u8
2733      -
2734        name: key-arp-op-mask
2735        type: u8
2736      -
2737        name: key-arp-sha
2738        type: binary
2739        display-hint: mac
2740      -
2741        name: key-arp-sha-mask
2742        type: binary
2743        display-hint: mac
2744      -
2745        name: key-arp-tha
2746        type: binary
2747        display-hint: mac
2748      -
2749        name: key-arp-tha-mask
2750        type: binary
2751        display-hint: mac
2752      -
2753        name: key-mpls-ttl
2754        type: u8
2755      -
2756        name: key-mpls-bos
2757        type: u8
2758      -
2759        name: key-mpls-tc
2760        type: u8
2761      -
2762        name: key-mpls-label
2763        type: u32
2764        byte-order: big-endian
2765      -
2766        name: key-tcp-flags
2767        type: u16
2768        byte-order: big-endian
2769      -
2770        name: key-tcp-flags-mask
2771        type: u16
2772        byte-order: big-endian
2773      -
2774        name: key-ip-tos
2775        type: u8
2776      -
2777        name: key-ip-tos-mask
2778        type: u8
2779      -
2780        name: key-ip-ttl
2781        type: u8
2782      -
2783        name: key-ip-ttl-mask
2784        type: u8
2785      -
2786        name: key-cvlan-id
2787        type: u16
2788        byte-order: big-endian
2789      -
2790        name: key-cvlan-prio
2791        type: u8
2792      -
2793        name: key-cvlan-eth-type
2794        type: u16
2795        byte-order: big-endian
2796      -
2797        name: key-enc-ip-tos
2798        type: u8
2799      -
2800        name: key-enc-ip-tos-mask
2801        type: u8
2802      -
2803        name: key-enc-ip-ttl
2804        type: u8
2805      -
2806        name: key-enc-ip-ttl-mask
2807        type: u8
2808      -
2809        name: key-enc-opts
2810        type: nest
2811        nested-attributes: flower-key-enc-opts-attrs
2812      -
2813        name: key-enc-opts-mask
2814        type: nest
2815        nested-attributes: flower-key-enc-opts-attrs
2816      -
2817        name: in-hw-count
2818        type: u32
2819      -
2820        name: key-port-src-min
2821        type: u16
2822        byte-order: big-endian
2823      -
2824        name: key-port-src-max
2825        type: u16
2826        byte-order: big-endian
2827      -
2828        name: key-port-dst-min
2829        type: u16
2830        byte-order: big-endian
2831      -
2832        name: key-port-dst-max
2833        type: u16
2834        byte-order: big-endian
2835      -
2836        name: key-ct-state
2837        type: u16
2838      -
2839        name: key-ct-state-mask
2840        type: u16
2841      -
2842        name: key-ct-zone
2843        type: u16
2844      -
2845        name: key-ct-zone-mask
2846        type: u16
2847      -
2848        name: key-ct-mark
2849        type: u32
2850      -
2851        name: key-ct-mark-mask
2852        type: u32
2853      -
2854        name: key-ct-labels
2855        type: binary
2856      -
2857        name: key-ct-labels-mask
2858        type: binary
2859      -
2860        name: key-mpls-opts
2861        type: nest
2862        nested-attributes: flower-key-mpls-opt-attrs
2863      -
2864        name: key-hash
2865        type: u32
2866      -
2867        name: key-hash-mask
2868        type: u32
2869      -
2870        name: key-num-of-vlans
2871        type: u8
2872      -
2873        name: key-pppoe-sid
2874        type: u16
2875        byte-order: big-endian
2876      -
2877        name: key-ppp-proto
2878        type: u16
2879        byte-order: big-endian
2880      -
2881        name: key-l2tpv3-sid
2882        type: u32
2883        byte-order: big-endian
2884      -
2885        name: l2-miss
2886        type: u8
2887      -
2888        name: key-cfm
2889        type: nest
2890        nested-attributes: flower-key-cfm-attrs
2891      -
2892        name: key-spi
2893        type: u32
2894        byte-order: big-endian
2895      -
2896        name: key-spi-mask
2897        type: u32
2898        byte-order: big-endian
2899      -
2900        name: key-enc-flags
2901        type: u32
2902        byte-order: big-endian
2903        enum: flower-key-ctrl-flags
2904        enum-as-flags: true
2905      -
2906        name: key-enc-flags-mask
2907        type: u32
2908        byte-order: big-endian
2909        enum: flower-key-ctrl-flags
2910        enum-as-flags: true
2911  -
2912    name: flower-key-enc-opts-attrs
2913    name-prefix: tca-flower-key-enc-opts-
2914    attributes:
2915      -
2916        name: geneve
2917        type: nest
2918        nested-attributes: flower-key-enc-opt-geneve-attrs
2919      -
2920        name: vxlan
2921        type: nest
2922        nested-attributes: flower-key-enc-opt-vxlan-attrs
2923      -
2924        name: erspan
2925        type: nest
2926        nested-attributes: flower-key-enc-opt-erspan-attrs
2927      -
2928        name: gtp
2929        type: nest
2930        nested-attributes: flower-key-enc-opt-gtp-attrs
2931  -
2932    name: flower-key-enc-opt-geneve-attrs
2933    name-prefix: tca-flower-key-enc-opt-geneve-
2934    attributes:
2935      -
2936        name: class
2937        type: u16
2938      -
2939        name: type
2940        type: u8
2941      -
2942        name: data
2943        type: binary
2944  -
2945    name: flower-key-enc-opt-vxlan-attrs
2946    name-prefix: tca-flower-key-enc-opt-vxlan-
2947    attributes:
2948      -
2949        name: gbp
2950        type: u32
2951  -
2952    name: flower-key-enc-opt-erspan-attrs
2953    name-prefix: tca-flower-key-enc-opt-erspan-
2954    attributes:
2955      -
2956        name: ver
2957        type: u8
2958      -
2959        name: index
2960        type: u32
2961      -
2962        name: dir
2963        type: u8
2964      -
2965        name: hwid
2966        type: u8
2967  -
2968    name: flower-key-enc-opt-gtp-attrs
2969    name-prefix: tca-flower-key-enc-opt-gtp-
2970    attributes:
2971      -
2972        name: pdu-type
2973        type: u8
2974      -
2975        name: qfi
2976        type: u8
2977  -
2978    name: flower-key-mpls-opt-attrs
2979    name-prefix: tca-flower-key-mpls-opt-
2980    attr-max-name: tca-flower-key-mpls-opt-lse-max
2981    attributes:
2982      -
2983        name: lse-depth
2984        type: u8
2985      -
2986        name: lse-ttl
2987        type: u8
2988      -
2989        name: lse-bos
2990        type: u8
2991      -
2992        name: lse-tc
2993        type: u8
2994      -
2995        name: lse-label
2996        type: u32
2997  -
2998    name: flower-key-cfm-attrs
2999    name-prefix: tca-flower-key-cfm-
3000    attributes:
3001      -
3002        name: md-level
3003        type: u8
3004      -
3005        name: opcode
3006        type: u8
3007  -
3008    name: fw-attrs
3009    name-prefix: tca-fw-
3010    attributes:
3011      -
3012        name: classid
3013        type: u32
3014      -
3015        name: police
3016        type: nest
3017        nested-attributes: police-attrs
3018      -
3019        name: indev
3020        type: string
3021      -
3022        name: act
3023        type: indexed-array
3024        sub-type: nest
3025        nested-attributes: act-attrs
3026      -
3027        name: mask
3028        type: u32
3029  -
3030    name: gred-attrs
3031    name-prefix: tca-gred-
3032    attributes:
3033      -
3034        name: parms
3035        type: binary  # array of struct: tc-gred-qopt
3036      -
3037        name: stab
3038        type: binary
3039        sub-type: u8
3040      -
3041        name: dps
3042        type: binary
3043        struct: tc-gred-sopt
3044      -
3045        name: max-p
3046        type: binary
3047        sub-type: u32
3048      -
3049        name: limit
3050        type: u32
3051      -
3052        name: vq-list
3053        type: nest
3054        nested-attributes: tca-gred-vq-list-attrs
3055  -
3056    name: tca-gred-vq-list-attrs
3057    name-prefix: tca-gred-vq-
3058    attributes:
3059      -
3060        name: entry
3061        type: nest
3062        nested-attributes: tca-gred-vq-entry-attrs
3063        multi-attr: true
3064  -
3065    name: tca-gred-vq-entry-attrs
3066    name-prefix: tca-gred-vq-
3067    attributes:
3068      -
3069        name: pad
3070        type: pad
3071      -
3072        name: dp
3073        type: u32
3074      -
3075        name: stat-bytes
3076        type: u64
3077      -
3078        name: stat-packets
3079        type: u32
3080      -
3081        name: stat-backlog
3082        type: u32
3083      -
3084        name: stat-prob-drop
3085        type: u32
3086      -
3087        name: stat-prob-mark
3088        type: u32
3089      -
3090        name: stat-forced-drop
3091        type: u32
3092      -
3093        name: stat-forced-mark
3094        type: u32
3095      -
3096        name: stat-pdrop
3097        type: u32
3098      -
3099        name: stat-other
3100        type: u32
3101      -
3102        name: flags
3103        type: u32
3104  -
3105    name: hfsc-attrs
3106    attributes:
3107      -
3108        name: rsc
3109        type: binary
3110      -
3111        name: fsc
3112        type: binary
3113      -
3114        name: usc
3115        type: binary
3116  -
3117    name: hhf-attrs
3118    name-prefix: tca-hhf-
3119    attributes:
3120      -
3121        name: backlog-limit
3122        type: u32
3123      -
3124        name: quantum
3125        type: u32
3126      -
3127        name: hh-flows-limit
3128        type: u32
3129      -
3130        name: reset-timeout
3131        type: u32
3132      -
3133        name: admit-bytes
3134        type: u32
3135      -
3136        name: evict-timeout
3137        type: u32
3138      -
3139        name: non-hh-weight
3140        type: u32
3141  -
3142    name: htb-attrs
3143    name-prefix: tca-htb-
3144    attributes:
3145      -
3146        name: parms
3147        type: binary
3148        struct: tc-htb-opt
3149      -
3150        name: init
3151        type: binary
3152        struct: tc-htb-glob
3153      -
3154        name: ctab
3155        type: binary
3156      -
3157        name: rtab
3158        type: binary
3159      -
3160        name: direct-qlen
3161        type: u32
3162      -
3163        name: rate64
3164        type: u64
3165      -
3166        name: ceil64
3167        type: u64
3168      -
3169        name: pad
3170        type: pad
3171      -
3172        name: offload
3173        type: flag
3174  -
3175    name: matchall-attrs
3176    name-prefix: tca-matchall-
3177    attributes:
3178      -
3179        name: classid
3180        type: u32
3181      -
3182        name: act
3183        type: indexed-array
3184        sub-type: nest
3185        nested-attributes: act-attrs
3186      -
3187        name: flags
3188        type: u32
3189      -
3190        name: pcnt
3191        type: binary
3192        struct: tc-matchall-pcnt
3193      -
3194        name: pad
3195        type: pad
3196  -
3197    name: etf-attrs
3198    name-prefix: tca-etf-
3199    attributes:
3200      -
3201        name: parms
3202        type: binary
3203        struct: tc-etf-qopt
3204  -
3205    name: ets-attrs
3206    name-prefix: tca-ets-
3207    attributes:
3208      -
3209        name: nbands
3210        type: u8
3211      -
3212        name: nstrict
3213        type: u8
3214      -
3215        name: quanta
3216        type: nest
3217        nested-attributes: ets-attrs
3218      -
3219        name: quanta-band
3220        type: u32
3221        multi-attr: true
3222      -
3223        name: priomap
3224        type: nest
3225        nested-attributes: ets-attrs
3226      -
3227        name: priomap-band
3228        type: u8
3229        multi-attr: true
3230  -
3231    name: fq-attrs
3232    name-prefix: tca-fq-
3233    attributes:
3234      -
3235        name: plimit
3236        type: u32
3237        doc: Limit of total number of packets in queue
3238      -
3239        name: flow-plimit
3240        type: u32
3241        doc: Limit of packets per flow
3242      -
3243        name: quantum
3244        type: u32
3245        doc: RR quantum
3246      -
3247        name: initial-quantum
3248        type: u32
3249        doc: RR quantum for new flow
3250      -
3251        name: rate-enable
3252        type: u32
3253        doc: Enable / disable rate limiting
3254      -
3255        name: flow-default-rate
3256        type: u32
3257        doc: Obsolete, do not use
3258      -
3259        name: flow-max-rate
3260        type: u32
3261        doc: Per flow max rate
3262      -
3263        name: buckets-log
3264        type: u32
3265        doc: log2(number of buckets)
3266      -
3267        name: flow-refill-delay
3268        type: u32
3269        doc: Flow credit refill delay in usec
3270      -
3271        name: orphan-mask
3272        type: u32
3273        doc: Mask applied to orphaned skb hashes
3274      -
3275        name: low-rate-threshold
3276        type: u32
3277        doc: Per packet delay under this rate
3278      -
3279        name: ce-threshold
3280        type: u32
3281        doc: DCTCP-like CE marking threshold
3282      -
3283        name: timer-slack
3284        type: u32
3285      -
3286        name: horizon
3287        type: u32
3288        doc: Time horizon in usec
3289      -
3290        name: horizon-drop
3291        type: u8
3292        doc: Drop packets beyond horizon, or cap their EDT
3293      -
3294        name: priomap
3295        type: binary
3296        struct: tc-prio-qopt
3297      -
3298        name: weights
3299        type: binary
3300        sub-type: s32
3301        doc: Weights for each band
3302  -
3303    name: fq-codel-attrs
3304    name-prefix: tca-fq-codel-
3305    attributes:
3306      -
3307        name: target
3308        type: u32
3309      -
3310        name: limit
3311        type: u32
3312      -
3313        name: interval
3314        type: u32
3315      -
3316        name: ecn
3317        type: u32
3318      -
3319        name: flows
3320        type: u32
3321      -
3322        name: quantum
3323        type: u32
3324      -
3325        name: ce-threshold
3326        type: u32
3327      -
3328        name: drop-batch-size
3329        type: u32
3330      -
3331        name: memory-limit
3332        type: u32
3333      -
3334        name: ce-threshold-selector
3335        type: u8
3336      -
3337        name: ce-threshold-mask
3338        type: u8
3339  -
3340    name: fq-pie-attrs
3341    name-prefix: tca-fq-pie-
3342    attributes:
3343      -
3344        name: limit
3345        type: u32
3346      -
3347        name: flows
3348        type: u32
3349      -
3350        name: target
3351        type: u32
3352      -
3353        name: tupdate
3354        type: u32
3355      -
3356        name: alpha
3357        type: u32
3358      -
3359        name: beta
3360        type: u32
3361      -
3362        name: quantum
3363        type: u32
3364      -
3365        name: memory-limit
3366        type: u32
3367      -
3368        name: ecn-prob
3369        type: u32
3370      -
3371        name: ecn
3372        type: u32
3373      -
3374        name: bytemode
3375        type: u32
3376      -
3377        name: dq-rate-estimator
3378        type: u32
3379  -
3380    name: netem-attrs
3381    name-prefix: tca-netem-
3382    attributes:
3383      -
3384        name: corr
3385        type: binary
3386        struct: tc-netem-corr
3387      -
3388        name: delay-dist
3389        type: binary
3390        sub-type: s16
3391      -
3392        name: reorder
3393        type: binary
3394        struct: tc-netem-reorder
3395      -
3396        name: corrupt
3397        type: binary
3398        struct: tc-netem-corrupt
3399      -
3400        name: loss
3401        type: nest
3402        nested-attributes: netem-loss-attrs
3403      -
3404        name: rate
3405        type: binary
3406        struct: tc-netem-rate
3407      -
3408        name: ecn
3409        type: u32
3410      -
3411        name: rate64
3412        type: u64
3413      -
3414        name: pad
3415        type: u32
3416      -
3417        name: latency64
3418        type: s64
3419      -
3420        name: jitter64
3421        type: s64
3422      -
3423        name: slot
3424        type: binary
3425        struct: tc-netem-slot
3426      -
3427        name: slot-dist
3428        type: binary
3429        sub-type: s16
3430      -
3431        name: prng-seed
3432        type: u64
3433  -
3434    name: netem-loss-attrs
3435    name-prefix: netem-loss-
3436    attributes:
3437      -
3438        name: gi
3439        type: binary
3440        doc: General Intuitive - 4 state model
3441        struct: tc-netem-gimodel
3442      -
3443        name: ge
3444        type: binary
3445        doc: Gilbert Elliot models
3446        struct: tc-netem-gemodel
3447  -
3448    name: pie-attrs
3449    name-prefix: tca-pie-
3450    attributes:
3451      -
3452        name: target
3453        type: u32
3454      -
3455        name: limit
3456        type: u32
3457      -
3458        name: tupdate
3459        type: u32
3460      -
3461        name: alpha
3462        type: u32
3463      -
3464        name: beta
3465        type: u32
3466      -
3467        name: ecn
3468        type: u32
3469      -
3470        name: bytemode
3471        type: u32
3472      -
3473        name: dq-rate-estimator
3474        type: u32
3475  -
3476    name: police-attrs
3477    name-prefix: tca-police-
3478    attributes:
3479      -
3480        name: tbf
3481        type: binary
3482        struct: tc-police
3483      -
3484        name: rate
3485        type: binary  # TODO
3486      -
3487        name: peakrate
3488        type: binary  # TODO
3489      -
3490        name: avrate
3491        type: u32
3492      -
3493        name: result
3494        type: u32
3495      -
3496        name: tm
3497        type: binary
3498        struct: tcf-t
3499      -
3500        name: pad
3501        type: pad
3502      -
3503        name: rate64
3504        type: u64
3505      -
3506        name: peakrate64
3507        type: u64
3508      -
3509        name: pktrate64
3510        type: u64
3511      -
3512        name: pktburst64
3513        type: u64
3514  -
3515    name: qfq-attrs
3516    name-prefix: tca-qfq-
3517    attributes:
3518      -
3519        name: weight
3520        type: u32
3521      -
3522        name: lmax
3523        type: u32
3524  -
3525    name: red-attrs
3526    name-prefix: tca-red-
3527    attributes:
3528      -
3529        name: parms
3530        type: binary
3531        struct: tc-red-qopt
3532      -
3533        name: stab
3534        type: binary
3535      -
3536        name: max-p
3537        type: u32
3538      -
3539        name: flags
3540        type: bitfield32
3541      -
3542        name: early-drop-block
3543        type: u32
3544      -
3545        name: mark-block
3546        type: u32
3547  -
3548    name: route-attrs
3549    name-prefix: tca-route4-
3550    attributes:
3551      -
3552        name: classid
3553        type: u32
3554      -
3555        name: to
3556        type: u32
3557      -
3558        name: from
3559        type: u32
3560      -
3561        name: iif
3562        type: u32
3563      -
3564        name: police
3565        type: nest
3566        nested-attributes: police-attrs
3567      -
3568        name: act
3569        type: indexed-array
3570        sub-type: nest
3571        nested-attributes: act-attrs
3572  -
3573    name: taprio-attrs
3574    name-prefix: tca-taprio-attr-
3575    attributes:
3576      -
3577        name: priomap
3578        type: binary
3579        struct: tc-mqprio-qopt
3580      -
3581        name: sched-entry-list
3582        type: nest
3583        nested-attributes: taprio-sched-entry-list
3584      -
3585        name: sched-base-time
3586        type: s64
3587      -
3588        name: sched-single-entry
3589        type: nest
3590        nested-attributes: taprio-sched-entry
3591      -
3592        name: sched-clockid
3593        type: s32
3594      -
3595        name: pad
3596        type: pad
3597      -
3598        name: admin-sched
3599        type: binary
3600      -
3601        name: sched-cycle-time
3602        type: s64
3603      -
3604        name: sched-cycle-time-extension
3605        type: s64
3606      -
3607        name: flags
3608        type: u32
3609      -
3610        name: txtime-delay
3611        type: u32
3612      -
3613        name: tc-entry
3614        type: nest
3615        nested-attributes: taprio-tc-entry-attrs
3616  -
3617    name: taprio-sched-entry-list
3618    name-prefix: tca-taprio-sched-
3619    attributes:
3620      -
3621        name: entry
3622        type: nest
3623        nested-attributes: taprio-sched-entry
3624        multi-attr: true
3625  -
3626    name: taprio-sched-entry
3627    name-prefix: tca-taprio-sched-entry-
3628    attributes:
3629      -
3630        name: index
3631        type: u32
3632      -
3633        name: cmd
3634        type: u8
3635      -
3636        name: gate-mask
3637        type: u32
3638      -
3639        name: interval
3640        type: u32
3641  -
3642    name: taprio-tc-entry-attrs
3643    name-prefix: tca-taprio-tc-entry-
3644    attributes:
3645      -
3646        name: index
3647        type: u32
3648      -
3649        name: max-sdu
3650        type: u32
3651      -
3652        name: fp
3653        type: u32
3654  -
3655    name: tbf-attrs
3656    name-prefix: tca-tbf-
3657    attributes:
3658      -
3659        name: parms
3660        type: binary
3661        struct: tc-tbf-qopt
3662      -
3663        name: rtab
3664        type: binary
3665      -
3666        name: ptab
3667        type: binary
3668      -
3669        name: rate64
3670        type: u64
3671      -
3672        name: prate64
3673        type: u64
3674      -
3675        name: burst
3676        type: u32
3677      -
3678        name: pburst
3679        type: u32
3680      -
3681        name: pad
3682        type: pad
3683  -
3684    name: act-sample-attrs
3685    name-prefix: tca-sample-
3686    header: linux/tc_act/tc_sample.h
3687    attributes:
3688      -
3689        name: tm
3690        type: binary
3691        struct: tcf-t
3692      -
3693        name: parms
3694        type: binary
3695        struct: tc-gact
3696      -
3697        name: rate
3698        type: u32
3699      -
3700        name: trunc-size
3701        type: u32
3702      -
3703        name: psample-group
3704        type: u32
3705      -
3706        name: pad
3707        type: pad
3708  -
3709    name: act-gact-attrs
3710    name-prefix: tca-gact-
3711    header: linux/tc_act/tc_gact.h
3712    attributes:
3713      -
3714        name: tm
3715        type: binary
3716        struct: tcf-t
3717      -
3718        name: parms
3719        type: binary
3720        struct: tc-gact
3721      -
3722        name: prob
3723        type: binary
3724        struct: tc-gact-p
3725      -
3726        name: pad
3727        type: pad
3728  -
3729    name: tca-stab-attrs
3730    name-prefix: tca-stab-
3731    attributes:
3732      -
3733        name: base
3734        type: binary
3735        struct: tc-sizespec
3736      -
3737        name: data
3738        type: binary
3739  -
3740    name: tca-stats-attrs
3741    name-prefix: tca-stats-
3742    header: linux/gen_stats.h
3743    attributes:
3744      -
3745        name: basic
3746        type: binary
3747        struct: gnet-stats-basic
3748      -
3749        name: rate-est
3750        type: binary
3751        struct: gnet-stats-rate-est
3752      -
3753        name: queue
3754        type: binary
3755        struct: gnet-stats-queue
3756      -
3757        name: app
3758        type: sub-message
3759        sub-message: tca-stats-app-msg
3760        selector: kind
3761      -
3762        name: rate-est64
3763        type: binary
3764        struct: gnet-stats-rate-est64
3765      -
3766        name: pad
3767        type: pad
3768      -
3769        name: basic-hw
3770        type: binary
3771        struct: gnet-stats-basic
3772      -
3773        name: pkt64
3774        type: u64
3775  -
3776    name: u32-attrs
3777    name-prefix: tca-u32-
3778    attributes:
3779      -
3780        name: classid
3781        type: u32
3782      -
3783        name: hash
3784        type: u32
3785      -
3786        name: link
3787        type: u32
3788      -
3789        name: divisor
3790        type: u32
3791      -
3792        name: sel
3793        type: binary
3794        struct: tc-u32-sel
3795      -
3796        name: police
3797        type: nest
3798        nested-attributes: police-attrs
3799      -
3800        name: act
3801        type: indexed-array
3802        sub-type: nest
3803        nested-attributes: act-attrs
3804      -
3805        name: indev
3806        type: string
3807      -
3808        name: pcnt
3809        type: binary
3810        struct: tc-u32-pcnt
3811      -
3812        name: mark
3813        type: binary
3814        struct: tc-u32-mark
3815      -
3816        name: flags
3817        type: u32
3818      -
3819        name: pad
3820        type: pad
3821
3822sub-messages:
3823  -
3824    name: options-msg
3825    formats:
3826      -
3827        value: basic
3828        attribute-set: basic-attrs
3829      -
3830        value: bpf
3831        attribute-set: bpf-attrs
3832      -
3833        value: bfifo
3834        fixed-header: tc-fifo-qopt
3835      -
3836        value: cake
3837        attribute-set: cake-attrs
3838      -
3839        value: cbs
3840        attribute-set: cbs-attrs
3841      -
3842        value: cgroup
3843        attribute-set: cgroup-attrs
3844      -
3845        value: choke
3846        attribute-set: choke-attrs
3847      -
3848        value: clsact  # no content
3849      -
3850        value: codel
3851        attribute-set: codel-attrs
3852      -
3853        value: drr
3854        attribute-set: drr-attrs
3855      -
3856        value: dualpi2
3857        attribute-set: dualpi2-attrs
3858      -
3859        value: etf
3860        attribute-set: etf-attrs
3861      -
3862        value: ets
3863        attribute-set: ets-attrs
3864      -
3865        value: flow
3866        attribute-set: flow-attrs
3867      -
3868        value: flower
3869        attribute-set: flower-attrs
3870      -
3871        value: fq
3872        attribute-set: fq-attrs
3873      -
3874        value: fq_codel
3875        attribute-set: fq-codel-attrs
3876      -
3877        value: fq_pie
3878        attribute-set: fq-pie-attrs
3879      -
3880        value: fw
3881        attribute-set: fw-attrs
3882      -
3883        value: gred
3884        attribute-set: gred-attrs
3885      -
3886        value: hfsc
3887        fixed-header: tc-hfsc-qopt
3888      -
3889        value: hhf
3890        attribute-set: hhf-attrs
3891      -
3892        value: htb
3893        attribute-set: htb-attrs
3894      -
3895        value: ingress  # no content
3896      -
3897        value: matchall
3898        attribute-set: matchall-attrs
3899      -
3900        value: mq  # no content
3901      -
3902        value: mqprio
3903        fixed-header: tc-mqprio-qopt
3904      -
3905        value: multiq
3906        fixed-header: tc-multiq-qopt
3907      -
3908        value: netem
3909        fixed-header: tc-netem-qopt
3910        attribute-set: netem-attrs
3911      -
3912        value: pfifo
3913        fixed-header: tc-fifo-qopt
3914      -
3915        value: pfifo_fast
3916        fixed-header: tc-prio-qopt
3917      -
3918        value: pfifo_head_drop
3919        fixed-header: tc-fifo-qopt
3920      -
3921        value: pie
3922        attribute-set: pie-attrs
3923      -
3924        value: plug
3925        fixed-header: tc-plug-qopt
3926      -
3927        value: prio
3928        fixed-header: tc-prio-qopt
3929      -
3930        value: qfq
3931        attribute-set: qfq-attrs
3932      -
3933        value: red
3934        attribute-set: red-attrs
3935      -
3936        value: route
3937        attribute-set: route-attrs
3938      -
3939        value: sfb
3940        fixed-header: tc-sfb-qopt
3941      -
3942        value: sfq
3943        fixed-header: tc-sfq-qopt-v1
3944      -
3945        value: taprio
3946        attribute-set: taprio-attrs
3947      -
3948        value: tbf
3949        attribute-set: tbf-attrs
3950      -
3951        value: u32
3952        attribute-set: u32-attrs
3953  -
3954    name: act-options-msg
3955    formats:
3956      -
3957        value: bpf
3958        attribute-set: act-bpf-attrs
3959      -
3960        value: connmark
3961        attribute-set: act-connmark-attrs
3962      -
3963        value: csum
3964        attribute-set: act-csum-attrs
3965      -
3966        value: ct
3967        attribute-set: act-ct-attrs
3968      -
3969        value: ctinfo
3970        attribute-set: act-ctinfo-attrs
3971      -
3972        value: gact
3973        attribute-set: act-gact-attrs
3974      -
3975        value: gate
3976        attribute-set: act-gate-attrs
3977      -
3978        value: ife
3979        attribute-set: act-ife-attrs
3980      -
3981        value: mirred
3982        attribute-set: act-mirred-attrs
3983      -
3984        value: mpls
3985        attribute-set: act-mpls-attrs
3986      -
3987        value: nat
3988        attribute-set: act-nat-attrs
3989      -
3990        value: pedit
3991        attribute-set: act-pedit-attrs
3992      -
3993        value: police
3994        attribute-set: police-attrs
3995      -
3996        value: sample
3997        attribute-set: act-sample-attrs
3998      -
3999        value: simple
4000        attribute-set: act-simple-attrs
4001      -
4002        value: skbedit
4003        attribute-set: act-skbedit-attrs
4004      -
4005        value: skbmod
4006        attribute-set: act-skbmod-attrs
4007      -
4008        value: tunnel_key
4009        attribute-set: act-tunnel-key-attrs
4010      -
4011        value: vlan
4012        attribute-set: act-vlan-attrs
4013  -
4014    name: tca-stats-app-msg
4015    formats:
4016      -
4017        value: cake
4018        attribute-set: cake-stats-attrs
4019      -
4020        value: choke
4021        fixed-header: tc-choke-xstats
4022      -
4023        value: codel
4024        fixed-header: tc-codel-xstats
4025      -
4026        value: dualpi2
4027        fixed-header: tc-dualpi2-xstats
4028      -
4029        value: fq
4030        fixed-header: tc-fq-qd-stats
4031      -
4032        value: fq_codel
4033        fixed-header: tc-fq-codel-xstats
4034      -
4035        value: fq_pie
4036        fixed-header: tc-fq-pie-xstats
4037      -
4038        value: hhf
4039        fixed-header: tc-hhf-xstats
4040      -
4041        value: pie
4042        fixed-header: tc-pie-xstats
4043      -
4044        value: red
4045        fixed-header: tc-red-xstats
4046      -
4047        value: sfb
4048        fixed-header: tc-sfb-xstats
4049      -
4050        value: sfq
4051        fixed-header: tc-sfq-xstats
4052
4053operations:
4054  enum-model: directional
4055  name-prefix: rtm-
4056  list:
4057    -
4058      name: newqdisc
4059      doc: Create new tc qdisc.
4060      attribute-set: attrs
4061      fixed-header: tcmsg
4062      do:
4063        request:
4064          value: 36
4065          attributes: &create-params
4066            - kind
4067            - options
4068            - rate
4069            - chain
4070            - ingress-block
4071            - egress-block
4072    -
4073      name: delqdisc
4074      doc: Delete existing tc qdisc.
4075      attribute-set: attrs
4076      fixed-header: tcmsg
4077      do:
4078        request:
4079          value: 37
4080    -
4081      name: getqdisc
4082      doc: Get / dump tc qdisc information.
4083      attribute-set: attrs
4084      fixed-header: tcmsg
4085      do: &getqdisc-do
4086        request:
4087          value: 38
4088          attributes:
4089            - dump-invisible
4090        reply:
4091          value: 36
4092          attributes: &tc-all
4093            - kind
4094            - options
4095            - stats
4096            - xstats
4097            - rate
4098            - fcnt
4099            - stats2
4100            - stab
4101            - chain
4102            - ingress-block
4103            - egress-block
4104      dump: *getqdisc-do
4105    -
4106      name: newtclass
4107      doc: Get / dump tc traffic class information.
4108      attribute-set: attrs
4109      fixed-header: tcmsg
4110      do:
4111        request:
4112          value: 40
4113          attributes: *create-params
4114    -
4115      name: deltclass
4116      doc: Get / dump tc traffic class information.
4117      attribute-set: attrs
4118      fixed-header: tcmsg
4119      do:
4120        request:
4121          value: 41
4122    -
4123      name: gettclass
4124      doc: Get / dump tc traffic class information.
4125      attribute-set: attrs
4126      fixed-header: tcmsg
4127      do:
4128        request:
4129          value: 42
4130        reply:
4131          value: 40
4132          attributes: *tc-all
4133    -
4134      name: newtfilter
4135      doc: Get / dump tc filter information.
4136      attribute-set: attrs
4137      fixed-header: tcmsg
4138      do:
4139        request:
4140          value: 44
4141          attributes: *create-params
4142    -
4143      name: deltfilter
4144      doc: Get / dump tc filter information.
4145      attribute-set: attrs
4146      fixed-header: tcmsg
4147      do:
4148        request:
4149          value: 45
4150          attributes:
4151            - chain
4152            - kind
4153    -
4154      name: gettfilter
4155      doc: Get / dump tc filter information.
4156      attribute-set: attrs
4157      fixed-header: tcmsg
4158      do:
4159        request:
4160          value: 46
4161          attributes:
4162            - chain
4163            - kind
4164        reply:
4165          value: 44
4166          attributes: *tc-all
4167      dump:
4168        request:
4169          value: 46
4170          attributes:
4171            - chain
4172            - dump-flags
4173        reply:
4174          value: 44
4175          attributes: *tc-all
4176    -
4177      name: newchain
4178      doc: Get / dump tc chain information.
4179      attribute-set: attrs
4180      fixed-header: tcmsg
4181      do:
4182        request:
4183          value: 100
4184          attributes: *create-params
4185    -
4186      name: delchain
4187      doc: Get / dump tc chain information.
4188      attribute-set: attrs
4189      fixed-header: tcmsg
4190      do:
4191        request:
4192          value: 101
4193          attributes:
4194            - chain
4195    -
4196      name: getchain
4197      doc: Get / dump tc chain information.
4198      attribute-set: attrs
4199      fixed-header: tcmsg
4200      do:
4201        request:
4202          value: 102
4203          attributes:
4204            - chain
4205        reply:
4206          value: 100
4207          attributes: *tc-all
4208
4209mcast-groups:
4210  list:
4211    -
4212      name: rtnlgrp-tc
4213      value: 4
4214