How to Configure QoS for Tomato Firmware – Part 1

This is just another basic tutorial by me to teach most of you guys on how to QoS properly. This is the first part. I’ll try to split it into several parts first. Of course if you want to write something good you can’t do it within a day or two. It takes time , especially the explanation part. I believe it would be wiser to explain how things work rather then just showing it to you. This way you’ll appreciate how it works totally and what you can do ! . If you are looking for software solution there is another entry that i’ve blogged about software QoS Solution . Psst , read more on how to configure the thingy , its a lengthy post so it would be better for me to stop it here and then you continue to read if you want to learn more about it !

my modem !
My Beloved Linksys WRT54-G

Shall we get started – Okay here goes nothing. First and foremost , there are several assumptions that has been made . I’ve assumed (no I am not making an ass out of you and me) that you are using a router which supports Tomato firmware with victek addon , your router IP Address is ( and you aren’t in a double NAT situation (i.e whereby your ISP assigns you a private IP Address rather then public IP address – double NAT causes more problem and its not recommended to do QoS on double NAT situations). For this case I’m not going in detail , I am just going to touch the surface first then I’ll get into details. This isn’t complete , I’ll post up once I’ve done writing for Part 2 and Part 3

Firstly go to the Qos settings in your router configuration ( ). Now you should see something like that I’ve posted below

The First check-box we have is Enable Qos. Obviously you’ll have to enable that otherwise QoS wouldn’t even work. Next up we have the abilitly to prioritise small traffic with some control flags. these control flags are part of the TCP packet structure (i.e how packets being sent across , etc). I wouldn’t go into in details on this as its a very complex subject. However I’ll try my best to translate it for you in simple English so that you’ll understand. For now just leave it as it is , we aren’t going to tweak any further , however for gamers ,by tweaking it with the right settings you may keep your latency stable while running peer-2-peer applications. Next up we have the Prioritize ICMP , what it does basically itprioritises ICMP requests , which is mainly ping requests. It is recommended to turn it off unless you’re running a game server whereby its important to maintain low level of ping for gamers to determine the latency , otherwise gamers might be pissed off and they will not play in your server saying that its laggy. By doing this , you are ensuring that ping requests will be the highest priority ! . Next up is we have “Re-classify all packets when changing settings” , what this does is basically reclassifies all the packets when you are changing settings , instead of you doing it manually the system does it for (nifty isn’t it) , but do keep in your mind friend that it adds load to the router which may cause it to slow down. I wouldn’t recommend you to tick it unless you’re lazy (like me , then by all means do it ) . So there we go , that wasn’t hard was it ?. Oh you may be wondering what is ACK , it stands for Acknowledgment packets , by setting that you’re actually prioritising acknowledgement packets. Still doesn’t make sense – Don’t worry I’ll explain in the next tutorial class !

Next up , we have to fill up on our upload and download information. This is the fun part (yeah the fun begins here) ,  now you’ll have to do couple of speed tests to determine your actual download speed. Go to speedtest and then run couple of tests from the recommended test server to determine your local link. It will show how fast your Internet connection can go. Run a couple of tests (2-3 tests) then average it out. That will be your maximum downlink and uplink speed. Alternatively , you may just make an assumption by setting your upload speed and download speed  to 75% of your subscribed speed. The key here is to put a desirablevalue for upload , that is the most crucial part of QoS , otherwise you wouldn’t get the true power of the Sith !  I mean Qos , that was a close part. Just make sure that you set your upload speed correctly. Next up we will have to assign the class speed , its recommended to leave it as it is , if you are the adventurous type then you may want to set your own value. This goes the same for download , it depends on your need – (how many users you are sharing with , your Internet connection speed , are there any users who would require bandwidth for gaming , VOIP applications , p2p applications ?). You should ask these questions yourself and get the answer so that you can fill it with the correct percentage of bandwidth allocation for each class. It takes a bit of trial and error

Router Configuration - QoS
Router Configuration - QoS (Click to Enlarge)

Anyhow there we go , untill then

I’ve Just updated , you can read part two here , by clicking this URL

5 thoughts on “How to Configure QoS for Tomato Firmware – Part 1”

  1. I am trying to check out how useful the Qos is in the Tomato implementation. I like to test these scenarios to ensure the Qos really works just as it should and not just some fancy GUI with overheads.
    Can you please help me chalk out few test cases where I can really see the Qos in action? example how do I see KAZA, BITTORRENT, FILE UPLOADS etc to pick up steam in throughput with Qos enabled? Any/every help is much appreciated!!

Leave a Reply

Your email address will not be published. Required fields are marked *

CommentLuv badge