Just wanted to confirm if my thinking is correct, but from my understanding, the likes of CBWFQ and LLQ (any other queuing/scheduling algorithms) are not applied until the interface reaches its max capacity (being the physical interface itself, or the shaping/policing limit that's on the interface).
Is my thinking correct? I''m finding it hard to find a definitive yes or no to this.
And the likes of policers and shapers, these are always applied, no matter if the interface is full or not?
CBWFQ and LLQ use almost identical configurations; the one major difference is whether the bandwidth command (CBWFQ) or the priority command (LLQ) is used to configure.
Depends on the config - The CBWFQ scheduler guarantees a minimum percentage of a link's bandwidth to each class/queue. If all queues have a large number packets, each queue gets the percentage bandwidth implied by the configuration. However, if some queues are empty and do not need their bandwidth for a short period, the bandwidth is proportionally allocated across the other classes.
more information can be find here :
To add onto what @Jonathan Schulenberg said, an interface on a router has a hardware buffer. This hardware buffer holds the next set of bits that will be fed into the circuit. If the amount of traffic offered to the egress interface is less than the interface's capacity that hardware buffer will not fill up. This means that once the router decides that a particular interface is the egress interface for a piece of traffic it will put the traffic right into the hardware buffer and out it goes.
However, if the traffic offered to an egress interface is greater than the capacity/speed of the interface, then the hardware buffer will fill up. The router then buffers the excess traffic in software. This is when a queuing technique will come into play. Of all of the traffic in the software buffer, which piece will be sent into the hardware buffer next? Depending on which queuing strategy you employ, the router will make different choices about which traffic to choose out of the software buffer for transmission next.
Additionally, there comes a point when even the software buffers will fill up. Another part of queuing technique is telling the router which piece(s) of traffic currently sitting in the software buffer should be discarded when the software buffer is reaching capacity. This is "discard probability". By preemptively discarding traffic before the software buffer gets full, the router can be strategic about what to discard rather than just discarding the most recent traffic to arrive.
The above is standard LLQ and CBWFQ logic and is intended to avoid dropping important traffic when overall load for an interface is high/bursty (while giving all flows/classes at least some access). Policers and shapers are a little different as they are intended to control individual flows of traffic when the individual flow is high/bursty, and not necessarily tied to the overall load on an interface.
Egress policers will analyze traffic before putting the traffic in the hardware buffer as policing is the act of placing a maximum traffic flow on a class of traffic. Ingress policers operate after traffic is accepted (because all traffic must physically ingress before it can be analyzed). In both cases violating traffic is dropped or remarked rather than being queued.
Shapers, generally speaking, are implemented as to not violate a policer. Shapers are used on egress interfaces to queue excess traffic in a traffic class so that all traffic sent is accepted (as it will be shaped to conform to the policer). If a shaper is configured on an egress interface, yes it will analyze the traffic before placing the traffic in the hardware buffer.
Here is a good article on this topic. I also recommend the QoS chapter from the CCIE R/S (now CCIE Enterprise) Cisco Press Book by Wendell Odom. Compare Traffic Policy and Traffic Shape to Limit Bandwidth
I'm explaining it how I understand it. Feel free to ask clarifying questions.