QoS - Simple Bandwidth limit?

Discussion in 'Tomato Firmware' started by James Newman, May 18, 2012.

  1. James Newman

    James Newman Serious Server Member

    I've read through toastman's really informative and long post on QoS, but I don't need that level of granular control.

    Is there any simple way to just set a global bandwidth limit for each static DHCP ip address/MAC address?

    For example, say my PC computer at, I want to give it just maximum 700kb/s download, 100kb/s upload. I don't care how that user uses the bandwidth allocation (p2p, email, etc) but just want to limit the overall bandwidth for that particular user.

    Also, say I wanted to block/limit bandwidth to 1kb/s for all non http/mail traffic, such as p2p activity from bittorent for a specific local IP address/mac address how can I do this?
  2. James Newman

    James Newman Serious Server Member

    It looks like older versions of Toastman had a IP/MAC BW Limiter... but I can't find that setting in the newest build. Did toastman get rid of the IP Bandwidth limiter?
  3. willpower101

    willpower101 Serious Server Member

    This forum is a ghost town.
    Can you tell me which version you used with simple IP based bandwidth monitoring? I desperately need this feature.
  4. James Newman

    James Newman Serious Server Member

    It looks like Toastman removed it a month ago... I found a forum post by him:

    The Bandwidth Limiter (which is in itself a full QOS system) is removed. Over the years all invocations of this have been very troublesome, and now we have better QOS I think it's outlived its usefulness. Frankly, I just got fed up with the complaints. If anyone wants it, they can easily compile it back themselves. Just revert the one commit that removed it.

    Bandwidth limit can instead be applied with normal QOS.

    I'm confused how to set the simple global bandwidth limits by QoS per IP. Anyone have any instructions?
  5. kthaddock

    kthaddock Network Guru Member

  6. James Newman

    James Newman Serious Server Member

    Toastman says this:

    You always could limit by MAC or IP, on all versions of QOS. That's essentially why I never used the BW Limiter myself, except for testing it .

    You need a rule, and a class to limit them in.

    e.g. Set a new rule with source IP's or MAC and give it a class. Then set both outgoing and incoming rate and ceiling for that class. Now you have much better control of the client, and full monitoring facilities, and everyone else is unaffected. I've been doing this for 4 years when necessary. I never used the BW limiter and I never had a moments trouble with it.

    But not sure exactly how to do this... If I turn on QoS, it seems to apply it to all the users. I just want to limit bandwidth for all users except certain IP addresses. Anyway to manage this?
  7. willpower101

    willpower101 Serious Server Member

    Just found that shibby has simple bandwidth limiting on it. (make sure you get the correct copy, the site is confusing, i'm on 092, k26, mega for a wrt320n -- I know I don't have usb but whatever.)
    Victek does too and seems to be really popular for it but his archive is down.
  8. Toastman

    Toastman Super Moderator Staff Member Member

    I removed it for reasons of stability. But I will reinstate a simplified version soon. It will not have the default limit for unlisted IP's which is what usually causes problems.
  9. Planiwa

    Planiwa Network Guru Member

    It seems to me that a minimalist and fair regime for up to 9 users might be set up thus:

    1. One rule per user, defining a separate class for each user. (Includes all devices for that user.)
    [2. (Remote) Admin user is #8. (optional)]
    [3. Unknown class is #9 -- for Dynamic DHCP. (optional)]
    [4. Default class is #10. All traffic that cannot be assigned to a user.]
    5. No other rules. Especially nothing about DNS! (or traffic volume).

    Basic Settings:
    1. Priorize no small packets
    2. Do not priorize ICMP
    3. No ingress QOS for UDP
    4. Each user gets a minimum of 10% and a maximum of 90%.
    5. Ditto for ingress.
    6. Default class is #10. (This may include a large portion of DNS).
    7. Set limits at 90% of low end measured rates. (or 75% of nominal rates).

    It seems to me that this simple scheme will divide the available bandwidth among the active users. Thus, if there is only one active user, that user gets 100%. Two users get 50% each, etc.

    Although the above is simple, there may be some (inescapable?) complications:

    There is the matter of the Qdisc setting. Should it not be irrelevant when QOS is enabled? (Qdisc is for classless scheduling and QOS sets up classses.) If Qdisc does apply, then all is lost, since both of sfq and pfifo are completely undermined by applications that create multiple connection flows. If Qdisc is only applied within each class, then we are fine, although this would seem pointless.

    Another matter concerns the notion that the classes are ranked in order, rather than as defined by the minimum and maximum resource (bandwidth) allocation.

    Perhaps someone who is familiar with the implementation of those items in Tomato could comment.
  10. Rocky Grim

    Rocky Grim Networkin' Nut Member

    @ Planiwa I'm going to give that a try. I don't really want to use QoS rules. I would rather have my clients use all available bandwidth to them. Therefore, this looks like a better option for me. This way when there is only one user active they will have full speed etc.

    Is there no way to edit class names now? I know it use to be possible. Now I'm not seeing a way to do it though. Anyone have any suggestions?
  11. Planiwa

    Planiwa Network Guru Member

    nvram set qos_classnames="Tahi Rua Toru Wha Rima Ono Whitu Admin Default Unknown"

    Or Web UI -- QOS Basic Settings -- Class Names.

    I've edited my previous message slightly . . . it is well worth reading (again).
  12. Toastman

    Toastman Super Moderator Staff Member Member

    QOS classnames should still be there, same place.
  13. Planiwa

    Planiwa Network Guru Member

    Synchronicity . . . :)
  14. shibby20

    shibby20 Network Guru Member

    Can you explain?

    I have 3 vlans (br0/br1/br2) with active limiter for each bridge:
    - br0 - company network
    - br1 - home network
    - br2 - guests network

    All classess (including default class for unlisted ip`s) works correct.

    Best Regards!
  15. xtacydima

    xtacydima LI Guru Member

    Just saw this now, wow this really made my day... anxious to see what you will cook up
    Thanks for all the hard work and dedication!!!
  16. Rocky Grim

    Rocky Grim Networkin' Nut Member

    It no longer allows you to edit the QoS rules via the GUI. I have tried and I can't find any way to do it anymore. Is there any other way?
  17. Planiwa

    Planiwa Network Guru Member

    It may be useful to state such particulars as:

    1. your browser
    2. your Tomato firmware
    3. which particular tomato page
    4. what you expected to see
    5. what you saw
    6. what you tried
    7. what you found

    I doubt that Tomato "no longer allows you to edit the QoS rules via the GUI".

    I do know that some browser (setting)s will keep some Tomato GUI functions from working -- things like blocking pop-ups, etc.

    Yes, there is another way. One could try this for a start, and take it from there:

    nvram find qos_orules
    It's probably much easier to check and change browsers or browser settings.
  18. Elfew

    Elfew Network Guru Member

    If you want Bw limiter use Shibby mod! It is perfect (v92 AIO on my RT-16N)
  19. Rocky Grim

    Rocky Grim Networkin' Nut Member

    @ Planiwa I know it use too and I use to do it all the time. I am using Firefox now. I have tried with both Shibby and Toastman's latest builds. You use to be able to just click in the boxes and edit them. However, now I don't see a way to do it anymore by simply clicking in the box to edit them. I could be missing something though. Is anyone else experiencing this same issue? Could you explain the way to edit them the other way?
  20. kthaddock

    kthaddock Network Guru Member

  21. Rocky Grim

    Rocky Grim Networkin' Nut Member

    Yep thats what I mean. It will then show a list of QoS Class names. This is where I use to be able to click in the boxes to edit them. However, now it won't let me.
  22. kthaddock

    kthaddock Network Guru Member

    Hmm and you have turned on: Enable QoS
    first ?
  23. Rocky Grim

    Rocky Grim Networkin' Nut Member

    lol maybe thats the problem hahaha let me check and see. That was the problem lol. I didn't know it had to be enabled to edit them. I figured it was something I was forgetting to do. However, I know there was changes made. I didn't know if that was one of them or not. Thanks for your help.
  24. Elfew

    Elfew Network Guru Member

    use google chrome... I dont have any issue
  25. kthaddock

    kthaddock Network Guru Member

    Lol glad you have it working.
  26. Rocky Grim

    Rocky Grim Networkin' Nut Member

    I'm going to divide my clients up as Planiwa explained above. I would like to find some way where if there is only one client online or the bandwidth is available that any given client will use all available bandwidth.
  27. Elfew

    Elfew Network Guru Member

    Let us know when you finish your research :) I need this feature too
  28. Hyram

    Hyram Serious Server Member

    Oh, thank god! That's the main reason why I switched to your mod in the first place! Imagine my disappointment when I came looking for something a bit newer than 7454 (which, I might add, has been a sterling performer the past fifteen months) only to find the brickwall limiter was gone. I'm back on 7454 now.

    For my needs, I have one machine on my LAN which absolutely positively has to have a low but guaranteed-uninterrupted amount of available bandwidth both up and down (I run a radiostream). Everything else on the LAN was general purpose, so I used the BWLimiter to slice the available IP subnet into two, x.1.3 being the streamsource as highest priority with defined minimums and ceilings, and x.1.4 to x.1.255 the lowest. This works flawlessly, and the standard QoS service is inactive.

    (Before Tomato, I had to rely on installing NetLimiter onto all h other machines to curb their traffic demands, but then we started adding Macs and they don't have any available method of locally restricting network traffic. I struggled to master the standard QoS with your earlier builds but to me, it was just insanely complex. Still is, frankly. What I dearly miss is the brckwall-prioritise-by-ethernet-jack system my old Billion modem had in it, but my understanding of modern consumerrouters is that they don't extend control out to individual physical connections any more.)
    anupa likes this.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice