How is WRR Queue actually configured
How is WRR Queue actually configured
Hi, First time poster here,
I am trying to determine the significance of the ‘Minimum Bandwidth’ field under the QoS>CoS>CoS Configuration>Advanced> Interface Queue Configuration menu structure. Specifically I am asking about the S3300-52X switch, but I have other switches that I would be interested in knowing the same information about if it differs.
I commonly have scenario with a high priority Class (Class_1) which I map one queue above another Class(Class_2). The data flows are such that Class_1 with very small packet size has <25% of the bandwidth of Class_2, but the packet rate (packets per second) of Class_1 may be 5X the packet rate of Class_2. A normal WRR queue weighting curve of packets forwarded per round doubling with each step fails badly. And I can’t figure out how to set the weights in WRR. I have never had an issue finding this info any other managed switch with real DSCP capabilities.
I believe a lot of my issue is the use of inconsistent and non-standard language in your help button and manuals. The fact that this series does not have a CLI interface makes it a bit harder to group what is actually happening in the switch since I have to keep exporting the or a text config file to see the effect of the changes.
WRR is based on the number of packets from each queue forwarded on each round (the weight) and not and is not bandwidth based. I have no problem with using the general term bandwidth to relate to the % of packets forwarded in each round but I need to understand the weighting system and if there is some metric happening beyond packet count.
The help screen (quoted below) has more information than the manual with most of the information being essentially the same but adding the information “Setting this value higher than its corresponding Maximum Bandwidth automatically increases the maximum to the same value.” The fact that this series of switch does not have a CLI seems to significantly lower my ability to figure out the capabilities and meanings.
“Minimum Bandwidth - Specifies the minimum guaranteed bandwidth allotted to this queue. Setting this value higher than its corresponding Maximum Bandwidth automatically increases the maximum to the same value. Default value is 0. Valid Range is (0 to 100) in increments of The value 0 means no guaranteed minimum. Sum of individual Minimum Bandwidth values for all queues in the selected interface cannot exceed defined maximum (100).”
I assume the “corresponding Maximum Bandwidth” is the ‘Interface Shaping Rate’ in QoS>CoS>CoS Configuration>Advanced> CoS Interface Configuration, since this is the only thing I can find in any documentation that corresponds to reference “Maximum Bandwidth”, but that does not really enter into my main question.
The Netgear document Quality of Service (QoS) on Netgear switches under ‘Queue Servicing’ states:
“The scheduling can be further refined by assigning a minimum % of the available bandwidth to the queues on an interface. This could be used to ensure that there is always enough bandwidth for a video link, for example, or to ensure that low-priority traffic always has a minimum amount of bandwidth available. There is usually no need to change these settings from the default.”
Combined with the fact that the default for ‘Minimum Bandwidth’ is 0 (no guaranteed bandwidth) I assume there is a weighting algorithm that is hidden and it seems that the only mechanism I have for changing those weights is Minimum Bandwidth. The language ‘further refined’ does give me confidence that there is a 1 to 1 correspondence between Minimum Bandwidth and WRR weight.
Had I not read the documentation and found no real indication and lots of obfuscation, I would assume that the egress queue configuration works like the following, but it has me doubting everything.
•Minimum Bandwidth equates to WRR weight as a percentage of max.
•If you do not enter any weights (Minimum Bandwidth values) for an interface, Netgear uses a magical (undocumented, because we can’t have muggles knowing things) vaguely logarithmic weighting curve for the queues.
•If you do enter any weights (Minimum Bandwidth values) for an interface, you have to enter weights for all queues you care about or everything will have the same priority as best effort (0).
•Strict queues ignore weight values and preempt WRR queues until they are empty
•If you do put a Minimum Bandwidth value in a strict queue, it doesn’t really change anything because WRR is all about the relationship between weights.
•The actual WRR metric is packets forwarded not bandwidth.
•The Minimum Bandwidth and Interface Shaping Rate are actually derived from packets forwarded per second X ~ 1300 Bytes nominal packet size.
If I got it right, just say so with enough authority that I believe some stranger on the internet and don’t bother with the questions, I answered them.
If I got it wrong, I still need to understand what really happens when I type the numbers in the box so my questions are below
Note to the Netgear people I know are reading this>> First of all, I am asking about a S3300-52x (GS752TXS) with firmware 22.214.171.124 so you can’t kick it back to me for that. Second, if I got it right feel free to use the bullet points above as a TLDR for queue config somewhere in your documentation. It would have saved me a ton of time. If I got it wrong, consider a TLDR with the correct info, use the bullets as a template to understand what is important to know if you are not just following a recipe to tune a network.
With that my questions and pre-planned follow up tree are:
- How does this ‘Minimum Bandwidth’ interact with the WRR and Strict Queueing, specifically?
1.1.Does ‘Minimum Bandwidth’ equate to weight as a percentage?
1.1.1. If ‘Minimum Bandwidth’ does equate to weight as a percentage, there are no ‘cos-queue min-bandwidth’ values in the configuration if no Minimum Bandwidth are entered. What are is Minimum Bandwidth of each queue In the default condition?
126.96.36.199. If it is zero as indicated in the UI, what was Netgear thinking?
1.1.2. If ‘Minimum Bandwidth’ does equate to weight as a percentage, it seems that if I enter a ‘Minimum Bandwidth’ value in one queue, “cos-queue min-bandwidth” appears in the config for the interface with an array of values all positions except the one configured queue take the value of zero. Does that mean if I stray from the default, I need to specify every queue I am using? (not a problem but it’s important to know) or is there still a weight hidden behind the min bw=0?
1.1.3. If ‘Minimum Bandwidth’ does not equate to weight as a percentage, how does it change the relative weight compared to the other queues.
1.1.4. If ‘Minimum Bandwidth’ does not equate to weight as a percentage, what are the relative weights of the queues, In the default condition, in the default condition,?
>>For example in a typical Cisco switch the default WRR weight of a queue is (2^queue number) making the relative weights of each (queue weight)/(sum of queue weights)
1.2. It seems counter intuitive to assign a minimum bandwidth to a strict queue, but I would be effectively setting a minimum of (total bandwidth – (sum of minimums)) in this scheme even if I didn’t actually assign a minimum. My interpretation of strict queuing is that when a packet is placed into a strict queue, scheduling of packets from WRR queues will cease, and the packet(s) in the strict priority queue will be transmitted. Is this is what is happening?
1.2.1. If so, what if any is the effect of my setting a weight on a Strict Queue?
1.2.2. Is the scenario in my question (above) true and there potential scenarios where the Strict Queue is bandwidth limited?
1.2.3. If not, why not? That’s what strict queuing is.
Thank you for your help