Hi,
The examples and documentation that I’ve found for RouterOS quality of service and queuing, all seem to need a known bandwidth to be set either as the maximum for a given traffic class, or the max available on the interface. Are there any mechanisms that adapt to the rate that’s actually available at the time? In particular I was thinking of LTE applications where the available bandwidth can vary from time to time. For example let’s say I wanted to prioritise SIP on an LTE uplink, I don’t want to throttle other bandwidth to allow enough space for SIP, instead I’d want the device to preferentially transmit my priority traffic, either by choosing it’s queue preferentially if that’s how it works, or by high priority packets “jumping the queue” so to speak.
Thanks, Tony S
You could script a bandwidth test to run every X amount of time and adjust your master queue limits to that. I do not know how you would get it to set 90% of the measured bandwidth though (as you don’t want to set the full amount of speed for QoS)
FQ_CoDel will do this without too much input but it is not available on MT.
Thanks. That’s a little disappointing. I was hoping there was a mechanism that would let the interface run at line rate, sending each outgoing packet as soon as the preceding one had been transmitted. Even quite basic routers will do that.
I don’t see how that could work with traffic types such as UDP?
Strict priority levels should work on such interfaces. Use some mechanism (e.g. DSCP) to recognize the traffic and set the priority as a postrouting rule in the firewall mangle table.
When the LTE driver supports that, it should send the higher priority packets first.
The whole thing with queuing and specified rates (relative to a fixed maximum) is mainly required in the standard situation where you have a bottleneck further down the road.
E.g. you have a DSL modem capable of sending 20 Mbps but connected to your router via 100 or 1000 Mbps ethernet. Now, the router needs to limit the traffic to some rate to avoid overfilling the transmit queue in the modem.
But in case of a directly connected modem, like LTE cards, the router itself should be managing the transmit queue and use the priority field to “jump the queue” as you mention.
The current output rate is not required for that.
Thanks, I need to look into this a bit more. I don’t suppose you could link or show any examples where the bandwidth is unspecified?
/ip firewall mangle
add action=set-priority chain=postrouting new-priority=from-dscp-high-3-bits passthrough=yes