.. SPDX-License-Identifier: GPL-2.0
.. NOTE: This document was auto-generated.


===================================
Family ``tc`` netlink specification
===================================


.. contents::


-------
Summary
-------


Netlink raw family for tc qdisc, chain, class and filter configuration over rtnetlink.

----------
Operations
----------



newqdisc
========
Create new tc qdisc.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``kind``, ``options``, ``rate``, ``chain``, ``ingress-block``, ``egress-block``]




delqdisc
========
Delete existing tc qdisc.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**





getqdisc
========
Get / dump tc qdisc information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``dump-invisible``]

    **reply**
        :attributes: [``kind``, ``options``, ``stats``, ``xstats``, ``rate``, ``fcnt``, ``stats2``, ``stab``, ``chain``, ``ingress-block``, ``egress-block``]




newtclass
=========
Get / dump tc traffic class information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``kind``, ``options``, ``rate``, ``chain``, ``ingress-block``, ``egress-block``]




deltclass
=========
Get / dump tc traffic class information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**





gettclass
=========
Get / dump tc traffic class information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**


    **reply**
        :attributes: [``kind``, ``options``, ``stats``, ``xstats``, ``rate``, ``fcnt``, ``stats2``, ``stab``, ``chain``, ``ingress-block``, ``egress-block``]




newtfilter
==========
Get / dump tc filter information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``kind``, ``options``, ``rate``, ``chain``, ``ingress-block``, ``egress-block``]




deltfilter
==========
Get / dump tc filter information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``chain``, ``kind``]




gettfilter
==========
Get / dump tc filter information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``chain``, ``kind``]

    **reply**
        :attributes: [``kind``, ``options``, ``stats``, ``xstats``, ``rate``, ``fcnt``, ``stats2``, ``stab``, ``chain``, ``ingress-block``, ``egress-block``]

:dump:
    **request**
        :attributes: [``chain``, ``dump-flags``]

    **reply**
        :attributes: [``kind``, ``options``, ``stats``, ``xstats``, ``rate``, ``fcnt``, ``stats2``, ``stab``, ``chain``, ``ingress-block``, ``egress-block``]




newchain
========
Get / dump tc chain information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``kind``, ``options``, ``rate``, ``chain``, ``ingress-block``, ``egress-block``]




delchain
========
Get / dump tc chain information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``chain``]




getchain
========
Get / dump tc chain information.

:attribute-set: tc-attrs
:fixed-header: tcmsg
:do:
    **request**
        :attributes: [``chain``]

    **reply**
        :attributes: [``kind``, ``options``, ``stats``, ``xstats``, ``rate``, ``fcnt``, ``stats2``, ``stab``, ``chain``, ``ingress-block``, ``egress-block``]




----------------
Multicast groups
----------------


- rtnlgrp-tc

-----------
Definitions
-----------



tcmsg
=====
:type: struct


:members:
    :family: 
    :pad: 
    :ifindex: 
    :handle: 
    :parent: 
    :info: 



tc-cls-flags
============
:type: flags


:entries:
    - ``skip-hw``
    - ``skip-sw``
    - ``in-hw``
    - ``not-in-nw``
    - ``verbose``



tc-stats
========
:type: struct


:members:
    :bytes: 
    :packets: 
    :drops: 
    :overlimits: 
    :bps: 
    :pps: 
    :qlen: 
    :backlog: 



tc-cbs-qopt
===========
:type: struct


:members:
    :offload: 
    :pad: 
    :hicredit: 
    :locredit: 
    :idleslope: 
    :sendslope: 



tc-etf-qopt
===========
:type: struct


:members:
    :delta: 
    :clockid: 
    :flags: 



tc-fifo-qopt
============
:type: struct


:members:
    :limit: 



tc-htb-opt
==========
:type: struct


:members:
    :rate: 
    :ceil: 
    :buffer: 
    :cbuffer: 
    :quantum: 
    :level: 
    :prio: 



tc-htb-glob
===========
:type: struct


:members:
    :version: 
    :rate2quantum: 
    :defcls: 
    :debug: 
    :direct-pkts: 



tc-gred-qopt
============
:type: struct


:members:
    :limit: 
    :qth-min: 
    :qth-max: 
    :DP: 
    :backlog: 
    :qave: 
    :forced: 
    :early: 
    :other: 
    :pdrop: 
    :Wlog: 
    :Plog: 
    :Scell_log: 
    :prio: 
    :packets: 
    :bytesin: 



tc-gred-sopt
============
:type: struct


:members:
    :DPs: 
    :def_DP: 
    :grio: 
    :flags: 
    :pad: 



tc-hfsc-qopt
============
:type: struct


:members:
    :defcls: 



tc-mqprio-qopt
==============
:type: struct


:members:
    :num-tc: 
    :prio-tc-map: 
    :hw: 
    :count: 
    :offset: 



tc-multiq-qopt
==============
:type: struct


:members:
    :bands: 
    :max-bands: 



tc-netem-qopt
=============
:type: struct


:members:
    :latency: 
    :limit: 
    :loss: 
    :gap: 
    :duplicate: 
    :jitter: 



tc-plug-qopt
============
:type: struct


:members:
    :action: 
    :limit: 



tc-prio-qopt
============
:type: struct


:members:
    :bands: 
    :priomap: 



tc-red-qopt
===========
:type: struct


:members:
    :limit: 
    :qth-min: 
    :qth-max: 
    :Wlog: 
    :Plog: 
    :Scell-log: 
    :flags: 



tc-sfb-qopt
===========
:type: struct


:members:
    :rehash-interval: 
    :warmup-time: 
    :max: 
    :bin-size: 
    :increment: 
    :decrement: 
    :limit: 
    :penalty-rate: 
    :penalty-burst: 



tc-sfq-qopt-v1
==============
:type: struct


:members:
    :quantum: 
    :perturb-period: 
    :limit: 
    :divisor: 
    :flows: 
    :depth: 
    :headdrop: 
    :limit: 
    :qth-min: 
    :qth-mac: 
    :Wlog: 
    :Plog: 
    :Scell-log: 
    :flags: 
    :max-P: 
    :prob-drop: 
    :forced-drop: 
    :prob-mark: 
    :forced-mark: 
    :prob-mark-head: 
    :forced-mark-head: 



tc-tbf-qopt
===========
:type: struct


:members:
    :rate: 
    :peakrate: 
    :limit: 
    :buffer: 
    :mtu: 



tc-sizespec
===========
:type: struct


:members:
    :cell-log: 
    :size-log: 
    :cell-align: 
    :overhead: 
    :linklayer: 
    :mpu: 
    :mtu: 
    :tsize: 



gnet-estimator
==============
:type: struct


:members:
    :interval: 
    :ewma-log: 



--------------
Attribute sets
--------------



tc-attrs
========
kind (``string``)
~~~~~~~~~~~~~~~~~


options (``sub-message``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:sub-message: tc-options-msg
:selector: kind


stats (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-stats


xstats (``binary``)
~~~~~~~~~~~~~~~~~~~


rate (``binary``)
~~~~~~~~~~~~~~~~~
:struct: gnet-estimator


fcnt (``u32``)
~~~~~~~~~~~~~~


stats2 (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: tca-stats-attrs


stab (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: tca-stab-attrs


pad (``pad``)
~~~~~~~~~~~~~


dump-invisible (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~


chain (``u32``)
~~~~~~~~~~~~~~~


hw-offload (``u8``)
~~~~~~~~~~~~~~~~~~~


ingress-block (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


egress-block (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


dump-flags (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


ext-warn-msg (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~



tc-cake-attrs
=============
pad (``pad``)
~~~~~~~~~~~~~


base-rate64 (``u64``)
~~~~~~~~~~~~~~~~~~~~~


diffserv-mode (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


atm (``u32``)
~~~~~~~~~~~~~


flow-mode (``u32``)
~~~~~~~~~~~~~~~~~~~


overhead (``u32``)
~~~~~~~~~~~~~~~~~~


rtt (``u32``)
~~~~~~~~~~~~~


target (``u32``)
~~~~~~~~~~~~~~~~


autorate (``u32``)
~~~~~~~~~~~~~~~~~~


memory (``u32``)
~~~~~~~~~~~~~~~~


nat (``u32``)
~~~~~~~~~~~~~


raw (``u32``)
~~~~~~~~~~~~~


wash (``u32``)
~~~~~~~~~~~~~~


mpu (``u32``)
~~~~~~~~~~~~~


ingress (``u32``)
~~~~~~~~~~~~~~~~~


ack-filter (``u32``)
~~~~~~~~~~~~~~~~~~~~


split-gso (``u32``)
~~~~~~~~~~~~~~~~~~~


fwmark (``u32``)
~~~~~~~~~~~~~~~~



tc-cake-stats-attrs
===================
pad (``pad``)
~~~~~~~~~~~~~


capacity-estimate64 (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


memory-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


memory-used (``u32``)
~~~~~~~~~~~~~~~~~~~~~


avg-netoff (``u32``)
~~~~~~~~~~~~~~~~~~~~


min-netlen (``u32``)
~~~~~~~~~~~~~~~~~~~~


max-netlen (``u32``)
~~~~~~~~~~~~~~~~~~~~


min-adjlen (``u32``)
~~~~~~~~~~~~~~~~~~~~


max-adjlen (``u32``)
~~~~~~~~~~~~~~~~~~~~


tin-stats (``binary``)
~~~~~~~~~~~~~~~~~~~~~~


deficit (``s32``)
~~~~~~~~~~~~~~~~~


cobalt-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


dropping (``u32``)
~~~~~~~~~~~~~~~~~~


drop-next-us (``s32``)
~~~~~~~~~~~~~~~~~~~~~~


p-drop (``u32``)
~~~~~~~~~~~~~~~~


blue-timer-us (``s32``)
~~~~~~~~~~~~~~~~~~~~~~~



tc-cbs-attrs
============
parms (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-cbs-qopt



tc-choke-attrs
==============
parms (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-red-qopt


stab (``binary``)
~~~~~~~~~~~~~~~~~


max-p (``u32``)
~~~~~~~~~~~~~~~



tc-codel-attrs
==============
target (``u32``)
~~~~~~~~~~~~~~~~


limit (``u32``)
~~~~~~~~~~~~~~~


interval (``u32``)
~~~~~~~~~~~~~~~~~~


ecn (``u32``)
~~~~~~~~~~~~~


ce-threshold (``u32``)
~~~~~~~~~~~~~~~~~~~~~~



tc-drr-attrs
============
quantum (``u32``)
~~~~~~~~~~~~~~~~~



tc-flower-attrs
===============
classid (``u32``)
~~~~~~~~~~~~~~~~~


indev (``string``)
~~~~~~~~~~~~~~~~~~


act (``array-nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: tc-act-attrs


key-eth-dst (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


key-eth-dst-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


key-eth-src (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


key-eth-src-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


key-eth-type (``u16``)
~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-ip-proto (``u8``)
~~~~~~~~~~~~~~~~~~~~~


key-ipv4-src (``u32``)
~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-ipv4-src-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-ipv4-dst (``u32``)
~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-ipv4-dst-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-ipv6-src (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-ipv6-src-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-ipv6-dst (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-ipv6-dst-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-tcp-src (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-tcp-dst (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-udp-src (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-udp-dst (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


flags (``u32``)
~~~~~~~~~~~~~~~
:enum: tc-cls-flags
:enum-as-flags: True


key-vlan-id (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-vlan-prio (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


key-vlan-eth-type (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-key-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-ipv4-src (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-enc-ipv4-src-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-enc-ipv4-dst (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-enc-ipv4-dst-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian
:display-hint: ipv4


key-enc-ipv6-src (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-enc-ipv6-src-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-enc-ipv6-dst (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-enc-ipv6-dst-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


key-tcp-src-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-tcp-dst-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-udp-src-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-udp-dst-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-sctp-src-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-sctp-dst-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-sctp-src (``u16``)
~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-sctp-dst (``u16``)
~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-udp-src-port (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-udp-src-port-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-udp-dst-port (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-udp-dst-port-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-flags (``u32``)
~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-flags-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-icmpv4-code (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv4-code-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv4-type (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv4-type-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv6-code (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv6-code-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv6-type (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-icmpv6-type-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-arp-sip (``u32``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-arp-sip-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-arp-tip (``u32``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-arp-tip-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-arp-op (``u8``)
~~~~~~~~~~~~~~~~~~~


key-arp-op-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-arp-sha (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-arp-sha-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-arp-tha (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-arp-tha-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-mpls-ttl (``u8``)
~~~~~~~~~~~~~~~~~~~~~


key-mpls-bos (``u8``)
~~~~~~~~~~~~~~~~~~~~~


key-mpls-tc (``u8``)
~~~~~~~~~~~~~~~~~~~~


key-mpls-label (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-tcp-flags (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-tcp-flags-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-ip-tos (``u8``)
~~~~~~~~~~~~~~~~~~~


key-ip-tos-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-ip-ttl (``u8``)
~~~~~~~~~~~~~~~~~~~


key-ip-ttl-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


key-cvlan-id (``u16``)
~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-cvlan-prio (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


key-cvlan-eth-type (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-enc-ip-tos (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


key-enc-ip-tos-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-enc-ip-ttl (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


key-enc-ip-ttl-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-enc-opts (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~


key-enc-opts-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


in-hw-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~


key-port-src-min (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-port-src-max (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-port-dst-min (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-port-dst-max (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-ct-state (``u16``)
~~~~~~~~~~~~~~~~~~~~~~


key-ct-state-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-ct-zone (``u16``)
~~~~~~~~~~~~~~~~~~~~~


key-ct-zone-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


key-ct-mark (``u32``)
~~~~~~~~~~~~~~~~~~~~~


key-ct-mark-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


key-ct-labels (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


key-ct-labels-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


key-mpls-opts (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


key-hash (``u32``)
~~~~~~~~~~~~~~~~~~


key-hash-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


key-num-of-vlans (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~


key-pppoe-sid (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-ppp-proto (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


key-l2-tpv3-sid (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian



tc-gred-attrs
=============
parms (``binary``)
~~~~~~~~~~~~~~~~~~


stab (``binary``)
~~~~~~~~~~~~~~~~~
:sub-type: u8


dps (``binary``)
~~~~~~~~~~~~~~~~
:struct: tc-gred-sopt


max-p (``binary``)
~~~~~~~~~~~~~~~~~~
:sub-type: u32


limit (``u32``)
~~~~~~~~~~~~~~~


vq-list (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: tca-gred-vq-list-attrs



tca-gred-vq-list-attrs
======================
entry (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: tca-gred-vq-entry-attrs
:multi-attr: True



tca-gred-vq-entry-attrs
=======================
pad (``pad``)
~~~~~~~~~~~~~


dp (``u32``)
~~~~~~~~~~~~


stat-bytes (``u32``)
~~~~~~~~~~~~~~~~~~~~


stat-packets (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


stat-backlog (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


stat-prob-drop (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


stat-prob-mark (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


stat-forced-drop (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


stat-forced-mark (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


stat-pdrop (``u32``)
~~~~~~~~~~~~~~~~~~~~


stat-other (``u32``)
~~~~~~~~~~~~~~~~~~~~


flags (``u32``)
~~~~~~~~~~~~~~~



tc-hfsc-attrs
=============
rsc (``binary``)
~~~~~~~~~~~~~~~~


fsc (``binary``)
~~~~~~~~~~~~~~~~


usc (``binary``)
~~~~~~~~~~~~~~~~



tc-hhf-attrs
============
backlog-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


quantum (``u32``)
~~~~~~~~~~~~~~~~~


hh-flows-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


reset-timeout (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


admit-bytes (``u32``)
~~~~~~~~~~~~~~~~~~~~~


evict-timeout (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


non-hh-weight (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~



tc-htb-attrs
============
parms (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-htb-opt


init (``binary``)
~~~~~~~~~~~~~~~~~
:struct: tc-htb-glob


ctab (``binary``)
~~~~~~~~~~~~~~~~~


rtab (``binary``)
~~~~~~~~~~~~~~~~~


direct-qlen (``u32``)
~~~~~~~~~~~~~~~~~~~~~


rate64 (``u64``)
~~~~~~~~~~~~~~~~


ceil64 (``u64``)
~~~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~


offload (``flag``)
~~~~~~~~~~~~~~~~~~



tc-act-attrs
============
kind (``string``)
~~~~~~~~~~~~~~~~~


options (``sub-message``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:sub-message: tc-act-options-msg
:selector: kind


index (``u32``)
~~~~~~~~~~~~~~~


stats (``binary``)
~~~~~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~


cookie (``binary``)
~~~~~~~~~~~~~~~~~~~


flags (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~


hw-stats (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


used-hw-stats (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


in-hw-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~



tc-etf-attrs
============
parms (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-etf-qopt



tc-ets-attrs
============
nbands (``u8``)
~~~~~~~~~~~~~~~


nstrict (``u8``)
~~~~~~~~~~~~~~~~


quanta (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: tc-ets-attrs


quanta-band (``u32``)
~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True


priomap (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: tc-ets-attrs


priomap-band (``u8``)
~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True



tc-fq-attrs
===========
plimit (``u32``)
~~~~~~~~~~~~~~~~


flow-plimit (``u32``)
~~~~~~~~~~~~~~~~~~~~~


quantum (``u32``)
~~~~~~~~~~~~~~~~~


initial-quantum (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


rate-enable (``u32``)
~~~~~~~~~~~~~~~~~~~~~


flow-default-rate (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


flow-max-rate (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


buckets-log (``u32``)
~~~~~~~~~~~~~~~~~~~~~


flow-refill-delay (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


orphan-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~


low-rate-threshold (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


ce-threshold (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


timer-slack (``u32``)
~~~~~~~~~~~~~~~~~~~~~


horizon (``u32``)
~~~~~~~~~~~~~~~~~


horizon-drop (``u8``)
~~~~~~~~~~~~~~~~~~~~~



tc-fq-codel-attrs
=================
target (``u32``)
~~~~~~~~~~~~~~~~


limit (``u32``)
~~~~~~~~~~~~~~~


interval (``u32``)
~~~~~~~~~~~~~~~~~~


ecn (``u32``)
~~~~~~~~~~~~~


flows (``u32``)
~~~~~~~~~~~~~~~


quantum (``u32``)
~~~~~~~~~~~~~~~~~


ce-threshold (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


drop-batch-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


memory-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


ce-threshold-selector (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


ce-threshold-mask (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~



tc-fq-pie-attrs
===============
limit (``u32``)
~~~~~~~~~~~~~~~


flows (``u32``)
~~~~~~~~~~~~~~~


target (``u32``)
~~~~~~~~~~~~~~~~


tupdate (``u32``)
~~~~~~~~~~~~~~~~~


alpha (``u32``)
~~~~~~~~~~~~~~~


beta (``u32``)
~~~~~~~~~~~~~~


quantum (``u32``)
~~~~~~~~~~~~~~~~~


memory-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


ecn-prob (``u32``)
~~~~~~~~~~~~~~~~~~


ecn (``u32``)
~~~~~~~~~~~~~


bytemode (``u32``)
~~~~~~~~~~~~~~~~~~


dq-rate-estimator (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~



tc-netem-attrs
==============
corr (``binary``)
~~~~~~~~~~~~~~~~~


delay-dist (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~
:sub-type: s16


reorder (``binary``)
~~~~~~~~~~~~~~~~~~~~


corrupt (``binary``)
~~~~~~~~~~~~~~~~~~~~


loss (``binary``)
~~~~~~~~~~~~~~~~~


rate (``binary``)
~~~~~~~~~~~~~~~~~


ecn (``u32``)
~~~~~~~~~~~~~


rate64 (``u64``)
~~~~~~~~~~~~~~~~


pad (``u32``)
~~~~~~~~~~~~~


latency64 (``s64``)
~~~~~~~~~~~~~~~~~~~


jitter64 (``s64``)
~~~~~~~~~~~~~~~~~~


slot (``binary``)
~~~~~~~~~~~~~~~~~


slot-dist (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:sub-type: s16



tc-pie-attrs
============
target (``u32``)
~~~~~~~~~~~~~~~~


limit (``u32``)
~~~~~~~~~~~~~~~


tupdate (``u32``)
~~~~~~~~~~~~~~~~~


alpha (``u32``)
~~~~~~~~~~~~~~~


beta (``u32``)
~~~~~~~~~~~~~~


ecn (``u32``)
~~~~~~~~~~~~~


bytemode (``u32``)
~~~~~~~~~~~~~~~~~~


dq-rate-estimator (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~



tc-qfq-attrs
============
weight (``u32``)
~~~~~~~~~~~~~~~~


lmax (``u32``)
~~~~~~~~~~~~~~



tc-red-attrs
============
parms (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-red-qopt


stab (``binary``)
~~~~~~~~~~~~~~~~~


max-p (``u32``)
~~~~~~~~~~~~~~~


flags (``binary``)
~~~~~~~~~~~~~~~~~~


early-drop-block (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


mark-block (``u32``)
~~~~~~~~~~~~~~~~~~~~



tc-taprio-attrs
===============
priomap (``binary``)
~~~~~~~~~~~~~~~~~~~~
:struct: tc-mqprio-qopt


sched-entry-list (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: tc-taprio-sched-entry-list


sched-base-time (``s64``)
~~~~~~~~~~~~~~~~~~~~~~~~~


sched-single-entry (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: tc-taprio-sched-entry


sched-clockid (``s32``)
~~~~~~~~~~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~


admin-sched (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~


sched-cycle-time (``s64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


sched-cycle-time-extension (``s64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flags (``u32``)
~~~~~~~~~~~~~~~


txtime-delay (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


tc-entry (``nest``)
~~~~~~~~~~~~~~~~~~~
:nested-attributes: tc-taprio-tc-entry-attrs



tc-taprio-sched-entry-list
==========================
entry (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: tc-taprio-sched-entry



tc-taprio-sched-entry
=====================
index (``u32``)
~~~~~~~~~~~~~~~


cmd (``u8``)
~~~~~~~~~~~~


gate-mask (``u32``)
~~~~~~~~~~~~~~~~~~~


interval (``u32``)
~~~~~~~~~~~~~~~~~~



tc-taprio-tc-entry-attrs
========================
index (``u32``)
~~~~~~~~~~~~~~~


max-sdu (``u32``)
~~~~~~~~~~~~~~~~~


fp (``u32``)
~~~~~~~~~~~~



tc-tbf-attrs
============
parms (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: tc-tbf-qopt


rtab (``binary``)
~~~~~~~~~~~~~~~~~


ptab (``binary``)
~~~~~~~~~~~~~~~~~


rate64 (``u64``)
~~~~~~~~~~~~~~~~


prate4 (``u64``)
~~~~~~~~~~~~~~~~


burst (``u32``)
~~~~~~~~~~~~~~~


pburst (``u32``)
~~~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~



tca-gact-attrs
==============
tm (``binary``)
~~~~~~~~~~~~~~~


parms (``binary``)
~~~~~~~~~~~~~~~~~~


prob (``binary``)
~~~~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~



tca-stab-attrs
==============
base (``binary``)
~~~~~~~~~~~~~~~~~
:struct: tc-sizespec


data (``binary``)
~~~~~~~~~~~~~~~~~



tca-stats-attrs
===============
basic (``binary``)
~~~~~~~~~~~~~~~~~~


rate-est (``binary``)
~~~~~~~~~~~~~~~~~~~~~


queue (``binary``)
~~~~~~~~~~~~~~~~~~


app (``binary``)
~~~~~~~~~~~~~~~~
:sub-message: tca-stats-app-msg
:selector: kind


rate-est64 (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~


basic-hw (``binary``)
~~~~~~~~~~~~~~~~~~~~~


pkt64 (``binary``)
~~~~~~~~~~~~~~~~~~



------------
Sub-messages
------------



tc-options-msg
==============
- **bfifo**
    :fixed-header: tc-fifo-qopt


- **cake**
    :attribute-set: tc-cake-attrs


- **cbs**
    :attribute-set: tc-cbs-attrs


- **choke**
    :attribute-set: tc-choke-attrs


- **clsact**


- **codel**
    :attribute-set: tc-codel-attrs


- **drr**
    :attribute-set: tc-drr-attrs


- **etf**
    :attribute-set: tc-etf-attrs


- **ets**
    :attribute-set: tc-ets-attrs


- **fq**
    :attribute-set: tc-fq-attrs


- **fq_codel**
    :attribute-set: tc-fq-codel-attrs


- **fq_pie**
    :attribute-set: tc-fq-pie-attrs


- **flower**
    :attribute-set: tc-flower-attrs


- **gred**
    :attribute-set: tc-gred-attrs


- **hfsc**
    :fixed-header: tc-hfsc-qopt


- **hhf**
    :attribute-set: tc-hhf-attrs


- **htb**
    :attribute-set: tc-htb-attrs


- **ingress**


- **mq**


- **mqprio**
    :fixed-header: tc-mqprio-qopt


- **multiq**
    :fixed-header: tc-multiq-qopt


- **netem**
    :fixed-header: tc-netem-qopt
    :attribute-set: tc-netem-attrs


- **pfifo**
    :fixed-header: tc-fifo-qopt


- **pfifo_fast**
    :fixed-header: tc-prio-qopt


- **pfifo_head_drop**
    :fixed-header: tc-fifo-qopt


- **pie**
    :attribute-set: tc-pie-attrs


- **plug**
    :fixed-header: tc-plug-qopt


- **prio**
    :fixed-header: tc-prio-qopt


- **qfq**
    :attribute-set: tc-qfq-attrs


- **red**
    :attribute-set: tc-red-attrs


- **sfb**
    :fixed-header: tc-sfb-qopt


- **sfq**
    :fixed-header: tc-sfq-qopt-v1


- **taprio**
    :attribute-set: tc-taprio-attrs


- **tbf**
    :attribute-set: tc-tbf-attrs



tc-act-options-msg
==================
- **gact**
    :attribute-set: tca-gact-attrs



tca-stats-app-msg
=================
- **bfifo**


- **blackhole**


- **cake**
    :attribute-set: tc-cake-stats-attrs


- **cbs**


- **choke**


- **clsact**


- **codel**


- **drr**


- **etf**


- **ets**


- **fq**


- **fq_codel**


- **fq_pie**


- **flower**


- **gred**


- **hfsc**


- **hhf**


- **htb**


- **ingress**


- **mq**


- **mqprio**


- **multiq**


- **netem**


- **noqueue**


- **pfifo**


- **pfifo_fast**


- **pfifo_head_drop**


- **pie**


- **plug**


- **prio**


- **qfq**


- **red**


- **sfb**


- **sfq**


- **taprio**


- **tbf**

