QOS on unstable link

Hello

I wish to do the following QOS: one WAN, two LANs. LAN1 gets 100Kbps guaranteed with low latency (highest proirity), LAN2 gets the rest with lowest priority.

This is rather simple to do if you know your total bandwidth. But here I got a 3G WLAN, with highly varying performance, from.. 500Kbps to 10Mbps, as the device is moving… Is there any way to achieve this ?

A possible approach would be to regularly measure available bandwidth, for example by using bandwidth test against another “fixed” routeros device across Internet, then make a script to readjust queues accordingly.

You can deploy a CHR instance at AWS or GCE (most cloud hosting companies offer a month for free) to use as the remote routeros instance for testing for example.

Yep thanks, i have been thinking about that, but there are two problems with this

  1. regular checking the full speed = data consumed = more $$ spent
  2. even an hourly check would not be enough, if the link goes 10Mbps-5Mbps-1Mbps-8Mbps within the hour, i would need to do even more regular checks → see point 1)

So that’s not a good solution in my case.

You could base the bandwidth estimation on signal levels reported from the 3G modem then. Another approach would be by using a GPS device to “predict” signal/bandwidth and change queues accordingly, though coding this on a ROS script may be challenging.

From RouterOS perspective there’s nothing else you can do, apart from setting the 100k to guarantee the VOIP service and leave the rest of traffic “as is”.

You’d need to implement an auxiliary infraestructure depending on your application that either measures or predicts bandwidths, either locally, or remotely centralized, that automatically connects to the roaming devices (via API, for example) and reprograms their queues.

Are you aware of the SXT-LTE? (http://routerboard.com/RBSXTLTE3-7)

I don’t know about your specific project or application, but could be a very useful device (if it does supports the bands used in your country, which looks like) in combination with some auxiliary “aids” like GPS aimed rotor…

Mhh in that case, what will happen to VOIP latency when the link will be saturated with Bob watching por.. I mean youtube? In my opinion, if I don’t actually limit Bob’s traffic, priorities won’t really work as expected, am I right?

Bob in his truck? :smiley:

Yep. You’ll had to QoS with the minimum predicted bandwidth available in mind, which wouldn’t be optimum at all.

you can only guarantee QoS if you are who are queuing the traffic

the moment ISP are queuing traffic your QoS is lost

i suggest you measure the typical changes on available bandwidth on different hours to adjust queues using scheduler or scripts

i think if your ISP fluctuates between 10mbps to 500k the service is not viable at all, you have to identify congested hours and forget to use voip at that hours

no magic will be solving this situation

is mi opinion based in my personal experience with 3g congested isp’s

Better forget about VoIP over 3G. Minimum 4G for acceptable VoIP.
(with acceptable I mean something you may want to sell and have to handle consumer complaints for)

What about: pinging every 5 seconds (for example) the VOIP target server.
If ping is above a fixed number (say, 300ms): reduce traffic limit on Bob’s interface by 200Kbps (for example)
if ping is below a fixed number (say, 100ms): increase traffic limit on Bob’s interface by 200Kbps
So this would be a almost-dynamic QOS?