# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) name: tc protocol: netlink-raw protonum: 0 doc: Netlink raw family for tc qdisc, chain, class and filter configuration over rtnetlink. definitions: - name: tcmsg type: struct members: - name: family type: u8 - name: pad type: pad len: 3 - name: ifindex type: s32 - name: handle type: u32 - name: parent type: u32 - name: info type: u32 - name: tc-cls-flags type: flags entries: - skip-hw - skip-sw - in-hw - not-in-nw - verbose - name: tc-stats type: struct members: - name: bytes type: u64 doc: Number of enqueued bytes - name: packets type: u32 doc: Number of enqueued packets - name: drops type: u32 doc: Packets dropped because of lack of resources - name: overlimits type: u32 doc: | Number of throttle events when this flow goes out of allocated bandwidth - name: bps type: u32 doc: Current flow byte rate - name: pps type: u32 doc: Current flow packet rate - name: qlen type: u32 - name: backlog type: u32 - name: tc-cbs-qopt type: struct members: - name: offload type: u8 - name: pad type: pad len: 3 - name: hicredit type: s32 - name: locredit type: s32 - name: idleslope type: s32 - name: sendslope type: s32 - name: tc-etf-qopt type: struct members: - name: delta type: s32 - name: clockid type: s32 - name: flags type: s32 - name: tc-fifo-qopt type: struct members: - name: limit type: u32 doc: Queue length; bytes for bfifo, packets for pfifo - name: tc-htb-opt type: struct members: - name: rate type: binary struct: tc-ratespec - name: ceil type: binary struct: tc-ratespec - name: buffer type: u32 - name: cbuffer type: u32 - name: quantum type: u32 - name: level type: u32 - name: prio type: u32 - name: tc-htb-glob type: struct members: - name: version type: u32 - name: rate2quantum type: u32 doc: bps->quantum divisor - name: defcls type: u32 doc: Default class number - name: debug type: u32 doc: Debug flags - name: direct-pkts type: u32 doc: Count of non shaped packets - name: tc-gred-qopt type: struct members: - name: limit type: u32 doc: HARD maximal queue length in bytes - name: qth-min type: u32 doc: Min average length threshold in bytes - name: qth-max type: u32 doc: Max average length threshold in bytes - name: DP type: u32 doc: Up to 2^32 DPs - name: backlog type: u32 - name: qave type: u32 - name: forced type: u32 - name: early type: u32 - name: other type: u32 - name: pdrop type: u32 - name: Wlog type: u8 doc: log(W) - name: Plog type: u8 doc: log(P_max / (qth-max - qth-min)) - name: Scell_log type: u8 doc: cell size for idle damping - name: prio type: u8 doc: Priority of this VQ - name: packets type: u32 - name: bytesin type: u32 - name: tc-gred-sopt type: struct members: - name: DPs type: u32 - name: def_DP type: u32 - name: grio type: u8 - name: flags type: u8 - name: pad type: pad len: 2 - name: tc-hfsc-qopt type: struct members: - name: defcls type: u16 - name: tc-mqprio-qopt type: struct members: - name: num-tc type: u8 - name: prio-tc-map type: binary len: 16 - name: hw type: u8 - name: count type: binary len: 32 - name: offset type: binary len: 32 - name: tc-multiq-qopt type: struct members: - name: bands type: u16 doc: Number of bands - name: max-bands type: u16 doc: Maximum number of queues - name: tc-netem-qopt type: struct members: - name: latency type: u32 doc: Added delay in microseconds - name: limit type: u32 doc: Fifo limit in packets - name: loss type: u32 doc: Random packet loss (0=none, ~0=100%) - name: gap type: u32 doc: Re-ordering gap (0 for none) - name: duplicate type: u32 doc: Random packet duplication (0=none, ~0=100%) - name: jitter type: u32 doc: Random jitter latency in microseconds - name: tc-netem-gimodel doc: State transition probabilities for 4 state model type: struct members: - name: p13 type: u32 - name: p31 type: u32 - name: p32 type: u32 - name: p14 type: u32 - name: p23 type: u32 - name: tc-netem-gemodel doc: Gilbert-Elliot models type: struct members: - name: p type: u32 - name: r type: u32 - name: h type: u32 - name: k1 type: u32 - name: tc-netem-corr type: struct members: - name: delay-corr type: u32 doc: Delay correlation - name: loss-corr type: u32 doc: Packet loss correlation - name: dup-corr type: u32 doc: Duplicate correlation - name: tc-netem-reorder type: struct members: - name: probability type: u32 - name: correlation type: u32 - name: tc-netem-corrupt type: struct members: - name: probability type: u32 - name: correlation type: u32 - name: tc-netem-rate type: struct members: - name: rate type: u32 - name: packet-overhead type: s32 - name: cell-size type: u32 - name: cell-overhead type: s32 - name: tc-netem-slot type: struct members: - name: min-delay type: s64 - name: max-delay type: s64 - name: max-packets type: s32 - name: max-bytes type: s32 - name: dist-delay type: s64 - name: dist-jitter type: s64 - name: tc-plug-qopt type: struct members: - name: action type: s32 - name: limit type: u32 - name: tc-prio-qopt type: struct members: - name: bands type: u32 doc: Number of bands - name: priomap type: binary len: 16 doc: Map of logical priority -> PRIO band - name: tc-red-qopt type: struct members: - name: limit type: u32 doc: Hard queue length in packets - name: qth-min type: u32 doc: Min average threshold in packets - name: qth-max type: u32 doc: Max average threshold in packets - name: Wlog type: u8 doc: log(W) - name: Plog type: u8 doc: log(P_max / (qth-max - qth-min)) - name: Scell-log type: u8 doc: Cell size for idle damping - name: flags type: u8 - name: tc-sfb-qopt type: struct members: - name: rehash-interval type: u32 - name: warmup-time type: u32 - name: max type: u32 - name: bin-size type: u32 - name: increment type: u32 - name: decrement type: u32 - name: limit type: u32 - name: penalty-rate type: u32 - name: penalty-burst type: u32 - name: tc-sfq-qopt type: struct members: - name: quantum type: u32 doc: Bytes per round allocated to flow - name: perturb-period type: s32 doc: Period of hash perturbation - name: limit type: u32 doc: Maximal packets in queue - name: divisor type: u32 doc: Hash divisor - name: flows type: u32 doc: Maximal number of flows - name: tc-sfqred-stats type: struct members: - name: prob-drop type: u32 doc: Early drops, below max threshold - name: forced-drop type: u32 doc: Early drops, after max threshold - name: prob-mark type: u32 doc: Marked packets, below max threshold - name: forced-mark type: u32 doc: Marked packets, after max threshold - name: prob-mark-head type: u32 doc: Marked packets, below max threshold - name: forced-mark-head type: u32 doc: Marked packets, after max threshold - name: tc-sfq-qopt-v1 type: struct members: - name: v0 type: binary struct: tc-sfq-qopt - name: depth type: u32 doc: Maximum number of packets per flow - name: headdrop type: u32 - name: limit type: u32 doc: HARD maximal flow queue length in bytes - name: qth-min type: u32 doc: Min average length threshold in bytes - name: qth-max type: u32 doc: Max average length threshold in bytes - name: Wlog type: u8 doc: log(W) - name: Plog type: u8 doc: log(P_max / (qth-max - qth-min)) - name: Scell-log type: u8 doc: Cell size for idle damping - name: flags type: u8 - name: max-P type: u32 doc: probabilty, high resolution - name: stats type: binary struct: tc-sfqred-stats - name: tc-ratespec type: struct members: - name: cell-log type: u8 - name: linklayer type: u8 - name: overhead type: u8 - name: cell-align type: u8 - name: mpu type: u8 - name: rate type: u32 - name: tc-tbf-qopt type: struct members: - name: rate type: binary struct: tc-ratespec - name: peakrate type: binary struct: tc-ratespec - name: limit type: u32 - name: buffer type: u32 - name: mtu type: u32 - name: tc-sizespec type: struct members: - name: cell-log type: u8 - name: size-log type: u8 - name: cell-align type: s16 - name: overhead type: s32 - name: linklayer type: u32 - name: mpu type: u32 - name: mtu type: u32 - name: tsize type: u32 - name: gnet-estimator type: struct members: - name: interval type: s8 doc: Sampling period - name: ewma-log type: u8 doc: The log() of measurement window weight - name: tc-choke-xstats type: struct members: - name: early type: u32 doc: Early drops - name: pdrop type: u32 doc: Drops due to queue limits - name: other type: u32 doc: Drops due to drop() calls - name: marked type: u32 doc: Marked packets - name: matched type: u32 doc: Drops due to flow match - name: tc-codel-xstats type: struct members: - name: maxpacket type: u32 doc: Largest packet we've seen so far - name: count type: u32 doc: How many drops we've done since the last time we entered dropping state - name: lastcount type: u32 doc: Count at entry to dropping state - name: ldelay type: u32 doc: in-queue delay seen by most recently dequeued packet - name: drop-next type: s32 doc: Time to drop next packet - name: drop-overlimit type: u32 doc: Number of times max qdisc packet limit was hit - name: ecn-mark type: u32 doc: Number of packets we've ECN marked instead of dropped - name: dropping type: u32 doc: Are we in a dropping state? - name: ce-mark type: u32 doc: Number of CE marked packets because of ce-threshold - name: tc-fq-codel-xstats type: struct members: - name: type type: u32 - name: maxpacket type: u32 doc: Largest packet we've seen so far - name: drop-overlimit type: u32 doc: Number of times max qdisc packet limit was hit - name: ecn-mark type: u32 doc: Number of packets we ECN marked instead of being dropped - name: new-flow-count type: u32 doc: Number of times packets created a new flow - name: new-flows-len type: u32 doc: Count of flows in new list - name: old-flows-len type: u32 doc: Count of flows in old list - name: ce-mark type: u32 doc: Packets above ce-threshold - name: memory-usage type: u32 doc: Memory usage in bytes - name: drop-overmemory type: u32 - name: tc-fq-pie-xstats type: struct members: - name: packets-in type: u32 doc: Total number of packets enqueued - name: dropped type: u32 doc: Packets dropped due to fq_pie_action - name: overlimit type: u32 doc: Dropped due to lack of space in queue - name: overmemory type: u32 doc: Dropped due to lack of memory in queue - name: ecn-mark type: u32 doc: Packets marked with ecn - name: new-flow-count type: u32 doc: Count of new flows created by packets - name: new-flows-len type: u32 doc: Count of flows in new list - name: old-flows-len type: u32 doc: Count of flows in old list - name: memory-usage type: u32 doc: Total memory across all queues - name: tc-fq-qd-stats type: struct members: - name: gc-flows type: u64 - name: highprio-packets type: u64 doc: obsolete - name: tcp-retrans type: u64 doc: obsolete - name: throttled type: u64 - name: flows-plimit type: u64 - name: pkts-too-long type: u64 - name: allocation-errors type: u64 - name: time-next-delayed-flow type: s64 - name: flows type: u32 - name: inactive-flows type: u32 - name: throttled-flows type: u32 - name: unthrottle-latency-ns type: u32 - name: ce-mark type: u64 doc: Packets above ce-threshold - name: horizon-drops type: u64 - name: horizon-caps type: u64 - name: fastpath-packets type: u64 - name: band-drops type: binary len: 24 - name: band-pkt-count type: binary len: 12 - name: pad type: pad len: 4 - name: tc-hhf-xstats type: struct members: - name: drop-overlimit type: u32 doc: Number of times max qdisc packet limit was hit - name: hh-overlimit type: u32 doc: Number of times max heavy-hitters was hit - name: hh-tot-count type: u32 doc: Number of captured heavy-hitters so far - name: hh-cur-count type: u32 doc: Number of current heavy-hitters - name: tc-pie-xstats type: struct members: - name: prob type: u64 doc: Current probability - name: delay type: u32 doc: Current delay in ms - name: avg-dq-rate type: u32 doc: Current average dq rate in bits/pie-time - name: dq-rate-estimating type: u32 doc: Is avg-dq-rate being calculated? - name: packets-in type: u32 doc: Total number of packets enqueued - name: dropped type: u32 doc: Packets dropped due to pie action - name: overlimit type: u32 doc: Dropped due to lack of space in queue - name: maxq type: u32 doc: Maximum queue size - name: ecn-mark type: u32 doc: Packets marked with ecn - name: tc-red-xstats type: struct members: - name: early type: u32 doc: Early drops - name: pdrop type: u32 doc: Drops due to queue limits - name: other type: u32 doc: Drops due to drop() calls - name: marked type: u32 doc: Marked packets - name: tc-sfb-xstats type: struct members: - name: earlydrop type: u32 - name: penaltydrop type: u32 - name: bucketdrop type: u32 - name: queuedrop type: u32 - name: childdrop type: u32 doc: drops in child qdisc - name: marked type: u32 - name: maxqlen type: u32 - name: maxprob type: u32 - name: avgprob type: u32 - name: tc-sfq-xstats type: struct members: - name: allot type: s32 - name: gnet-stats-basic type: struct members: - name: bytes type: u64 - name: packets type: u32 - name: gnet-stats-rate-est type: struct members: - name: bps type: u32 - name: pps type: u32 - name: gnet-stats-rate-est64 type: struct members: - name: bps type: u64 - name: pps type: u64 - name: gnet-stats-queue type: struct members: - name: qlen type: u32 - name: backlog type: u32 - name: drops type: u32 - name: requeues type: u32 - name: overlimits type: u32 - name: tc-u32-key type: struct members: - name: mask type: u32 byte-order: big-endian - name: val type: u32 byte-order: big-endian - name: "off" type: s32 - name: offmask type: s32 - name: tc-u32-sel type: struct members: - name: flags type: u8 - name: offshift type: u8 - name: nkeys type: u8 - name: offmask type: u16 byte-order: big-endian - name: "off" type: u16 - name: offoff type: s16 - name: hoff type: s16 - name: hmask type: u32 byte-order: big-endian - name: keys type: binary struct: tc-u32-key # TODO: array - name: tc-u32-pcnt type: struct members: - name: rcnt type: u64 - name: rhit type: u64 - name: kcnts type: u64 # TODO: array - name: tcf-t type: struct members: - name: install type: u64 - name: lastuse type: u64 - name: expires type: u64 - name: firstuse type: u64 - name: tc-gen type: struct members: - name: index type: u32 - name: capab type: u32 - name: action type: s32 - name: refcnt type: s32 - name: bindcnt type: s32 - name: tc-gact-p type: struct members: - name: ptype type: u16 - name: pval type: u16 - name: paction type: s32 - name: tcf-ematch-tree-hdr type: struct members: - name: nmatches type: u16 - name: progid type: u16 - name: tc-basic-pcnt type: struct members: - name: rcnt type: u64 - name: rhit type: u64 - name: tc-matchall-pcnt type: struct members: - name: rhit type: u64 - name: tc-mpls type: struct members: - name: index type: u32 - name: capab type: u32 - name: action type: s32 - name: refcnt type: s32 - name: bindcnt type: s32 - name: m-action type: s32 - name: tc-police type: struct members: - name: index type: u32 - name: action type: s32 - name: limit type: u32 - name: burst type: u32 - name: mtu type: u32 - name: rate type: binary struct: tc-ratespec - name: peakrate type: binary struct: tc-ratespec - name: refcnt type: s32 - name: bindcnt type: s32 - name: capab type: u32 - name: tc-pedit-sel type: struct members: - name: index type: u32 - name: capab type: u32 - name: action type: s32 - name: refcnt type: s32 - name: bindcnt type: s32 - name: nkeys type: u8 - name: flags type: u8 - name: keys type: binary struct: tc-pedit-key # TODO: array - name: tc-pedit-key type: struct members: - name: mask type: u32 - name: val type: u32 - name: "off" type: u32 - name: at type: u32 - name: offmask type: u32 - name: shift type: u32 - name: tc-vlan type: struct members: - name: index type: u32 - name: capab type: u32 - name: action type: s32 - name: refcnt type: s32 - name: bindcnt type: s32 - name: v-action type: s32 attribute-sets: - name: tc-attrs attributes: - name: kind type: string - name: options type: sub-message sub-message: tc-options-msg selector: kind - name: stats type: binary struct: tc-stats - name: xstats type: sub-message sub-message: tca-stats-app-msg selector: kind - name: rate type: binary struct: gnet-estimator - name: fcnt type: u32 - name: stats2 type: nest nested-attributes: tca-stats-attrs - name: stab type: nest nested-attributes: tca-stab-attrs - name: pad type: pad - name: dump-invisible type: flag - name: chain type: u32 - name: hw-offload type: u8 - name: ingress-block type: u32 - name: egress-block type: u32 - name: dump-flags type: bitfield32 - name: ext-warn-msg type: string - name: tc-act-attrs attributes: - name: kind type: string - name: options type: sub-message sub-message: tc-act-options-msg selector: kind - name: index type: u32 - name: stats type: nest nested-attributes: tc-act-stats-attrs - name: pad type: pad - name: cookie type: binary - name: flags type: bitfield32 - name: hw-stats type: bitfield32 - name: used-hw-stats type: bitfield32 - name: in-hw-count type: u32 - name: tc-act-stats-attrs attributes: - name: basic type: binary struct: gnet-stats-basic - name: rate-est type: binary struct: gnet-stats-rate-est - name: queue type: binary struct: gnet-stats-queue - name: app type: binary - name: rate-est64 type: binary struct: gnet-stats-rate-est64 - name: pad type: pad - name: basic-hw type: binary struct: gnet-stats-basic - name: pkt64 type: u64 - name: tc-act-bpf-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: ops-len type: u16 - name: ops type: binary - name: fd type: u32 - name: name type: string - name: pad type: pad - name: tag type: binary - name: id type: binary - name: tc-act-connmark-attrs attributes: - name: parms type: binary - name: tm type: binary struct: tcf-t - name: pad type: pad - name: tc-act-csum-attrs attributes: - name: parms type: binary - name: tm type: binary struct: tcf-t - name: pad type: pad - name: tc-act-ct-attrs attributes: - name: parms type: binary - name: tm type: binary struct: tcf-t - name: action type: u16 - name: zone type: u16 - name: mark type: u32 - name: mark-mask type: u32 - name: labels type: binary - name: labels-mask type: binary - name: nat-ipv4-min type: u32 byte-order: big-endian - name: nat-ipv4-max type: u32 byte-order: big-endian - name: nat-ipv6-min type: binary - name: nat-ipv6-max type: binary - name: nat-port-min type: u16 byte-order: big-endian - name: nat-port-max type: u16 byte-order: big-endian - name: pad type: pad - name: helper-name type: string - name: helper-family type: u8 - name: helper-proto type: u8 - name: tc-act-ctinfo-attrs attributes: - name: pad type: pad - name: tm type: binary struct: tcf-t - name: act type: binary - name: zone type: u16 - name: parms-dscp-mask type: u32 - name: parms-dscp-statemask type: u32 - name: parms-cpmark-mask type: u32 - name: stats-dscp-set type: u64 - name: stats-dscp-error type: u64 - name: stats-cpmark-set type: u64 - name: tc-act-gate-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: pad type: pad - name: priority type: s32 - name: entry-list type: binary - name: base-time type: u64 - name: cycle-time type: u64 - name: cycle-time-ext type: u64 - name: flags type: u32 - name: clockid type: s32 - name: tc-act-ife-attrs attributes: - name: parms type: binary - name: tm type: binary struct: tcf-t - name: dmac type: binary - name: smac type: binary - name: type type: u16 - name: metalst type: binary - name: pad type: pad - name: tc-act-mirred-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: pad type: pad - name: blockid type: binary - name: tc-act-mpls-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary struct: tc-mpls - name: pad type: pad - name: proto type: u16 byte-order: big-endian - name: label type: u32 - name: tc type: u8 - name: ttl type: u8 - name: bos type: u8 - name: tc-act-nat-attrs attributes: - name: parms type: binary - name: tm type: binary struct: tcf-t - name: pad type: pad - name: tc-act-pedit-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary struct: tc-pedit-sel - name: pad type: pad - name: parms-ex type: binary - name: keys-ex type: binary - name: key-ex type: binary - name: tc-act-simple-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: data type: binary - name: pad type: pad - name: tc-act-skbedit-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: priority type: u32 - name: queue-mapping type: u16 - name: mark type: u32 - name: pad type: pad - name: ptype type: u16 - name: mask type: u32 - name: flags type: u64 - name: queue-mapping-max type: u16 - name: tc-act-skbmod-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: dmac type: binary - name: smac type: binary - name: etype type: binary - name: pad type: pad - name: tc-act-tunnel-key-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary - name: enc-ipv4-src type: u32 byte-order: big-endian - name: enc-ipv4-dst type: u32 byte-order: big-endian - name: enc-ipv6-src type: binary - name: enc-ipv6-dst type: binary - name: enc-key-id type: u64 byte-order: big-endian - name: pad type: pad - name: enc-dst-port type: u16 byte-order: big-endian - name: no-csum type: u8 - name: enc-opts type: binary - name: enc-tos type: u8 - name: enc-ttl type: u8 - name: no-frag type: flag - name: tc-act-vlan-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary struct: tc-vlan - name: push-vlan-id type: u16 - name: push-vlan-protocol type: u16 - name: pad type: pad - name: push-vlan-priority type: u8 - name: push-eth-dst type: binary - name: push-eth-src type: binary - name: tc-basic-attrs attributes: - name: classid type: u32 - name: ematches type: nest nested-attributes: tc-ematch-attrs - name: act type: array-nest nested-attributes: tc-act-attrs - name: police type: nest nested-attributes: tc-police-attrs - name: pcnt type: binary struct: tc-basic-pcnt - name: pad type: pad - name: tc-bpf-attrs attributes: - name: act type: nest nested-attributes: tc-act-attrs - name: police type: nest nested-attributes: tc-police-attrs - name: classid type: u32 - name: ops-len type: u16 - name: ops type: binary - name: fd type: u32 - name: name type: string - name: flags type: u32 - name: flags-gen type: u32 - name: tag type: binary - name: id type: u32 - name: tc-cake-attrs attributes: - name: pad type: pad - name: base-rate64 type: u64 - name: diffserv-mode type: u32 - name: atm type: u32 - name: flow-mode type: u32 - name: overhead type: u32 - name: rtt type: u32 - name: target type: u32 - name: autorate type: u32 - name: memory type: u32 - name: nat type: u32 - name: raw type: u32 - name: wash type: u32 - name: mpu type: u32 - name: ingress type: u32 - name: ack-filter type: u32 - name: split-gso type: u32 - name: fwmark type: u32 - name: tc-cake-stats-attrs attributes: - name: pad type: pad - name: capacity-estimate64 type: u64 - name: memory-limit type: u32 - name: memory-used type: u32 - name: avg-netoff type: u32 - name: min-netlen type: u32 - name: max-netlen type: u32 - name: min-adjlen type: u32 - name: max-adjlen type: u32 - name: tin-stats type: array-nest nested-attributes: tc-cake-tin-stats-attrs - name: deficit type: s32 - name: cobalt-count type: u32 - name: dropping type: u32 - name: drop-next-us type: s32 - name: p-drop type: u32 - name: blue-timer-us type: s32 - name: tc-cake-tin-stats-attrs attributes: - name: pad type: pad - name: sent-packets type: u32 - name: sent-bytes64 type: u64 - name: dropped-packets type: u32 - name: dropped-bytes64 type: u64 - name: acks-dropped-packets type: u32 - name: acks-dropped-bytes64 type: u64 - name: ecn-marked-packets type: u32 - name: ecn-marked-bytes64 type: u64 - name: backlog-packets type: u32 - name: backlog-bytes type: u32 - name: threshold-rate64 type: u64 - name: target-us type: u32 - name: interval-us type: u32 - name: way-indirect-hits type: u32 - name: way-misses type: u32 - name: way-collisions type: u32 - name: peak-delay-us type: u32 - name: avg-delay-us type: u32 - name: base-delay-us type: u32 - name: sparse-flows type: u32 - name: bulk-flows type: u32 - name: unresponsive-flows type: u32 - name: max-skblen type: u32 - name: flow-quantum type: u32 - name: tc-cbs-attrs attributes: - name: parms type: binary struct: tc-cbs-qopt - name: tc-cgroup-attrs attributes: - name: act type: nest nested-attributes: tc-act-attrs - name: police type: nest nested-attributes: tc-police-attrs - name: ematches type: binary - name: tc-choke-attrs attributes: - name: parms type: binary struct: tc-red-qopt - name: stab type: binary checks: min-len: 256 max-len: 256 - name: max-p type: u32 - name: tc-codel-attrs attributes: - name: target type: u32 - name: limit type: u32 - name: interval type: u32 - name: ecn type: u32 - name: ce-threshold type: u32 - name: tc-drr-attrs attributes: - name: quantum type: u32 - name: tc-ematch-attrs attributes: - name: tree-hdr type: binary struct: tcf-ematch-tree-hdr - name: tree-list type: binary - name: tc-flow-attrs attributes: - name: keys type: u32 - name: mode type: u32 - name: baseclass type: u32 - name: rshift type: u32 - name: addend type: u32 - name: mask type: u32 - name: xor type: u32 - name: divisor type: u32 - name: act type: binary - name: police type: nest nested-attributes: tc-police-attrs - name: ematches type: binary - name: perturb type: u32 - name: tc-flower-attrs attributes: - name: classid type: u32 - name: indev type: string - name: act type: array-nest nested-attributes: tc-act-attrs - name: key-eth-dst type: binary display-hint: mac - name: key-eth-dst-mask type: binary display-hint: mac - name: key-eth-src type: binary display-hint: mac - name: key-eth-src-mask type: binary display-hint: mac - name: key-eth-type type: u16 byte-order: big-endian - name: key-ip-proto type: u8 - name: key-ipv4-src type: u32 byte-order: big-endian display-hint: ipv4 - name: key-ipv4-src-mask type: u32 byte-order: big-endian display-hint: ipv4 - name: key-ipv4-dst type: u32 byte-order: big-endian display-hint: ipv4 - name: key-ipv4-dst-mask type: u32 byte-order: big-endian display-hint: ipv4 - name: key-ipv6-src type: binary display-hint: ipv6 - name: key-ipv6-src-mask type: binary display-hint: ipv6 - name: key-ipv6-dst type: binary display-hint: ipv6 - name: key-ipv6-dst-mask type: binary display-hint: ipv6 - name: key-tcp-src type: u16 byte-order: big-endian - name: key-tcp-dst type: u16 byte-order: big-endian - name: key-udp-src type: u16 byte-order: big-endian - name: key-udp-dst type: u16 byte-order: big-endian - name: flags type: u32 enum: tc-cls-flags enum-as-flags: true - name: key-vlan-id type: u16 byte-order: big-endian - name: key-vlan-prio type: u8 - name: key-vlan-eth-type type: u16 byte-order: big-endian - name: key-enc-key-id type: u32 byte-order: big-endian - name: key-enc-ipv4-src type: u32 byte-order: big-endian display-hint: ipv4 - name: key-enc-ipv4-src-mask type: u32 byte-order: big-endian display-hint: ipv4 - name: key-enc-ipv4-dst type: u32 byte-order: big-endian display-hint: ipv4 - name: key-enc-ipv4-dst-mask type: u32 byte-order: big-endian display-hint: ipv4 - name: key-enc-ipv6-src type: binary display-hint: ipv6 - name: key-enc-ipv6-src-mask type: binary display-hint: ipv6 - name: key-enc-ipv6-dst type: binary display-hint: ipv6 - name: key-enc-ipv6-dst-mask type: binary display-hint: ipv6 - name: key-tcp-src-mask type: u16 byte-order: big-endian - name: key-tcp-dst-mask type: u16 byte-order: big-endian - name: key-udp-src-mask type: u16 byte-order: big-endian - name: key-udp-dst-mask type: u16 byte-order: big-endian - name: key-sctp-src-mask type: u16 byte-order: big-endian - name: key-sctp-dst-mask type: u16 byte-order: big-endian - name: key-sctp-src type: u16 byte-order: big-endian - name: key-sctp-dst type: u16 byte-order: big-endian - name: key-enc-udp-src-port type: u16 byte-order: big-endian - name: key-enc-udp-src-port-mask type: u16 byte-order: big-endian - name: key-enc-udp-dst-port type: u16 byte-order: big-endian - name: key-enc-udp-dst-port-mask type: u16 byte-order: big-endian - name: key-flags type: u32 byte-order: big-endian - name: key-flags-mask type: u32 byte-order: big-endian - name: key-icmpv4-code type: u8 - name: key-icmpv4-code-mask type: u8 - name: key-icmpv4-type type: u8 - name: key-icmpv4-type-mask type: u8 - name: key-icmpv6-code type: u8 - name: key-icmpv6-code-mask type: u8 - name: key-icmpv6-type type: u8 - name: key-icmpv6-type-mask type: u8 - name: key-arp-sip type: u32 byte-order: big-endian - name: key-arp-sip-mask type: u32 byte-order: big-endian - name: key-arp-tip type: u32 byte-order: big-endian - name: key-arp-tip-mask type: u32 byte-order: big-endian - name: key-arp-op type: u8 - name: key-arp-op-mask type: u8 - name: key-arp-sha type: binary display-hint: mac - name: key-arp-sha-mask type: binary display-hint: mac - name: key-arp-tha type: binary display-hint: mac - name: key-arp-tha-mask type: binary display-hint: mac - name: key-mpls-ttl type: u8 - name: key-mpls-bos type: u8 - name: key-mpls-tc type: u8 - name: key-mpls-label type: u32 byte-order: big-endian - name: key-tcp-flags type: u16 byte-order: big-endian - name: key-tcp-flags-mask type: u16 byte-order: big-endian - name: key-ip-tos type: u8 - name: key-ip-tos-mask type: u8 - name: key-ip-ttl type: u8 - name: key-ip-ttl-mask type: u8 - name: key-cvlan-id type: u16 byte-order: big-endian - name: key-cvlan-prio type: u8 - name: key-cvlan-eth-type type: u16 byte-order: big-endian - name: key-enc-ip-tos type: u8 - name: key-enc-ip-tos-mask type: u8 - name: key-enc-ip-ttl type: u8 - name: key-enc-ip-ttl-mask type: u8 - name: key-enc-opts type: nest nested-attributes: tc-flower-key-enc-opts-attrs - name: key-enc-opts-mask type: nest nested-attributes: tc-flower-key-enc-opts-attrs - name: in-hw-count type: u32 - name: key-port-src-min type: u16 byte-order: big-endian - name: key-port-src-max type: u16 byte-order: big-endian - name: key-port-dst-min type: u16 byte-order: big-endian - name: key-port-dst-max type: u16 byte-order: big-endian - name: key-ct-state type: u16 - name: key-ct-state-mask type: u16 - name: key-ct-zone type: u16 - name: key-ct-zone-mask type: u16 - name: key-ct-mark type: u32 - name: key-ct-mark-mask type: u32 - name: key-ct-labels type: binary - name: key-ct-labels-mask type: binary - name: key-mpls-opts type: nest nested-attributes: tc-flower-key-mpls-opt-attrs - name: key-hash type: u32 - name: key-hash-mask type: u32 - name: key-num-of-vlans type: u8 - name: key-pppoe-sid type: u16 byte-order: big-endian - name: key-ppp-proto type: u16 byte-order: big-endian - name: key-l2-tpv3-sid type: u32 byte-order: big-endian - name: l2-miss type: u8 - name: key-cfm type: nest nested-attributes: tc-flower-key-cfm-attrs - name: key-spi type: u32 byte-order: big-endian - name: key-spi-mask type: u32 byte-order: big-endian - name: tc-flower-key-enc-opts-attrs attributes: - name: geneve type: nest nested-attributes: tc-flower-key-enc-opt-geneve-attrs - name: vxlan type: nest nested-attributes: tc-flower-key-enc-opt-vxlan-attrs - name: erspan type: nest nested-attributes: tc-flower-key-enc-opt-erspan-attrs - name: gtp type: nest nested-attributes: tc-flower-key-enc-opt-gtp-attrs - name: tc-flower-key-enc-opt-geneve-attrs attributes: - name: class type: u16 - name: type type: u8 - name: data type: binary - name: tc-flower-key-enc-opt-vxlan-attrs attributes: - name: gbp type: u32 - name: tc-flower-key-enc-opt-erspan-attrs attributes: - name: ver type: u8 - name: index type: u32 - name: dir type: u8 - name: hwid type: u8 - name: tc-flower-key-enc-opt-gtp-attrs attributes: - name: pdu-type type: u8 - name: qfi type: u8 - name: tc-flower-key-mpls-opt-attrs attributes: - name: lse-depth type: u8 - name: lse-ttl type: u8 - name: lse-bos type: u8 - name: lse-tc type: u8 - name: lse-label type: u32 - name: tc-flower-key-cfm-attrs attributes: - name: md-level type: u8 - name: opcode type: u8 - name: tc-fw-attrs attributes: - name: classid type: u32 - name: police type: nest nested-attributes: tc-police-attrs - name: indev type: string - name: act type: array-nest nested-attributes: tc-act-attrs - name: mask type: u32 - name: tc-gred-attrs attributes: - name: parms type: binary # array of struct: tc-gred-qopt - name: stab type: binary sub-type: u8 - name: dps type: binary struct: tc-gred-sopt - name: max-p type: binary sub-type: u32 - name: limit type: u32 - name: vq-list type: nest nested-attributes: tca-gred-vq-list-attrs - name: tca-gred-vq-list-attrs attributes: - name: entry type: nest nested-attributes: tca-gred-vq-entry-attrs multi-attr: true - name: tca-gred-vq-entry-attrs attributes: - name: pad type: pad - name: dp type: u32 - name: stat-bytes type: u64 - name: stat-packets type: u32 - name: stat-backlog type: u32 - name: stat-prob-drop type: u32 - name: stat-prob-mark type: u32 - name: stat-forced-drop type: u32 - name: stat-forced-mark type: u32 - name: stat-pdrop type: u32 - name: stat-other type: u32 - name: flags type: u32 - name: tc-hfsc-attrs attributes: - name: rsc type: binary - name: fsc type: binary - name: usc type: binary - name: tc-hhf-attrs attributes: - name: backlog-limit type: u32 - name: quantum type: u32 - name: hh-flows-limit type: u32 - name: reset-timeout type: u32 - name: admit-bytes type: u32 - name: evict-timeout type: u32 - name: non-hh-weight type: u32 - name: tc-htb-attrs attributes: - name: parms type: binary struct: tc-htb-opt - name: init type: binary struct: tc-htb-glob - name: ctab type: binary - name: rtab type: binary - name: direct-qlen type: u32 - name: rate64 type: u64 - name: ceil64 type: u64 - name: pad type: pad - name: offload type: flag - name: tc-matchall-attrs attributes: - name: classid type: u32 - name: act type: array-nest nested-attributes: tc-act-attrs - name: flags type: u32 - name: pcnt type: binary struct: tc-matchall-pcnt - name: pad type: pad - name: tc-etf-attrs attributes: - name: parms type: binary struct: tc-etf-qopt - name: tc-ets-attrs attributes: - name: nbands type: u8 - name: nstrict type: u8 - name: quanta type: nest nested-attributes: tc-ets-attrs - name: quanta-band type: u32 multi-attr: true - name: priomap type: nest nested-attributes: tc-ets-attrs - name: priomap-band type: u8 multi-attr: true - name: tc-fq-attrs attributes: - name: plimit type: u32 doc: Limit of total number of packets in queue - name: flow-plimit type: u32 doc: Limit of packets per flow - name: quantum type: u32 doc: RR quantum - name: initial-quantum type: u32 doc: RR quantum for new flow - name: rate-enable type: u32 doc: Enable / disable rate limiting - name: flow-default-rate type: u32 doc: Obsolete, do not use - name: flow-max-rate type: u32 doc: Per flow max rate - name: buckets-log type: u32 doc: log2(number of buckets) - name: flow-refill-delay type: u32 doc: Flow credit refill delay in usec - name: orphan-mask type: u32 doc: Mask applied to orphaned skb hashes - name: low-rate-threshold type: u32 doc: Per packet delay under this rate - name: ce-threshold type: u32 doc: DCTCP-like CE marking threshold - name: timer-slack type: u32 - name: horizon type: u32 doc: Time horizon in usec - name: horizon-drop type: u8 doc: Drop packets beyond horizon, or cap their EDT - name: priomap type: binary struct: tc-prio-qopt - name: weights type: binary sub-type: s32 doc: Weights for each band - name: tc-fq-codel-attrs attributes: - name: target type: u32 - name: limit type: u32 - name: interval type: u32 - name: ecn type: u32 - name: flows type: u32 - name: quantum type: u32 - name: ce-threshold type: u32 - name: drop-batch-size type: u32 - name: memory-limit type: u32 - name: ce-threshold-selector type: u8 - name: ce-threshold-mask type: u8 - name: tc-fq-pie-attrs attributes: - name: limit type: u32 - name: flows type: u32 - name: target type: u32 - name: tupdate type: u32 - name: alpha type: u32 - name: beta type: u32 - name: quantum type: u32 - name: memory-limit type: u32 - name: ecn-prob type: u32 - name: ecn type: u32 - name: bytemode type: u32 - name: dq-rate-estimator type: u32 - name: tc-netem-attrs attributes: - name: corr type: binary struct: tc-netem-corr - name: delay-dist type: binary sub-type: s16 - name: reorder type: binary struct: tc-netem-reorder - name: corrupt type: binary struct: tc-netem-corrupt - name: loss type: nest nested-attributes: tc-netem-loss-attrs - name: rate type: binary struct: tc-netem-rate - name: ecn type: u32 - name: rate64 type: u64 - name: pad type: u32 - name: latency64 type: s64 - name: jitter64 type: s64 - name: slot type: binary struct: tc-netem-slot - name: slot-dist type: binary sub-type: s16 - name: prng-seed type: u64 - name: tc-netem-loss-attrs attributes: - name: gi type: binary doc: General Intuitive - 4 state model struct: tc-netem-gimodel - name: ge type: binary doc: Gilbert Elliot models struct: tc-netem-gemodel - name: tc-pie-attrs attributes: - name: target type: u32 - name: limit type: u32 - name: tupdate type: u32 - name: alpha type: u32 - name: beta type: u32 - name: ecn type: u32 - name: bytemode type: u32 - name: dq-rate-estimator type: u32 - name: tc-police-attrs attributes: - name: tbf type: binary struct: tc-police - name: rate type: binary - name: peakrate type: binary - name: avrate type: u32 - name: result type: u32 - name: tm type: binary struct: tcf-t - name: pad type: pad - name: rate64 type: u64 - name: peakrate64 type: u64 - name: pktrate64 type: u64 - name: pktburst64 type: u64 - name: tc-qfq-attrs attributes: - name: weight type: u32 - name: lmax type: u32 - name: tc-red-attrs attributes: - name: parms type: binary struct: tc-red-qopt - name: stab type: binary - name: max-p type: u32 - name: flags type: bitfield32 - name: early-drop-block type: u32 - name: mark-block type: u32 - name: tc-route-attrs attributes: - name: classid type: u32 - name: to type: u32 - name: from type: u32 - name: iif type: u32 - name: police type: nest nested-attributes: tc-police-attrs - name: act type: array-nest nested-attributes: tc-act-attrs - name: tc-taprio-attrs attributes: - name: priomap type: binary struct: tc-mqprio-qopt - name: sched-entry-list type: nest nested-attributes: tc-taprio-sched-entry-list - name: sched-base-time type: s64 - name: sched-single-entry type: nest nested-attributes: tc-taprio-sched-entry - name: sched-clockid type: s32 - name: pad type: pad - name: admin-sched type: binary - name: sched-cycle-time type: s64 - name: sched-cycle-time-extension type: s64 - name: flags type: u32 - name: txtime-delay type: u32 - name: tc-entry type: nest nested-attributes: tc-taprio-tc-entry-attrs - name: tc-taprio-sched-entry-list attributes: - name: entry type: nest nested-attributes: tc-taprio-sched-entry multi-attr: true - name: tc-taprio-sched-entry attributes: - name: index type: u32 - name: cmd type: u8 - name: gate-mask type: u32 - name: interval type: u32 - name: tc-taprio-tc-entry-attrs attributes: - name: index type: u32 - name: max-sdu type: u32 - name: fp type: u32 - name: tc-tbf-attrs attributes: - name: parms type: binary struct: tc-tbf-qopt - name: rtab type: binary - name: ptab type: binary - name: rate64 type: u64 - name: prate4 type: u64 - name: burst type: u32 - name: pburst type: u32 - name: pad type: pad - name: tc-act-sample-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary struct: tc-gen - name: rate type: u32 - name: trunc-size type: u32 - name: psample-group type: u32 - name: pad type: pad - name: tc-act-gact-attrs attributes: - name: tm type: binary struct: tcf-t - name: parms type: binary struct: tc-gen - name: prob type: binary struct: tc-gact-p - name: pad type: pad - name: tca-stab-attrs attributes: - name: base type: binary struct: tc-sizespec - name: data type: binary - name: tca-stats-attrs attributes: - name: basic type: binary struct: gnet-stats-basic - name: rate-est type: binary struct: gnet-stats-rate-est - name: queue type: binary struct: gnet-stats-queue - name: app type: sub-message sub-message: tca-stats-app-msg selector: kind - name: rate-est64 type: binary struct: gnet-stats-rate-est64 - name: pad type: pad - name: basic-hw type: binary struct: gnet-stats-basic - name: pkt64 type: u64 - name: tc-u32-attrs attributes: - name: classid type: u32 - name: hash type: u32 - name: link type: u32 - name: divisor type: u32 - name: sel type: binary struct: tc-u32-sel - name: police type: nest nested-attributes: tc-police-attrs - name: act type: array-nest nested-attributes: tc-act-attrs - name: indev type: string - name: pcnt type: binary struct: tc-u32-pcnt - name: mark type: binary struct: tc-u32-mark - name: flags type: u32 - name: pad type: pad sub-messages: - name: tc-options-msg formats: - value: basic attribute-set: tc-basic-attrs - value: bpf attribute-set: tc-bpf-attrs - value: bfifo fixed-header: tc-fifo-qopt - value: cake attribute-set: tc-cake-attrs - value: cbs attribute-set: tc-cbs-attrs - value: cgroup attribute-set: tc-cgroup-attrs - value: choke attribute-set: tc-choke-attrs - value: clsact # no content - value: codel attribute-set: tc-codel-attrs - value: drr attribute-set: tc-drr-attrs - value: etf attribute-set: tc-etf-attrs - value: ets attribute-set: tc-ets-attrs - value: flow attribute-set: tc-flow-attrs - value: flower attribute-set: tc-flower-attrs - value: fq attribute-set: tc-fq-attrs - value: fq_codel attribute-set: tc-fq-codel-attrs - value: fq_pie attribute-set: tc-fq-pie-attrs - value: fw attribute-set: tc-fw-attrs - value: gred attribute-set: tc-gred-attrs - value: hfsc fixed-header: tc-hfsc-qopt - value: hhf attribute-set: tc-hhf-attrs - value: htb attribute-set: tc-htb-attrs - value: ingress # no content - value: matchall attribute-set: tc-matchall-attrs - value: mq # no content - value: mqprio fixed-header: tc-mqprio-qopt - value: multiq fixed-header: tc-multiq-qopt - value: netem fixed-header: tc-netem-qopt attribute-set: tc-netem-attrs - value: pfifo fixed-header: tc-fifo-qopt - value: pfifo_fast fixed-header: tc-prio-qopt - value: pfifo_head_drop fixed-header: tc-fifo-qopt - value: pie attribute-set: tc-pie-attrs - value: plug fixed-header: tc-plug-qopt - value: prio fixed-header: tc-prio-qopt - value: qfq attribute-set: tc-qfq-attrs - value: red attribute-set: tc-red-attrs - value: route attribute-set: tc-route-attrs - value: sfb fixed-header: tc-sfb-qopt - value: sfq fixed-header: tc-sfq-qopt-v1 - value: taprio attribute-set: tc-taprio-attrs - value: tbf attribute-set: tc-tbf-attrs - value: u32 attribute-set: tc-u32-attrs - name: tc-act-options-msg formats: - value: bpf attribute-set: tc-act-bpf-attrs - value: connmark attribute-set: tc-act-connmark-attrs - value: csum attribute-set: tc-act-csum-attrs - value: ct attribute-set: tc-act-ct-attrs - value: ctinfo attribute-set: tc-act-ctinfo-attrs - value: gact attribute-set: tc-act-gact-attrs - value: gate attribute-set: tc-act-gate-attrs - value: ife attribute-set: tc-act-ife-attrs - value: mirred attribute-set: tc-act-mirred-attrs - value: mpls attribute-set: tc-act-mpls-attrs - value: nat attribute-set: tc-act-nat-attrs - value: pedit attribute-set: tc-act-pedit-attrs - value: police attribute-set: tc-act-police-attrs - value: sample attribute-set: tc-act-sample-attrs - value: simple attribute-set: tc-act-simple-attrs - value: skbedit attribute-set: tc-act-skbedit-attrs - value: skbmod attribute-set: tc-act-skbmod-attrs - value: tunnel_key attribute-set: tc-act-tunnel-key-attrs - value: vlan attribute-set: tc-act-vlan-attrs - name: tca-stats-app-msg formats: - value: cake attribute-set: tc-cake-stats-attrs - value: choke fixed-header: tc-choke-xstats - value: codel fixed-header: tc-codel-xstats - value: fq fixed-header: tc-fq-qd-stats - value: fq_codel fixed-header: tc-fq-codel-xstats - value: fq_pie fixed-header: tc-fq-pie-xstats - value: hhf fixed-header: tc-hhf-xstats - value: pie fixed-header: tc-pie-xstats - value: red fixed-header: tc-red-xstats - value: sfb fixed-header: tc-sfb-xstats - value: sfq fixed-header: tc-sfq-xstats operations: enum-model: directional list: - name: newqdisc doc: Create new tc qdisc. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 36 attributes: &create-params - kind - options - rate - chain - ingress-block - egress-block - name: delqdisc doc: Delete existing tc qdisc. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 37 - name: getqdisc doc: Get / dump tc qdisc information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 38 attributes: - dump-invisible reply: value: 36 attributes: &tc-all - kind - options - stats - xstats - rate - fcnt - stats2 - stab - chain - ingress-block - egress-block - name: newtclass doc: Get / dump tc traffic class information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 40 attributes: *create-params - name: deltclass doc: Get / dump tc traffic class information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 41 - name: gettclass doc: Get / dump tc traffic class information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 42 reply: value: 40 attributes: *tc-all - name: newtfilter doc: Get / dump tc filter information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 44 attributes: *create-params - name: deltfilter doc: Get / dump tc filter information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 45 attributes: - chain - kind - name: gettfilter doc: Get / dump tc filter information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 46 attributes: - chain - kind reply: value: 44 attributes: *tc-all dump: request: value: 46 attributes: - chain - dump-flags reply: value: 44 attributes: *tc-all - name: newchain doc: Get / dump tc chain information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 100 attributes: *create-params - name: delchain doc: Get / dump tc chain information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 101 attributes: - chain - name: getchain doc: Get / dump tc chain information. attribute-set: tc-attrs fixed-header: tcmsg do: request: value: 102 attributes: - chain reply: value: 100 attributes: *tc-all mcast-groups: list: - name: rtnlgrp-tc value: 4