Throttling Devices

Is there a package included with the stock OpenWrt firmware that has a GUI to set throttling by IP or MAC address?

If not - how challenging is it to install a package that has a GUI to set up throttling?

Additional information:

  1. This is a specific use case to throttle video streaming devices attached to TVs that automatically default to the highest bitrate available. This user has a big pipe but is capped at 200GB and the overages are nearly $1 per GB! Dynamic QoS will not work.

  2. I'm helping a relative that isn't tech savvy so doing this via a script will difficult unless it is a simple copy/paste.

How will a speed throttle help against download limit (200 GB) ? May be, I misunderstood something, please explain. And: Is it http(s) traffic only, or any type ?

1 Like

I want to throttle the devices to 3Mbps to force them to use a lower quality stream which uses less data per hour. I want to throttle ALL data types for these devices.

Although some type of overkill, coova-chilli (captive portal) also includes download speed throttle. In your case, MAC-auth will avoid CP-login. Drawback: Needs Radius to control the throttle/MAC . No GUI, besides phpmyadmin to modify Radius- pars in DB or editor, to modify radius.user config file (no DB used). You might also look into other CP .

1 Like

So there is no packaged installed as part of the stock firmware that throttles via a GUI?

No , AFAIK. Download throttle is not so simple, compared to upload throttle. But your question triggered some commercial idea for me, thanx :slight_smile:

1 Like

Sorry, there is some basic GUI for coova-chilli, I think. But dunno whether good enough to modify speed limits.

1 Like

I believe the nft-qos packet might be what you are looking for. Good luck!

1 Like

Thank you, this is exactly what I'm looking for.

Unfortunately I can't find this package in the depot and I'm not the only one.

Would one of the experts here please point me in the right direction. Sorry for the noob lameness!

1 Like

I believe that nft-qos will be part of the ready to be released real soon now OpenWrt 19.07. So maybe waiting a few weeks might solve your problem, or biting the bullet and installing the current 19.07-rc2, the second release candidate for 19.07.
Please note, that I never tried that package, so I have no real experience to report.

1 Like

Unfortunately waiting isn't an option. Is there a way to install in the current version?

If the TV is wired you could set up a VLAN and network only for it then do a conventional per-network SQM throttle. That would be the same as per-device throttle when there is only one device in the network.

1 Like

Well, yes, just follow the links towards 19.07-rc2 on


1 Like

Sorry for being lame with my quest for help. I'm asking if there is a way to install ntf-qos on the current version of openwrt. I can't find the package in the depot.

If you're asking to take the 19.07rc2 version of nft-qos and install it on your running 18.06.5, that will not work. Since it interacts with the kernel, you have to match the OS version exactly. So upgrade to 19.07rc2 first.

1 Like

nft-qos has been around for a while. How does one find the package that will work with 18.06.5?

Unfortunately, that is not a real option, as you will need to build 18.06 from source and patch the missing parts, like kernelodules, libraries and applications in yourself. If you are prepared to do that, IMHO you would be better off to built a current snapshot from OpenWrt master which tends to be amazingly stable. In reality the current 19.07 release candidates also seem reasonably stable, so in your shoes I would probably go that route...

Good luck.

are you saying the device does not allow for manual selection of quality?

i just had a look at nft-qos and while there maybe some legitimate usecases, i can see espicially the 'dynamic limit' creating a lot of havoc for unsuspicious newbros. this looks like the re-invention of the wooden wheel.

1 Like

I guess n his case a 'static limit' would be the correct solution, but whether it will work well with streaming is a different question, as streaming typically is not smoothly paced at the desired rate, but batched, so the server tries to send, say the next 10 seconds worth of video as fast as possible and then fall quiet again. The time required to fill the buffer then is used (partly) to select the appropriate video quality, so to make a server send at an average of 3 Mbps one probably needs to set the limit higher, but that requires trial and error and will depend on the server side heuristics as well, in other words that probably needs to be monitored and adjusted.