xref: /linux/Documentation/netlink/specs/tc.yaml (revision 9fd2da71c301184d98fe37674ca8d017d1ce6600)
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: cake-tin-stats-attrs
2212    name-prefix: tca-cake-tin-stats-
2213    attributes:
2214      -
2215        name: pad
2216        type: pad
2217      -
2218        name: sent-packets
2219        type: u32
2220      -
2221        name: sent-bytes64
2222        type: u64
2223      -
2224        name: dropped-packets
2225        type: u32
2226      -
2227        name: dropped-bytes64
2228        type: u64
2229      -
2230        name: acks-dropped-packets
2231        type: u32
2232      -
2233        name: acks-dropped-bytes64
2234        type: u64
2235      -
2236        name: ecn-marked-packets
2237        type: u32
2238      -
2239        name: ecn-marked-bytes64
2240        type: u64
2241      -
2242        name: backlog-packets
2243        type: u32
2244      -
2245        name: backlog-bytes
2246        type: u32
2247      -
2248        name: threshold-rate64
2249        type: u64
2250      -
2251        name: target-us
2252        type: u32
2253      -
2254        name: interval-us
2255        type: u32
2256      -
2257        name: way-indirect-hits
2258        type: u32
2259      -
2260        name: way-misses
2261        type: u32
2262      -
2263        name: way-collisions
2264        type: u32
2265      -
2266        name: peak-delay-us
2267        type: u32
2268      -
2269        name: avg-delay-us
2270        type: u32
2271      -
2272        name: base-delay-us
2273        type: u32
2274      -
2275        name: sparse-flows
2276        type: u32
2277      -
2278        name: bulk-flows
2279        type: u32
2280      -
2281        name: unresponsive-flows
2282        type: u32
2283      -
2284        name: max-skblen
2285        type: u32
2286      -
2287        name: flow-quantum
2288        type: u32
2289  -
2290    name: cbs-attrs
2291    name-prefix: tca-cbs-
2292    attributes:
2293      -
2294        name: parms
2295        type: binary
2296        struct: tc-cbs-qopt
2297  -
2298    name: cgroup-attrs
2299    name-prefix: tca-cgroup-
2300    attributes:
2301      -
2302        name: act
2303        type: indexed-array
2304        sub-type: nest
2305        nested-attributes: act-attrs
2306      -
2307        name: police
2308        type: nest
2309        nested-attributes: police-attrs
2310      -
2311        name: ematches
2312        type: binary
2313  -
2314    name: choke-attrs
2315    name-prefix: tca-choke-
2316    attributes:
2317      -
2318        name: parms
2319        type: binary
2320        struct: tc-red-qopt
2321      -
2322        name: stab
2323        type: binary
2324        checks:
2325          min-len: 256
2326          max-len: 256
2327      -
2328        name: max-p
2329        type: u32
2330  -
2331    name: codel-attrs
2332    name-prefix: tca-codel-
2333    attributes:
2334      -
2335        name: target
2336        type: u32
2337      -
2338        name: limit
2339        type: u32
2340      -
2341        name: interval
2342        type: u32
2343      -
2344        name: ecn
2345        type: u32
2346      -
2347        name: ce-threshold
2348        type: u32
2349  -
2350    name: drr-attrs
2351    name-prefix: tca-drr-
2352    attributes:
2353      -
2354        name: quantum
2355        type: u32
2356  -
2357    name: dualpi2-attrs
2358    name-prefix: tca-dualpi2-
2359    attributes:
2360      -
2361        name: limit
2362        type: u32
2363        doc: Limit of total number of packets in queue
2364      -
2365        name: memory-limit
2366        type: u32
2367        doc: Memory limit of total number of packets in queue
2368      -
2369        name: target
2370        type: u32
2371        doc: Classic target delay in microseconds
2372      -
2373        name: tupdate
2374        type: u32
2375        doc: Drop probability update interval time in microseconds
2376      -
2377        name: alpha
2378        type: u32
2379        doc: Integral gain factor in Hz for PI controller
2380      -
2381        name: beta
2382        type: u32
2383        doc: Proportional gain factor in Hz for PI controller
2384      -
2385        name: step-thresh-pkts
2386        type: u32
2387        doc: L4S step marking threshold in packets
2388      -
2389        name: step-thresh-us
2390        type: u32
2391        doc: L4S Step marking threshold in microseconds
2392      -
2393        name: min-qlen-step
2394        type: u32
2395        doc: Packets enqueued to the L-queue can apply the step threshold
2396             when the queue length of L-queue is larger than this value.
2397             (0 is recommended)
2398      -
2399        name: coupling
2400        type: u8
2401        doc: Probability coupling factor between Classic and L4S
2402             (2 is recommended)
2403      -
2404        name: drop-overload
2405        type: u8
2406        doc: Control the overload strategy (drop to preserve latency or
2407             let the queue overflow)
2408        enum: dualpi2-drop-overload
2409      -
2410        name: drop-early
2411        type: u8
2412        doc: Decide where the Classic packets are PI-based dropped or marked
2413        enum: dualpi2-drop-early
2414      -
2415        name: c-protection
2416        type: u8
2417        doc: Classic WRR weight in percentage (from 0 to 100)
2418      -
2419        name: ecn-mask
2420        type: u8
2421        doc: Configure the L-queue ECN classifier
2422        enum: dualpi2-ecn-mask
2423      -
2424        name: split-gso
2425        type: u8
2426        doc: Split aggregated skb or not
2427        enum: dualpi2-split-gso
2428  -
2429    name: ematch-attrs
2430    name-prefix: tca-ematch-
2431    attr-max-name: tca-ematch-tree-max
2432    attributes:
2433      -
2434        name: tree-hdr
2435        type: binary
2436        struct: tcf-ematch-tree-hdr
2437      -
2438        name: tree-list
2439        type: binary
2440  -
2441    name: flow-attrs
2442    name-prefix: tca-flow-
2443    attributes:
2444      -
2445        name: keys
2446        type: u32
2447      -
2448        name: mode
2449        type: u32
2450      -
2451        name: baseclass
2452        type: u32
2453      -
2454        name: rshift
2455        type: u32
2456      -
2457        name: addend
2458        type: u32
2459      -
2460        name: mask
2461        type: u32
2462      -
2463        name: xor
2464        type: u32
2465      -
2466        name: divisor
2467        type: u32
2468      -
2469        name: act
2470        type: binary
2471      -
2472        name: police
2473        type: nest
2474        nested-attributes: police-attrs
2475      -
2476        name: ematches
2477        type: binary
2478      -
2479        name: perturb
2480        type: u32
2481  -
2482    name: flower-attrs
2483    name-prefix: tca-flower-
2484    attributes:
2485      -
2486        name: classid
2487        type: u32
2488      -
2489        name: indev
2490        type: string
2491      -
2492        name: act
2493        type: indexed-array
2494        sub-type: nest
2495        nested-attributes: act-attrs
2496      -
2497        name: key-eth-dst
2498        type: binary
2499        display-hint: mac
2500      -
2501        name: key-eth-dst-mask
2502        type: binary
2503        display-hint: mac
2504      -
2505        name: key-eth-src
2506        type: binary
2507        display-hint: mac
2508      -
2509        name: key-eth-src-mask
2510        type: binary
2511        display-hint: mac
2512      -
2513        name: key-eth-type
2514        type: u16
2515        byte-order: big-endian
2516      -
2517        name: key-ip-proto
2518        type: u8
2519      -
2520        name: key-ipv4-src
2521        type: u32
2522        byte-order: big-endian
2523        display-hint: ipv4
2524      -
2525        name: key-ipv4-src-mask
2526        type: u32
2527        byte-order: big-endian
2528        display-hint: ipv4
2529      -
2530        name: key-ipv4-dst
2531        type: u32
2532        byte-order: big-endian
2533        display-hint: ipv4
2534      -
2535        name: key-ipv4-dst-mask
2536        type: u32
2537        byte-order: big-endian
2538        display-hint: ipv4
2539      -
2540        name: key-ipv6-src
2541        type: binary
2542        display-hint: ipv6
2543      -
2544        name: key-ipv6-src-mask
2545        type: binary
2546        display-hint: ipv6
2547      -
2548        name: key-ipv6-dst
2549        type: binary
2550        display-hint: ipv6
2551      -
2552        name: key-ipv6-dst-mask
2553        type: binary
2554        display-hint: ipv6
2555      -
2556        name: key-tcp-src
2557        type: u16
2558        byte-order: big-endian
2559      -
2560        name: key-tcp-dst
2561        type: u16
2562        byte-order: big-endian
2563      -
2564        name: key-udp-src
2565        type: u16
2566        byte-order: big-endian
2567      -
2568        name: key-udp-dst
2569        type: u16
2570        byte-order: big-endian
2571      -
2572        name: flags
2573        type: u32
2574        enum: cls-flags
2575        enum-as-flags: true
2576      -
2577        name: key-vlan-id
2578        type: u16
2579        byte-order: big-endian
2580      -
2581        name: key-vlan-prio
2582        type: u8
2583      -
2584        name: key-vlan-eth-type
2585        type: u16
2586        byte-order: big-endian
2587      -
2588        name: key-enc-key-id
2589        type: u32
2590        byte-order: big-endian
2591      -
2592        name: key-enc-ipv4-src
2593        type: u32
2594        byte-order: big-endian
2595        display-hint: ipv4
2596      -
2597        name: key-enc-ipv4-src-mask
2598        type: u32
2599        byte-order: big-endian
2600        display-hint: ipv4
2601      -
2602        name: key-enc-ipv4-dst
2603        type: u32
2604        byte-order: big-endian
2605        display-hint: ipv4
2606      -
2607        name: key-enc-ipv4-dst-mask
2608        type: u32
2609        byte-order: big-endian
2610        display-hint: ipv4
2611      -
2612        name: key-enc-ipv6-src
2613        type: binary
2614        display-hint: ipv6
2615      -
2616        name: key-enc-ipv6-src-mask
2617        type: binary
2618        display-hint: ipv6
2619      -
2620        name: key-enc-ipv6-dst
2621        type: binary
2622        display-hint: ipv6
2623      -
2624        name: key-enc-ipv6-dst-mask
2625        type: binary
2626        display-hint: ipv6
2627      -
2628        name: key-tcp-src-mask
2629        type: u16
2630        byte-order: big-endian
2631      -
2632        name: key-tcp-dst-mask
2633        type: u16
2634        byte-order: big-endian
2635      -
2636        name: key-udp-src-mask
2637        type: u16
2638        byte-order: big-endian
2639      -
2640        name: key-udp-dst-mask
2641        type: u16
2642        byte-order: big-endian
2643      -
2644        name: key-sctp-src-mask
2645        type: u16
2646        byte-order: big-endian
2647      -
2648        name: key-sctp-dst-mask
2649        type: u16
2650        byte-order: big-endian
2651      -
2652        name: key-sctp-src
2653        type: u16
2654        byte-order: big-endian
2655      -
2656        name: key-sctp-dst
2657        type: u16
2658        byte-order: big-endian
2659      -
2660        name: key-enc-udp-src-port
2661        type: u16
2662        byte-order: big-endian
2663      -
2664        name: key-enc-udp-src-port-mask
2665        type: u16
2666        byte-order: big-endian
2667      -
2668        name: key-enc-udp-dst-port
2669        type: u16
2670        byte-order: big-endian
2671      -
2672        name: key-enc-udp-dst-port-mask
2673        type: u16
2674        byte-order: big-endian
2675      -
2676        name: key-flags
2677        type: u32
2678        byte-order: big-endian
2679        enum: flower-key-ctrl-flags
2680        enum-as-flags: true
2681      -
2682        name: key-flags-mask
2683        type: u32
2684        byte-order: big-endian
2685        enum: flower-key-ctrl-flags
2686        enum-as-flags: true
2687      -
2688        name: key-icmpv4-code
2689        type: u8
2690      -
2691        name: key-icmpv4-code-mask
2692        type: u8
2693      -
2694        name: key-icmpv4-type
2695        type: u8
2696      -
2697        name: key-icmpv4-type-mask
2698        type: u8
2699      -
2700        name: key-icmpv6-code
2701        type: u8
2702      -
2703        name: key-icmpv6-code-mask
2704        type: u8
2705      -
2706        name: key-icmpv6-type
2707        type: u8
2708      -
2709        name: key-icmpv6-type-mask
2710        type: u8
2711      -
2712        name: key-arp-sip
2713        type: u32
2714        byte-order: big-endian
2715      -
2716        name: key-arp-sip-mask
2717        type: u32
2718        byte-order: big-endian
2719      -
2720        name: key-arp-tip
2721        type: u32
2722        byte-order: big-endian
2723      -
2724        name: key-arp-tip-mask
2725        type: u32
2726        byte-order: big-endian
2727      -
2728        name: key-arp-op
2729        type: u8
2730      -
2731        name: key-arp-op-mask
2732        type: u8
2733      -
2734        name: key-arp-sha
2735        type: binary
2736        display-hint: mac
2737      -
2738        name: key-arp-sha-mask
2739        type: binary
2740        display-hint: mac
2741      -
2742        name: key-arp-tha
2743        type: binary
2744        display-hint: mac
2745      -
2746        name: key-arp-tha-mask
2747        type: binary
2748        display-hint: mac
2749      -
2750        name: key-mpls-ttl
2751        type: u8
2752      -
2753        name: key-mpls-bos
2754        type: u8
2755      -
2756        name: key-mpls-tc
2757        type: u8
2758      -
2759        name: key-mpls-label
2760        type: u32
2761        byte-order: big-endian
2762      -
2763        name: key-tcp-flags
2764        type: u16
2765        byte-order: big-endian
2766      -
2767        name: key-tcp-flags-mask
2768        type: u16
2769        byte-order: big-endian
2770      -
2771        name: key-ip-tos
2772        type: u8
2773      -
2774        name: key-ip-tos-mask
2775        type: u8
2776      -
2777        name: key-ip-ttl
2778        type: u8
2779      -
2780        name: key-ip-ttl-mask
2781        type: u8
2782      -
2783        name: key-cvlan-id
2784        type: u16
2785        byte-order: big-endian
2786      -
2787        name: key-cvlan-prio
2788        type: u8
2789      -
2790        name: key-cvlan-eth-type
2791        type: u16
2792        byte-order: big-endian
2793      -
2794        name: key-enc-ip-tos
2795        type: u8
2796      -
2797        name: key-enc-ip-tos-mask
2798        type: u8
2799      -
2800        name: key-enc-ip-ttl
2801        type: u8
2802      -
2803        name: key-enc-ip-ttl-mask
2804        type: u8
2805      -
2806        name: key-enc-opts
2807        type: nest
2808        nested-attributes: flower-key-enc-opts-attrs
2809      -
2810        name: key-enc-opts-mask
2811        type: nest
2812        nested-attributes: flower-key-enc-opts-attrs
2813      -
2814        name: in-hw-count
2815        type: u32
2816      -
2817        name: key-port-src-min
2818        type: u16
2819        byte-order: big-endian
2820      -
2821        name: key-port-src-max
2822        type: u16
2823        byte-order: big-endian
2824      -
2825        name: key-port-dst-min
2826        type: u16
2827        byte-order: big-endian
2828      -
2829        name: key-port-dst-max
2830        type: u16
2831        byte-order: big-endian
2832      -
2833        name: key-ct-state
2834        type: u16
2835      -
2836        name: key-ct-state-mask
2837        type: u16
2838      -
2839        name: key-ct-zone
2840        type: u16
2841      -
2842        name: key-ct-zone-mask
2843        type: u16
2844      -
2845        name: key-ct-mark
2846        type: u32
2847      -
2848        name: key-ct-mark-mask
2849        type: u32
2850      -
2851        name: key-ct-labels
2852        type: binary
2853      -
2854        name: key-ct-labels-mask
2855        type: binary
2856      -
2857        name: key-mpls-opts
2858        type: nest
2859        nested-attributes: flower-key-mpls-opt-attrs
2860      -
2861        name: key-hash
2862        type: u32
2863      -
2864        name: key-hash-mask
2865        type: u32
2866      -
2867        name: key-num-of-vlans
2868        type: u8
2869      -
2870        name: key-pppoe-sid
2871        type: u16
2872        byte-order: big-endian
2873      -
2874        name: key-ppp-proto
2875        type: u16
2876        byte-order: big-endian
2877      -
2878        name: key-l2tpv3-sid
2879        type: u32
2880        byte-order: big-endian
2881      -
2882        name: l2-miss
2883        type: u8
2884      -
2885        name: key-cfm
2886        type: nest
2887        nested-attributes: flower-key-cfm-attrs
2888      -
2889        name: key-spi
2890        type: u32
2891        byte-order: big-endian
2892      -
2893        name: key-spi-mask
2894        type: u32
2895        byte-order: big-endian
2896      -
2897        name: key-enc-flags
2898        type: u32
2899        byte-order: big-endian
2900        enum: flower-key-ctrl-flags
2901        enum-as-flags: true
2902      -
2903        name: key-enc-flags-mask
2904        type: u32
2905        byte-order: big-endian
2906        enum: flower-key-ctrl-flags
2907        enum-as-flags: true
2908  -
2909    name: flower-key-enc-opts-attrs
2910    name-prefix: tca-flower-key-enc-opts-
2911    attributes:
2912      -
2913        name: geneve
2914        type: nest
2915        nested-attributes: flower-key-enc-opt-geneve-attrs
2916      -
2917        name: vxlan
2918        type: nest
2919        nested-attributes: flower-key-enc-opt-vxlan-attrs
2920      -
2921        name: erspan
2922        type: nest
2923        nested-attributes: flower-key-enc-opt-erspan-attrs
2924      -
2925        name: gtp
2926        type: nest
2927        nested-attributes: flower-key-enc-opt-gtp-attrs
2928  -
2929    name: flower-key-enc-opt-geneve-attrs
2930    name-prefix: tca-flower-key-enc-opt-geneve-
2931    attributes:
2932      -
2933        name: class
2934        type: u16
2935      -
2936        name: type
2937        type: u8
2938      -
2939        name: data
2940        type: binary
2941  -
2942    name: flower-key-enc-opt-vxlan-attrs
2943    name-prefix: tca-flower-key-enc-opt-vxlan-
2944    attributes:
2945      -
2946        name: gbp
2947        type: u32
2948  -
2949    name: flower-key-enc-opt-erspan-attrs
2950    name-prefix: tca-flower-key-enc-opt-erspan-
2951    attributes:
2952      -
2953        name: ver
2954        type: u8
2955      -
2956        name: index
2957        type: u32
2958      -
2959        name: dir
2960        type: u8
2961      -
2962        name: hwid
2963        type: u8
2964  -
2965    name: flower-key-enc-opt-gtp-attrs
2966    name-prefix: tca-flower-key-enc-opt-gtp-
2967    attributes:
2968      -
2969        name: pdu-type
2970        type: u8
2971      -
2972        name: qfi
2973        type: u8
2974  -
2975    name: flower-key-mpls-opt-attrs
2976    name-prefix: tca-flower-key-mpls-opt-
2977    attr-max-name: tca-flower-key-mpls-opt-lse-max
2978    attributes:
2979      -
2980        name: lse-depth
2981        type: u8
2982      -
2983        name: lse-ttl
2984        type: u8
2985      -
2986        name: lse-bos
2987        type: u8
2988      -
2989        name: lse-tc
2990        type: u8
2991      -
2992        name: lse-label
2993        type: u32
2994  -
2995    name: flower-key-cfm-attrs
2996    name-prefix: tca-flower-key-cfm-
2997    attributes:
2998      -
2999        name: md-level
3000        type: u8
3001      -
3002        name: opcode
3003        type: u8
3004  -
3005    name: fw-attrs
3006    name-prefix: tca-fw-
3007    attributes:
3008      -
3009        name: classid
3010        type: u32
3011      -
3012        name: police
3013        type: nest
3014        nested-attributes: police-attrs
3015      -
3016        name: indev
3017        type: string
3018      -
3019        name: act
3020        type: indexed-array
3021        sub-type: nest
3022        nested-attributes: act-attrs
3023      -
3024        name: mask
3025        type: u32
3026  -
3027    name: gred-attrs
3028    name-prefix: tca-gred-
3029    attributes:
3030      -
3031        name: parms
3032        type: binary  # array of struct: tc-gred-qopt
3033      -
3034        name: stab
3035        type: binary
3036        sub-type: u8
3037      -
3038        name: dps
3039        type: binary
3040        struct: tc-gred-sopt
3041      -
3042        name: max-p
3043        type: binary
3044        sub-type: u32
3045      -
3046        name: limit
3047        type: u32
3048      -
3049        name: vq-list
3050        type: nest
3051        nested-attributes: tca-gred-vq-list-attrs
3052  -
3053    name: tca-gred-vq-list-attrs
3054    name-prefix: tca-gred-vq-
3055    attributes:
3056      -
3057        name: entry
3058        type: nest
3059        nested-attributes: tca-gred-vq-entry-attrs
3060        multi-attr: true
3061  -
3062    name: tca-gred-vq-entry-attrs
3063    name-prefix: tca-gred-vq-
3064    attributes:
3065      -
3066        name: pad
3067        type: pad
3068      -
3069        name: dp
3070        type: u32
3071      -
3072        name: stat-bytes
3073        type: u64
3074      -
3075        name: stat-packets
3076        type: u32
3077      -
3078        name: stat-backlog
3079        type: u32
3080      -
3081        name: stat-prob-drop
3082        type: u32
3083      -
3084        name: stat-prob-mark
3085        type: u32
3086      -
3087        name: stat-forced-drop
3088        type: u32
3089      -
3090        name: stat-forced-mark
3091        type: u32
3092      -
3093        name: stat-pdrop
3094        type: u32
3095      -
3096        name: stat-other
3097        type: u32
3098      -
3099        name: flags
3100        type: u32
3101  -
3102    name: hfsc-attrs
3103    attributes:
3104      -
3105        name: rsc
3106        type: binary
3107      -
3108        name: fsc
3109        type: binary
3110      -
3111        name: usc
3112        type: binary
3113  -
3114    name: hhf-attrs
3115    name-prefix: tca-hhf-
3116    attributes:
3117      -
3118        name: backlog-limit
3119        type: u32
3120      -
3121        name: quantum
3122        type: u32
3123      -
3124        name: hh-flows-limit
3125        type: u32
3126      -
3127        name: reset-timeout
3128        type: u32
3129      -
3130        name: admit-bytes
3131        type: u32
3132      -
3133        name: evict-timeout
3134        type: u32
3135      -
3136        name: non-hh-weight
3137        type: u32
3138  -
3139    name: htb-attrs
3140    name-prefix: tca-htb-
3141    attributes:
3142      -
3143        name: parms
3144        type: binary
3145        struct: tc-htb-opt
3146      -
3147        name: init
3148        type: binary
3149        struct: tc-htb-glob
3150      -
3151        name: ctab
3152        type: binary
3153      -
3154        name: rtab
3155        type: binary
3156      -
3157        name: direct-qlen
3158        type: u32
3159      -
3160        name: rate64
3161        type: u64
3162      -
3163        name: ceil64
3164        type: u64
3165      -
3166        name: pad
3167        type: pad
3168      -
3169        name: offload
3170        type: flag
3171  -
3172    name: matchall-attrs
3173    name-prefix: tca-matchall-
3174    attributes:
3175      -
3176        name: classid
3177        type: u32
3178      -
3179        name: act
3180        type: indexed-array
3181        sub-type: nest
3182        nested-attributes: act-attrs
3183      -
3184        name: flags
3185        type: u32
3186      -
3187        name: pcnt
3188        type: binary
3189        struct: tc-matchall-pcnt
3190      -
3191        name: pad
3192        type: pad
3193  -
3194    name: etf-attrs
3195    name-prefix: tca-etf-
3196    attributes:
3197      -
3198        name: parms
3199        type: binary
3200        struct: tc-etf-qopt
3201  -
3202    name: ets-attrs
3203    name-prefix: tca-ets-
3204    attributes:
3205      -
3206        name: nbands
3207        type: u8
3208      -
3209        name: nstrict
3210        type: u8
3211      -
3212        name: quanta
3213        type: nest
3214        nested-attributes: ets-attrs
3215      -
3216        name: quanta-band
3217        type: u32
3218        multi-attr: true
3219      -
3220        name: priomap
3221        type: nest
3222        nested-attributes: ets-attrs
3223      -
3224        name: priomap-band
3225        type: u8
3226        multi-attr: true
3227  -
3228    name: fq-attrs
3229    name-prefix: tca-fq-
3230    attributes:
3231      -
3232        name: plimit
3233        type: u32
3234        doc: Limit of total number of packets in queue
3235      -
3236        name: flow-plimit
3237        type: u32
3238        doc: Limit of packets per flow
3239      -
3240        name: quantum
3241        type: u32
3242        doc: RR quantum
3243      -
3244        name: initial-quantum
3245        type: u32
3246        doc: RR quantum for new flow
3247      -
3248        name: rate-enable
3249        type: u32
3250        doc: Enable / disable rate limiting
3251      -
3252        name: flow-default-rate
3253        type: u32
3254        doc: Obsolete, do not use
3255      -
3256        name: flow-max-rate
3257        type: u32
3258        doc: Per flow max rate
3259      -
3260        name: buckets-log
3261        type: u32
3262        doc: log2(number of buckets)
3263      -
3264        name: flow-refill-delay
3265        type: u32
3266        doc: Flow credit refill delay in usec
3267      -
3268        name: orphan-mask
3269        type: u32
3270        doc: Mask applied to orphaned skb hashes
3271      -
3272        name: low-rate-threshold
3273        type: u32
3274        doc: Per packet delay under this rate
3275      -
3276        name: ce-threshold
3277        type: u32
3278        doc: DCTCP-like CE marking threshold
3279      -
3280        name: timer-slack
3281        type: u32
3282      -
3283        name: horizon
3284        type: u32
3285        doc: Time horizon in usec
3286      -
3287        name: horizon-drop
3288        type: u8
3289        doc: Drop packets beyond horizon, or cap their EDT
3290      -
3291        name: priomap
3292        type: binary
3293        struct: tc-prio-qopt
3294      -
3295        name: weights
3296        type: binary
3297        sub-type: s32
3298        doc: Weights for each band
3299  -
3300    name: fq-codel-attrs
3301    name-prefix: tca-fq-codel-
3302    attributes:
3303      -
3304        name: target
3305        type: u32
3306      -
3307        name: limit
3308        type: u32
3309      -
3310        name: interval
3311        type: u32
3312      -
3313        name: ecn
3314        type: u32
3315      -
3316        name: flows
3317        type: u32
3318      -
3319        name: quantum
3320        type: u32
3321      -
3322        name: ce-threshold
3323        type: u32
3324      -
3325        name: drop-batch-size
3326        type: u32
3327      -
3328        name: memory-limit
3329        type: u32
3330      -
3331        name: ce-threshold-selector
3332        type: u8
3333      -
3334        name: ce-threshold-mask
3335        type: u8
3336  -
3337    name: fq-pie-attrs
3338    name-prefix: tca-fq-pie-
3339    attributes:
3340      -
3341        name: limit
3342        type: u32
3343      -
3344        name: flows
3345        type: u32
3346      -
3347        name: target
3348        type: u32
3349      -
3350        name: tupdate
3351        type: u32
3352      -
3353        name: alpha
3354        type: u32
3355      -
3356        name: beta
3357        type: u32
3358      -
3359        name: quantum
3360        type: u32
3361      -
3362        name: memory-limit
3363        type: u32
3364      -
3365        name: ecn-prob
3366        type: u32
3367      -
3368        name: ecn
3369        type: u32
3370      -
3371        name: bytemode
3372        type: u32
3373      -
3374        name: dq-rate-estimator
3375        type: u32
3376  -
3377    name: netem-attrs
3378    name-prefix: tca-netem-
3379    attributes:
3380      -
3381        name: corr
3382        type: binary
3383        struct: tc-netem-corr
3384      -
3385        name: delay-dist
3386        type: binary
3387        sub-type: s16
3388      -
3389        name: reorder
3390        type: binary
3391        struct: tc-netem-reorder
3392      -
3393        name: corrupt
3394        type: binary
3395        struct: tc-netem-corrupt
3396      -
3397        name: loss
3398        type: nest
3399        nested-attributes: netem-loss-attrs
3400      -
3401        name: rate
3402        type: binary
3403        struct: tc-netem-rate
3404      -
3405        name: ecn
3406        type: u32
3407      -
3408        name: rate64
3409        type: u64
3410      -
3411        name: pad
3412        type: u32
3413      -
3414        name: latency64
3415        type: s64
3416      -
3417        name: jitter64
3418        type: s64
3419      -
3420        name: slot
3421        type: binary
3422        struct: tc-netem-slot
3423      -
3424        name: slot-dist
3425        type: binary
3426        sub-type: s16
3427      -
3428        name: prng-seed
3429        type: u64
3430  -
3431    name: netem-loss-attrs
3432    name-prefix: netem-loss-
3433    attributes:
3434      -
3435        name: gi
3436        type: binary
3437        doc: General Intuitive - 4 state model
3438        struct: tc-netem-gimodel
3439      -
3440        name: ge
3441        type: binary
3442        doc: Gilbert Elliot models
3443        struct: tc-netem-gemodel
3444  -
3445    name: pie-attrs
3446    name-prefix: tca-pie-
3447    attributes:
3448      -
3449        name: target
3450        type: u32
3451      -
3452        name: limit
3453        type: u32
3454      -
3455        name: tupdate
3456        type: u32
3457      -
3458        name: alpha
3459        type: u32
3460      -
3461        name: beta
3462        type: u32
3463      -
3464        name: ecn
3465        type: u32
3466      -
3467        name: bytemode
3468        type: u32
3469      -
3470        name: dq-rate-estimator
3471        type: u32
3472  -
3473    name: police-attrs
3474    name-prefix: tca-police-
3475    attributes:
3476      -
3477        name: tbf
3478        type: binary
3479        struct: tc-police
3480      -
3481        name: rate
3482        type: binary  # TODO
3483      -
3484        name: peakrate
3485        type: binary  # TODO
3486      -
3487        name: avrate
3488        type: u32
3489      -
3490        name: result
3491        type: u32
3492      -
3493        name: tm
3494        type: binary
3495        struct: tcf-t
3496      -
3497        name: pad
3498        type: pad
3499      -
3500        name: rate64
3501        type: u64
3502      -
3503        name: peakrate64
3504        type: u64
3505      -
3506        name: pktrate64
3507        type: u64
3508      -
3509        name: pktburst64
3510        type: u64
3511  -
3512    name: qfq-attrs
3513    name-prefix: tca-qfq-
3514    attributes:
3515      -
3516        name: weight
3517        type: u32
3518      -
3519        name: lmax
3520        type: u32
3521  -
3522    name: red-attrs
3523    name-prefix: tca-red-
3524    attributes:
3525      -
3526        name: parms
3527        type: binary
3528        struct: tc-red-qopt
3529      -
3530        name: stab
3531        type: binary
3532      -
3533        name: max-p
3534        type: u32
3535      -
3536        name: flags
3537        type: bitfield32
3538      -
3539        name: early-drop-block
3540        type: u32
3541      -
3542        name: mark-block
3543        type: u32
3544  -
3545    name: route-attrs
3546    name-prefix: tca-route4-
3547    attributes:
3548      -
3549        name: classid
3550        type: u32
3551      -
3552        name: to
3553        type: u32
3554      -
3555        name: from
3556        type: u32
3557      -
3558        name: iif
3559        type: u32
3560      -
3561        name: police
3562        type: nest
3563        nested-attributes: police-attrs
3564      -
3565        name: act
3566        type: indexed-array
3567        sub-type: nest
3568        nested-attributes: act-attrs
3569  -
3570    name: taprio-attrs
3571    name-prefix: tca-taprio-attr-
3572    attributes:
3573      -
3574        name: priomap
3575        type: binary
3576        struct: tc-mqprio-qopt
3577      -
3578        name: sched-entry-list
3579        type: nest
3580        nested-attributes: taprio-sched-entry-list
3581      -
3582        name: sched-base-time
3583        type: s64
3584      -
3585        name: sched-single-entry
3586        type: nest
3587        nested-attributes: taprio-sched-entry
3588      -
3589        name: sched-clockid
3590        type: s32
3591      -
3592        name: pad
3593        type: pad
3594      -
3595        name: admin-sched
3596        type: binary
3597      -
3598        name: sched-cycle-time
3599        type: s64
3600      -
3601        name: sched-cycle-time-extension
3602        type: s64
3603      -
3604        name: flags
3605        type: u32
3606      -
3607        name: txtime-delay
3608        type: u32
3609      -
3610        name: tc-entry
3611        type: nest
3612        nested-attributes: taprio-tc-entry-attrs
3613  -
3614    name: taprio-sched-entry-list
3615    name-prefix: tca-taprio-sched-
3616    attributes:
3617      -
3618        name: entry
3619        type: nest
3620        nested-attributes: taprio-sched-entry
3621        multi-attr: true
3622  -
3623    name: taprio-sched-entry
3624    name-prefix: tca-taprio-sched-entry-
3625    attributes:
3626      -
3627        name: index
3628        type: u32
3629      -
3630        name: cmd
3631        type: u8
3632      -
3633        name: gate-mask
3634        type: u32
3635      -
3636        name: interval
3637        type: u32
3638  -
3639    name: taprio-tc-entry-attrs
3640    name-prefix: tca-taprio-tc-entry-
3641    attributes:
3642      -
3643        name: index
3644        type: u32
3645      -
3646        name: max-sdu
3647        type: u32
3648      -
3649        name: fp
3650        type: u32
3651  -
3652    name: tbf-attrs
3653    name-prefix: tca-tbf-
3654    attributes:
3655      -
3656        name: parms
3657        type: binary
3658        struct: tc-tbf-qopt
3659      -
3660        name: rtab
3661        type: binary
3662      -
3663        name: ptab
3664        type: binary
3665      -
3666        name: rate64
3667        type: u64
3668      -
3669        name: prate64
3670        type: u64
3671      -
3672        name: burst
3673        type: u32
3674      -
3675        name: pburst
3676        type: u32
3677      -
3678        name: pad
3679        type: pad
3680  -
3681    name: act-sample-attrs
3682    name-prefix: tca-sample-
3683    header: linux/tc_act/tc_sample.h
3684    attributes:
3685      -
3686        name: tm
3687        type: binary
3688        struct: tcf-t
3689      -
3690        name: parms
3691        type: binary
3692        struct: tc-gact
3693      -
3694        name: rate
3695        type: u32
3696      -
3697        name: trunc-size
3698        type: u32
3699      -
3700        name: psample-group
3701        type: u32
3702      -
3703        name: pad
3704        type: pad
3705  -
3706    name: act-gact-attrs
3707    name-prefix: tca-gact-
3708    header: linux/tc_act/tc_gact.h
3709    attributes:
3710      -
3711        name: tm
3712        type: binary
3713        struct: tcf-t
3714      -
3715        name: parms
3716        type: binary
3717        struct: tc-gact
3718      -
3719        name: prob
3720        type: binary
3721        struct: tc-gact-p
3722      -
3723        name: pad
3724        type: pad
3725  -
3726    name: tca-stab-attrs
3727    name-prefix: tca-stab-
3728    attributes:
3729      -
3730        name: base
3731        type: binary
3732        struct: tc-sizespec
3733      -
3734        name: data
3735        type: binary
3736  -
3737    name: tca-stats-attrs
3738    name-prefix: tca-stats-
3739    header: linux/gen_stats.h
3740    attributes:
3741      -
3742        name: basic
3743        type: binary
3744        struct: gnet-stats-basic
3745      -
3746        name: rate-est
3747        type: binary
3748        struct: gnet-stats-rate-est
3749      -
3750        name: queue
3751        type: binary
3752        struct: gnet-stats-queue
3753      -
3754        name: app
3755        type: sub-message
3756        sub-message: tca-stats-app-msg
3757        selector: kind
3758      -
3759        name: rate-est64
3760        type: binary
3761        struct: gnet-stats-rate-est64
3762      -
3763        name: pad
3764        type: pad
3765      -
3766        name: basic-hw
3767        type: binary
3768        struct: gnet-stats-basic
3769      -
3770        name: pkt64
3771        type: u64
3772  -
3773    name: u32-attrs
3774    name-prefix: tca-u32-
3775    attributes:
3776      -
3777        name: classid
3778        type: u32
3779      -
3780        name: hash
3781        type: u32
3782      -
3783        name: link
3784        type: u32
3785      -
3786        name: divisor
3787        type: u32
3788      -
3789        name: sel
3790        type: binary
3791        struct: tc-u32-sel
3792      -
3793        name: police
3794        type: nest
3795        nested-attributes: police-attrs
3796      -
3797        name: act
3798        type: indexed-array
3799        sub-type: nest
3800        nested-attributes: act-attrs
3801      -
3802        name: indev
3803        type: string
3804      -
3805        name: pcnt
3806        type: binary
3807        struct: tc-u32-pcnt
3808      -
3809        name: mark
3810        type: binary
3811        struct: tc-u32-mark
3812      -
3813        name: flags
3814        type: u32
3815      -
3816        name: pad
3817        type: pad
3818
3819sub-messages:
3820  -
3821    name: options-msg
3822    formats:
3823      -
3824        value: basic
3825        attribute-set: basic-attrs
3826      -
3827        value: bpf
3828        attribute-set: bpf-attrs
3829      -
3830        value: bfifo
3831        fixed-header: tc-fifo-qopt
3832      -
3833        value: cake
3834        attribute-set: cake-attrs
3835      -
3836        value: cbs
3837        attribute-set: cbs-attrs
3838      -
3839        value: cgroup
3840        attribute-set: cgroup-attrs
3841      -
3842        value: choke
3843        attribute-set: choke-attrs
3844      -
3845        value: clsact  # no content
3846      -
3847        value: codel
3848        attribute-set: codel-attrs
3849      -
3850        value: drr
3851        attribute-set: drr-attrs
3852      -
3853        value: dualpi2
3854        attribute-set: dualpi2-attrs
3855      -
3856        value: etf
3857        attribute-set: etf-attrs
3858      -
3859        value: ets
3860        attribute-set: ets-attrs
3861      -
3862        value: flow
3863        attribute-set: flow-attrs
3864      -
3865        value: flower
3866        attribute-set: flower-attrs
3867      -
3868        value: fq
3869        attribute-set: fq-attrs
3870      -
3871        value: fq_codel
3872        attribute-set: fq-codel-attrs
3873      -
3874        value: fq_pie
3875        attribute-set: fq-pie-attrs
3876      -
3877        value: fw
3878        attribute-set: fw-attrs
3879      -
3880        value: gred
3881        attribute-set: gred-attrs
3882      -
3883        value: hfsc
3884        fixed-header: tc-hfsc-qopt
3885      -
3886        value: hhf
3887        attribute-set: hhf-attrs
3888      -
3889        value: htb
3890        attribute-set: htb-attrs
3891      -
3892        value: ingress  # no content
3893      -
3894        value: matchall
3895        attribute-set: matchall-attrs
3896      -
3897        value: mq  # no content
3898      -
3899        value: mqprio
3900        fixed-header: tc-mqprio-qopt
3901      -
3902        value: multiq
3903        fixed-header: tc-multiq-qopt
3904      -
3905        value: netem
3906        fixed-header: tc-netem-qopt
3907        attribute-set: netem-attrs
3908      -
3909        value: pfifo
3910        fixed-header: tc-fifo-qopt
3911      -
3912        value: pfifo_fast
3913        fixed-header: tc-prio-qopt
3914      -
3915        value: pfifo_head_drop
3916        fixed-header: tc-fifo-qopt
3917      -
3918        value: pie
3919        attribute-set: pie-attrs
3920      -
3921        value: plug
3922        fixed-header: tc-plug-qopt
3923      -
3924        value: prio
3925        fixed-header: tc-prio-qopt
3926      -
3927        value: qfq
3928        attribute-set: qfq-attrs
3929      -
3930        value: red
3931        attribute-set: red-attrs
3932      -
3933        value: route
3934        attribute-set: route-attrs
3935      -
3936        value: sfb
3937        fixed-header: tc-sfb-qopt
3938      -
3939        value: sfq
3940        fixed-header: tc-sfq-qopt-v1
3941      -
3942        value: taprio
3943        attribute-set: taprio-attrs
3944      -
3945        value: tbf
3946        attribute-set: tbf-attrs
3947      -
3948        value: u32
3949        attribute-set: u32-attrs
3950  -
3951    name: act-options-msg
3952    formats:
3953      -
3954        value: bpf
3955        attribute-set: act-bpf-attrs
3956      -
3957        value: connmark
3958        attribute-set: act-connmark-attrs
3959      -
3960        value: csum
3961        attribute-set: act-csum-attrs
3962      -
3963        value: ct
3964        attribute-set: act-ct-attrs
3965      -
3966        value: ctinfo
3967        attribute-set: act-ctinfo-attrs
3968      -
3969        value: gact
3970        attribute-set: act-gact-attrs
3971      -
3972        value: gate
3973        attribute-set: act-gate-attrs
3974      -
3975        value: ife
3976        attribute-set: act-ife-attrs
3977      -
3978        value: mirred
3979        attribute-set: act-mirred-attrs
3980      -
3981        value: mpls
3982        attribute-set: act-mpls-attrs
3983      -
3984        value: nat
3985        attribute-set: act-nat-attrs
3986      -
3987        value: pedit
3988        attribute-set: act-pedit-attrs
3989      -
3990        value: police
3991        attribute-set: police-attrs
3992      -
3993        value: sample
3994        attribute-set: act-sample-attrs
3995      -
3996        value: simple
3997        attribute-set: act-simple-attrs
3998      -
3999        value: skbedit
4000        attribute-set: act-skbedit-attrs
4001      -
4002        value: skbmod
4003        attribute-set: act-skbmod-attrs
4004      -
4005        value: tunnel_key
4006        attribute-set: act-tunnel-key-attrs
4007      -
4008        value: vlan
4009        attribute-set: act-vlan-attrs
4010  -
4011    name: tca-stats-app-msg
4012    formats:
4013      -
4014        value: cake
4015        attribute-set: cake-stats-attrs
4016      -
4017        value: choke
4018        fixed-header: tc-choke-xstats
4019      -
4020        value: codel
4021        fixed-header: tc-codel-xstats
4022      -
4023        value: dualpi2
4024        fixed-header: tc-dualpi2-xstats
4025      -
4026        value: fq
4027        fixed-header: tc-fq-qd-stats
4028      -
4029        value: fq_codel
4030        fixed-header: tc-fq-codel-xstats
4031      -
4032        value: fq_pie
4033        fixed-header: tc-fq-pie-xstats
4034      -
4035        value: hhf
4036        fixed-header: tc-hhf-xstats
4037      -
4038        value: pie
4039        fixed-header: tc-pie-xstats
4040      -
4041        value: red
4042        fixed-header: tc-red-xstats
4043      -
4044        value: sfb
4045        fixed-header: tc-sfb-xstats
4046      -
4047        value: sfq
4048        fixed-header: tc-sfq-xstats
4049
4050operations:
4051  enum-model: directional
4052  name-prefix: rtm-
4053  list:
4054    -
4055      name: newqdisc
4056      doc: Create new tc qdisc.
4057      attribute-set: attrs
4058      fixed-header: tcmsg
4059      do:
4060        request:
4061          value: 36
4062          attributes: &create-params
4063            - kind
4064            - options
4065            - rate
4066            - chain
4067            - ingress-block
4068            - egress-block
4069    -
4070      name: delqdisc
4071      doc: Delete existing tc qdisc.
4072      attribute-set: attrs
4073      fixed-header: tcmsg
4074      do:
4075        request:
4076          value: 37
4077    -
4078      name: getqdisc
4079      doc: Get / dump tc qdisc information.
4080      attribute-set: attrs
4081      fixed-header: tcmsg
4082      do: &getqdisc-do
4083        request:
4084          value: 38
4085          attributes:
4086            - dump-invisible
4087        reply:
4088          value: 36
4089          attributes: &tc-all
4090            - kind
4091            - options
4092            - stats
4093            - xstats
4094            - rate
4095            - fcnt
4096            - stats2
4097            - stab
4098            - chain
4099            - ingress-block
4100            - egress-block
4101      dump: *getqdisc-do
4102    -
4103      name: newtclass
4104      doc: Get / dump tc traffic class information.
4105      attribute-set: attrs
4106      fixed-header: tcmsg
4107      do:
4108        request:
4109          value: 40
4110          attributes: *create-params
4111    -
4112      name: deltclass
4113      doc: Get / dump tc traffic class information.
4114      attribute-set: attrs
4115      fixed-header: tcmsg
4116      do:
4117        request:
4118          value: 41
4119    -
4120      name: gettclass
4121      doc: Get / dump tc traffic class information.
4122      attribute-set: attrs
4123      fixed-header: tcmsg
4124      do:
4125        request:
4126          value: 42
4127        reply:
4128          value: 40
4129          attributes: *tc-all
4130    -
4131      name: newtfilter
4132      doc: Get / dump tc filter information.
4133      attribute-set: attrs
4134      fixed-header: tcmsg
4135      do:
4136        request:
4137          value: 44
4138          attributes: *create-params
4139    -
4140      name: deltfilter
4141      doc: Get / dump tc filter information.
4142      attribute-set: attrs
4143      fixed-header: tcmsg
4144      do:
4145        request:
4146          value: 45
4147          attributes:
4148            - chain
4149            - kind
4150    -
4151      name: gettfilter
4152      doc: Get / dump tc filter information.
4153      attribute-set: attrs
4154      fixed-header: tcmsg
4155      do:
4156        request:
4157          value: 46
4158          attributes:
4159            - chain
4160            - kind
4161        reply:
4162          value: 44
4163          attributes: *tc-all
4164      dump:
4165        request:
4166          value: 46
4167          attributes:
4168            - chain
4169            - dump-flags
4170        reply:
4171          value: 44
4172          attributes: *tc-all
4173    -
4174      name: newchain
4175      doc: Get / dump tc chain information.
4176      attribute-set: attrs
4177      fixed-header: tcmsg
4178      do:
4179        request:
4180          value: 100
4181          attributes: *create-params
4182    -
4183      name: delchain
4184      doc: Get / dump tc chain information.
4185      attribute-set: attrs
4186      fixed-header: tcmsg
4187      do:
4188        request:
4189          value: 101
4190          attributes:
4191            - chain
4192    -
4193      name: getchain
4194      doc: Get / dump tc chain information.
4195      attribute-set: attrs
4196      fixed-header: tcmsg
4197      do:
4198        request:
4199          value: 102
4200          attributes:
4201            - chain
4202        reply:
4203          value: 100
4204          attributes: *tc-all
4205
4206mcast-groups:
4207  list:
4208    -
4209      name: rtnlgrp-tc
4210      value: 4
4211