tc-cbq-details
Show Class Based Queueing (CBQ) details
SYNOPSIS
tc qdisc show dev <device>
tc class show dev <device>
Note: "tc-cbq-details" is not a direct command, but refers to the details displayed by the 'tc' utility for CBQ configurations.
PARAMETERS
rate
The maximum rate for a class, in bytes/sec or a data unit (e.g., 100kbit).
bandwidth
The total bandwidth of the interface or parent qdisc/class, used for rate calculations.
mpu
Minimum Packet Unit. Packets smaller than this are counted as MPU bytes.
avpkt
Average Packet Size. Used by the estimator to convert rates into packet counts.
maxburst
Maximum burst size, in bytes. The maximum amount of data that can be sent in a burst.
minburst
Minimum burst size, in bytes. The amount of data below which no control is exercised.
ewma
Exponentially Weighted Moving Average factor for the rate estimator. Larger values mean slower response to changes.
offtime
How long a class stays off after sending a burst above its rate, in jiffies.
split
If specified, a class can borrow bandwidth from its parent even if it is not empty, allowing for better resource utilization.
defmap
A bitmask used for default classification of unclassified packets or packets with no specific filter match.
estimator
Type of rate estimator used (e.g., 'ewma').
allok
If set, this class can always borrow bandwidth from its parent, even if the parent considers itself busy.
isolate
If set, this class cannot borrow or lend bandwidth to/from sibling classes.
lss
Least Slack Share (LSS) allows classes with lower slack to get more service if they have data ready to send.
rtscell
Real-Time Slice Cell size, in bytes. Defines the minimum amount of data to be sent for a real-time class during its turn.
DESCRIPTION
tc-cbq-details is not a standalone executable command but refers to the detailed information displayed by the tc utility when managing or inspecting Class-Based Queueing (CBQ) disciplines. CBQ is a sophisticated queuing discipline in Linux traffic control used for bandwidth management, allowing for hierarchical classification of traffic and allocation of bandwidth to different classes based on priority and sharing rules.
When you use commands like tc qdisc show or tc class show on a CBQ-configured interface, the output includes various parameters that define the CBQ behavior, such as configured rates, burst sizes, and mapping rules. Understanding these details is crucial for diagnosing network performance issues, verifying Quality of Service (QoS) policies, and fine-tuning traffic shaping configurations. The 'details' encompass how bandwidth is shared, how overlimit behavior is handled, and how different traffic classes interact within the CBQ hierarchy.
CAVEATS
The term "tc-cbq-details" does not correspond to a direct, executable command in standard Linux distributions. It refers to the output and parameters related to the Class-Based Queueing discipline when configured or inspected using the tc utility.
CBQ can be complex to configure and debug due to its many parameters and hierarchical nature. Its CPU overhead is generally higher compared to simpler qdiscs. For most modern use cases, newer and often more efficient queuing disciplines like HTB (Hierarchical Token Bucket) are preferred over CBQ due to their simpler configuration and better performance characteristics.
<B>CBQ OPERATION</B>
CBQ operates by classifying incoming packets into different traffic classes. Each class can have its own defined bandwidth limits (rate), priority, and rules for borrowing or lending bandwidth to other classes within the hierarchy. It utilizes a token bucket mechanism for rate limiting and a sophisticated scheduling algorithm to determine which class gets to transmit next. The 'details' displayed by tc commands reflect the current state of these mechanisms, including tokens available, actual rates observed, and the various configured parameters that govern their behavior.
HISTORY
Class-Based Queueing (CBQ) was one of the earliest and most comprehensive hierarchical queuing disciplines available in Linux traffic control. Developed to provide advanced traffic shaping capabilities, it allowed network administrators to define complex rules for bandwidth allocation and prioritization. While highly capable for its time, its inherent complexity and CPU overhead, especially on high-speed links, led to the development of alternative and often simpler qdiscs like HTB (Hierarchical Token Bucket). Despite being largely superseded in new deployments, CBQ remains available and understood for specific legacy systems or highly nuanced traffic management requirements where its unique features are still leveraged.