I want to configure my wAP ac in such way, that it will always guarantee desired amount of bandwidth for a specific TCP connection. I have 4 streams - high prio, medium prio, low prio and bulk.
All 4 streams are generated by iperf3 (run at full speed <=> send as much as you can). I am transferring data over 2.4GHz B-channel to simulate low available bandwidth (I get ~5.5-6Mbps).
Requirements:
1. I need that high prio streams always gets 3Mbps in every situation, even if max-limit is not reached.
2. Max-limit can not be set to 90% of the link capacity as everyone suggests, because I do not know the current max-limit of my connection. It can be 5Mbit, can also be 3 or 6depending on conditions.
3. At any point I want to use all of currently available Bandwidth, so "hard-limiting" my connection with a max-limit is not a solution
What I see is that if the max-limit is not reached, the available bandwidth is divided equally between all flows, not respecting the limit-at parameter. Hence, high prio stream does not get enough bandwidth, but low prio gets more than needed.
If I set max-limit to say 5M, everything is distributed correctly -> 3M to high prio, 500k to medium, etc..
After (a lot of ) experimenting with different configurations, reading wiki, forums I still can not get it right.
My packets are marked and classified correctly, appropriate counters increase in the Queue Tree Tab.
Hardware used:
# model = RBwAPG-5HacT2HnD
Current Queue Tree configuration:
Code: Select all
/queue tree
add max-limit=10M name=to-fr-parent parent=global
add limit-at=3M max-limit=10M name=to-fr-high-prio packet-mark=br-high-prio-to-fr-5150 parent=to-fr-parent priority=1 queue=default-small
add limit-at=1M max-limit=10M name=to-fr-low-prio packet-mark=br-low-to-fr-5170 parent=to-fr-parent queue=default-small
add limit-at=500k max-limit=10M name=to-fr-medium-prio packet-mark=br-medium-to-fr-5160 parent=to-fr-parent priority=4 queue=default-small
add limit-at=500k max-limit=10M name=to-fr-iperf packet-mark=iperf-to-fr-5101 parent=to-fr-parent queue=default-small
How can I make limit-at work even if my max-limit is not achieved? Is it possible to guarantee specific bandwidth to a specific stream at all times (considering there is enough physical bandwidth available)?
Thank You in advance