What's new

FlexQoS FlexQoS 1.0 - Flexible QoS Enhancement Script for Adaptive QoS

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

I removed it and it solved the problem. Thanks! Sorry for the mistake i didnt know that 09**** would completely transfer netcontrol packets to wherever i direct them
I've been contemplating adding additional static appdb rules in the script to better handle this situation. Since you choose "Net Control" and not "category 09 of Net Control" it would be a better solution in the long-run to have unique tc filter rules at puts the designated marks in the original class. But it requires reworking the Tracked Connections logic again, which will take a little thought...
 
I removed it and it solved the problem. Thanks! Sorry for the mistake i didnt know that 09**** would completely all transfer netcontrol packets to wherever i direct them
I've been contemplating adding additional static appdb rules in the script to better handle this situation. Since you choose "Net Control" and not "category 09 of Net Control" it would be a better solution in the long-run to have unique tc filter rules at puts the designated marks in the original class. But it requires reworking the Tracked Connections logic again, which will take a little thought...
OK killah, if you want to test the develop branch by running flexqos develop you can see if the rules work correctly when you put your 09**** appdb rule back in place.
 
Convolution is how. My rabbit trail for mapping a device to a tc leaf class:
  1. Find the full mark for a device's connection in /proc/bw_cte_dump.
    Code:
    # grep \.245 /proc/bw_cte_dump | head -5
    ipv4 tcp src=192.168.1.245 dst=52.242.211.89 sport=62057 dport=443 index=7128 mark=825400a7
    ipv4 tcp src=192.168.1.245 dst=52.85.224.50 sport=62775 dport=443 index=7309 mark=8253005e
    ipv4 tcp src=192.168.1.245 dst=52.242.211.89 sport=62056 dport=443 index=6387 mark=825400a7
    ipv4 tcp src=192.168.1.245 dst=165.225.60.27 sport=62700 dport=443 index=7655 mark=824b0044
    ipv4 tcp src=192.168.1.245 dst=54.183.140.32 sport=62096 dport=443 index=7651 mark=825400b9
  2. From above, mark 8253005e and 824b0044 are hiding the device bits "24". The 25 is combined with the 1 from application mark 1400a7. Masks masks masks.
  3. Having this 24 number, search for the tc filter that checks this mask.
    Code:
    # tc filter show dev br0 parent 10: | grep 0x824000 -B1
    filter protocol all pref 137 u32 fh 80c::800 order 2048 key ht 80c bkt 0 flowid 10:10
    mark 0x82400000 0xffc00000 (success 101)
  4. Now we know that this device will be mapped to class 10:10 under the Net Control class 1:10.
  5. 10:10 has a priority of 2.
    Code:
    # tc class show dev br0 parent 10: | grep 10:10
    class htb 10:10 parent 10:1 leaf 1010: prio 2 rate 16Kbit overhead 18 ceil 322560Kbit burst 3200b cburst 403200b
My main concern while studying what was going on in these leaf classes was finding a flaw that would force any modified traffic into the default 256 sub-class because the previous hardcoded marks in the script would overwrite those bits and force that traffic into a prio 3 class when non-modified traffic might be flowing through a higher prio 2 class. So that was important to fix for performance when 2 devices are competing within the same top-level class. But now seeing that some devices will be 2 and some will be 3 leaves me puzzled.

Adaptive QoS is probably overcomplicated with its 8 categories, much like the CAKE users bemoan using 8 tins as too much.

I think one of my next to-dos is going to be re-creating Learn-From-Home by publishing AppDB rules that will allow ASUS' announced Learn-From-Home categories (from the original Release Notes) to be prioritized separately from Web Surfing and Streaming.
- Online learning, including Khan academy®, Udemy®, Coursera®, TED®, VIPKiD®, 51Talk®, XDF®, Xueersi®
- Indoor training, including Zwift®, Peloton®, Onelap®
At some point we start dancing on the head of a pin so once you dial in to the right bandwidth numbers, it should be relatively smooth sailing.

When I was IN college, you may have found me and my roommate downloading dirty GIFs from USENET using YMODEM-G from the campus VAX. I hope I'm not carbon dating myself too much...

That's OK, when I was a student VAX was not out. Back in the usenet days, nobody expected file transfers to go quickly :-}
 
Hello, I've just got this new ac66u b1 and install merlin on it. I've been reading about this adaptive qos and flexqos, but still confused.
My internet speed is only 30-6mbps. There's only 5 phone, 1 pc, and 2 laptop in my house. The main bandwidth hog is actually from pc and video streaming (youtube). Adaptive qos is perfectly fine for this.
BUT, I've decided to share my internet connection to my neighbor which is also my family. I've created a guest wifi, but haven't found a way to limit their internet speed. By using adaptive qos. Each internet packet is treat differently and will affect every client. What I want is the adaptive qos that is active on every client, but has limited speed only for those guest wifi. How can I achieve this?
If I just add their IP range to a separate class and give it the lowest priority, won't that every internet packet from those client will be treated equally based on that class?
In ddwrt I can achieve this easily. But it can't be applied on merlin because if I enable adaptive qos, bandwidth limiter is disabled.
Thank you.
 
Hello, I've just got this new ac66u b1 and install merlin on it. I've been reading about this adaptive qos and flexqos, but still confused.
My internet speed is only 30-6mbps. There's only 5 phone, 1 pc, and 2 laptop in my house. The main bandwidth hog is actually from pc and video streaming (youtube). Adaptive qos is perfectly fine for this.
BUT, I've decided to share my internet connection to my neighbor which is also my family. I've created a guest wifi, but haven't found a way to limit their internet speed. By using adaptive qos. Each internet packet is treat differently and will affect every client. What I want is the adaptive qos that is active on every client, but has limited speed only for those guest wifi. How can I achieve this?
If I just add their IP range to a separate class and give it the lowest priority, won't that every internet packet from those client will be treated equally based on that class?
In ddwrt I can achieve this easily. But it can't be applied on merlin because if I enable adaptive qos, bandwidth limiter is disabled.
Thank you.

Yes, if you use FLEXQOS and set there IP range to a low priority then they will only show down when it's necessary for other higher priority classes to function. Make shore to adjust the bandwidht for each class to achieve what you want.

Morris
 
Yes, if you use FLEXQOS and set there IP range to a low priority then they will only show down when it's necessary for other higher priority classes to function. Make shore to adjust the bandwidht for each class to achieve what you want.

Morris
Well yes, but that will throw them under a bus. Lets say a mis-categorised Steam download starts or a 4K YouTube video starts buffering - on that connection speed it's going to take a few seconds, during which their reduced priority craters all of their connections. Zoom, Skype, VOIP phone, email, websites? You're on hold for 5 or 10 seconds, maybe longer if retransmits are required. This could be frustrating for his family if they constantly have 30 second delays, or video chats simply don't work due to dropped packets. This is why Tomato's 10 buckets were great. I only ever needed 7-8 of them. You could throw extra ones near the top, but limit the bandwidth. So they can have a very high priority.... 10-15mbit. That way their stuff works well, but they are very effectively throttled. Even if you have a giant steam download or some torrents going, consuming most of your bandwidth, they still get speedy prompt packet delivery - with the tradeoff being they can only access a small fraction of your full speed. I feel that's a very fair way to implement it.

@ragerys You could try something like this:

1600630156662.png


You can see that I have VOIP and Gaming right at the top - stuff that is mission critical, but under minimal use. Right below that categories/buckets start to consume a lot more bandwidth. If you put your family member down below (near the bottom), and they are doing VOIP or Zoom or whatever, their packets can be dropped or buffered if your connection is fully loaded. They might have ping spikes up to several seconds if your connection is very heavily loaded. My lowest category often has 700ms ping spikes while the top ones typically only spike 20-30ms. This doesn't matter because of the traffic within the category, but I feel if you classify your family member down there, you're intentionally punishing them. Their internet will suck once your connection is full.

A quick concept: If two packets arrive at the same time, the higher priority one will go first - but in the case of bulk downloads (Torrents, Steam game downloads, etc.), a lot of the time you hit edge cases where packets arrive just *before* a VOIP or Gaming one. In that case, the low priority ones go out just before the higher priority ones arrive, and they end up waiting briefly. This manifests as higher but stable latency under heavy load. That can be really important for certain things - VOIP calls, gaming (if you hate rubber-banding / snapping backwards), Zoom/Skype, etc.

Do not classify all of your family member's traffic into one of the lowest categories unless you dislike them. You also can't let them strangle your most important stuff, though. Since you (apparently) can't use the Bandwidth Monitor device priority levels simultaneously with FlexQOS, I think the two possible places for their traffic (if laid out like mine) would be Web Surfing or Gaming, but with a lower (~50% or so) max speed limit. Since they are not prioritised lower than the super heavy use categories, their packets will take priority - up until their limit, after which all of your own rules and categories will take precedence for the remaining 50% bandwidth. You have access to 100% when they are not using any, but they are capped to 50% with slightly higher priority. Your connection will perform fine even if they are using theirs heavily, with it splitting roughly down the middle. Both of you get the benefit of QOS traffic shaping, but your whole connection somewhat fairly split, allocating around 50% each way under heavy load. (Tweak/adjust as necessary.) It is enforced by the higher priority level with a much lower speed cap. Putting him in Web Surfing though could have unintended side effects if you drop it to 50%, as some of your own usage shows up in there. A lot of web downloads show up under Other instead, but that doesn't matter - if you both are trying to do a "Web Surfing" thing, you will be robbing from him. It's easy to rob 50% accidentally, and then he only has 7.5mbit instead - but since it's split by the connection (not by the IP), if you just happen to send through more connections of that type, you could sometimes take even more of his bandwidth and choke him out. It is not too likely since he has more connections classified into there, but it could happen.

Putting him in Gaming solves that - unless of course you actually game. As then your gaming traffic is competing with all of his traffic, and you've limited the max bandwidth that the Gaming bucket can attain. That's a problem. While most games won't even use 5mbit let alone 15, there's tons of other things that he could do that will exceed that. If you happen to play games while he's doing something like Netflix/YouTube, and he is classified as Gaming, your gaming will suffer because of the 50% limit. Both of you will have dropped packets, but your actual gaming suffers from retransmits and rubber banding, while many other internet tasks simply won't notice.

So as you can see, there's no perfect solution here. The real solution is another empty unused bucket, sitting above Web Surfing and below Gaming. If it never gets classified into by AdaptiveQOS (just by your rule targeting his IPs), but you can order it and cap its speed, you can isolate his traffic and amount of bandwidth and keep it very fair. That's why Tomato's 10 were great. Empty categories are an asset - not a liability - for certain QOS / traffic shaping requirements. VOIP and Gaming would never approach 15mbit, so he'd always have his 40-50% allocation, and you'd always have your 50-100%.

Hope that helps in some way. :)
 
Dave is correct, packets are not prioritized that way. Even if they were, the high priority class would get out on the next frame well before the delay was felt.

You could guarantee the family a set amount of bandwidth by providing a class that is limited to a small amount say 5% yet high priority. This could still congest as can your too small link. I recommend that you set expectations and ask if they are willing to live with the limitations as it's about saving them some funds at a cost in experience.

Frankly I think you are setting your family up for an argument.

Morris
 
What assumptions are you making about the minimum guaranteed rate per class? Every class will get its guaranteed rate before excess bandwidth is doled out in priority order.
Correct. Which means you have to be careful having them too high for the less important categories.

Without knowing his exact usage pattern, it'll be hard or impossible to find optimal numbers, though if he responds we can go through some thought exercises. :) Keep in mind that we're dealing with a relatively slow connection (for the modern world anyway), which is a whole different beast from high speed QOS. When you can guarantee that most tasks/connections won't consume your entire line, you approach it a bit differently from if they're likely to. For one thing, you have the option of having minimums high enough for every task, on a high speed line. With lower speeds that isn't the case, so they need to be carefully tuned.
Dave is correct, packets are not prioritized that way. Even if they were, the high priority class would get out on the next frame well before the delay was felt.

You could guarantee the family a set amount of bandwidth by providing a class that is limited to a small amount say 5% yet high priority. This could still congest as can your too small link. I recommend that you set expectations and ask if they are willing to live with the limitations as it's about saving them some funds at a cost in experience.

Frankly I think you are setting your family up for an argument.

Morris
When single tasks can potentially consume your whole line (Netflix 4K, etc.) QOS has to be tackled a little differently. I cut my teeth on splitting a 6mbit ADSL1 connection in a household of four, with 3 gamers and 4 moderately heavy internet users. Even back then 500GB/mo of use was common. Had over a hundred rules back in the TomatoUSB days...

Getting away from his specific scenario to something more general:

The main problem is if the minimums sometimes can't be set high enough to actually handle important tasks for the user, so then you want to choke out less important ones. The only way to choke them is to have very low minimums on certain categories and very high ones on others - I mentioned 5mbit for gaming. The rare game uses a bit more today. 10-15 years back 3mbit was fine for gaming, but today it isn't. Now you'd want 5-10mbit per user. (Higher if you enjoy battle royale games with tons going on.) On his connection the minimums for VOIP + Gaming would have to be around 12-15mbit to ensure they always have enough bandwidth with multiple users. That's about 50% of the connection, but that's only if they actually play games. If streaming or downloads or some other combo of categories exceeds that 50% and he didn't set the minimums that high, there's a good chance it'll impact the VOIP and Gaming connections. Minimums prevent that for the critical stuff (to the user), and then priority levels balance it for everything else. But on a lower speed connection you often don't want it "fair" or "balanced".

You might not want Netflix 4K to consume the whole connection, but do want enough streaming bandwidth for two 720p YouTube streams. That'd be around 6mbit (2x 3mbit) - on a fully loaded connection the minimums will provide that guarantee even if priority levels won't, assuming if course that you can classify streams properly. I did it on Tomato by hitting all of Google's CDN subnets with 512KB+ rules that dumped them into Streaming. Streams would be mis-classified up until 512KB+, and the occasional Google service would be mis-classified after 512KB, but by and large it had the correct behaviour for the limited connection speed available. Some creativity was obviously required, and acceptance of the limitations...

Since his use appears to pretty much be a modern day equivalent - 30mbit is tight for a few simultaneous high bandwidth tasks - a few important tasks/categories could quickly eat away at it if he wants to guarantee available bandwidth to them. So we need him to respond with what he and his family actually do, to have a better idea of where minimums and priorities should be. Between the 3 of us we likely know what a good deal of internet services consume, so finding logical minimums should be possible.

But you do pretty much have to rely on priority levels when your logical minimums add up to way over your connection speed, since you can't exceed 100%. Though you can selectively use them on low priority stuff that you don't want choked completely. Ex: Email ports and the first 512KB of 80/443 connections always had minimum 512kbit allocated back on that 6mbit ADSL1, so that Email and websites would load in fast despite being near the bottom of the list priority wise... but other things like game downloads, larger HTTP downloads, steam downloads - I'd have them down at 1%, as low as they can go, so that they get choked out to make room for important connections. (Like Games, YouTube, and the aforementioned email/etc.) There were times where I had 3 or 4 downloads going in Firefox, nice and fast - then they'd pretty much pause around 512-600KB, downloading at under dialup speeds right after. That was proper behaviour to choke them out and allocate it where it was needed, mainly Games/VOIP/etc.; it was a necessary limitation/compromise because all of those tasks could've easily consumed 5x the amount of speed that we had available.

Hope that gets his thought juices going. If he chimes in with what his family uses the internet for, maybe the three of us can determine a logical order and minimums to make their primary tasks always speedy. :)

Did either of you have more ideas on how to work his family member into his existing rules? I'm curious how you would approach this. The short responses didn't convey much to me.
 
Last edited:
Thank you for the replies.
@Morris I should make this clear, my "neighbor" is not my direct family (which is my household), distant relatives is a better wording here. Also, I don't explicitly share my internet to them. I just leak my wifi password to them via my little brother. Then I realize this new additional users really cripple my old very cheap router. hence I bought this new one and properly set up guest network. I don't even know if they're sharing it to other people since I can't directly track all the client except my household (which I already set as static IP). I also point out that majority of them is children (junior-senior Highschool students). So thats why I really should limit their internet speed.

@BikeHelmet I'm living in 3rd world country (indonesia), that 30mbps is luxury here. All of my relatives is only using smartphone, while my household is using phone and laptop. The main uses cases for all of my client is only youtube, social media (instagram, tiktok), whatsapp for communications, and a few light mobile gaming (pubg mobile etc). Thats it, there's no fancy 4k netflix streaming, facetime or other mission critical task. The ones who really need high bandwidth is me (netflix, udemy, pc gaming, discord, file downloads) since I'm the only one who's using PC. And I really don't like it when I'm really focus studying on udemy and then suddenly my speed dropped hard because of them accessing tiktok and youtube.

So because of direct bandwidth limiter is not achievable with flexqos, my solution is put them in a class with limited bandwidth while still has high priority?

Edit: I also don't wanna put myself in highest priority because it will surely mess with my family (household). But I don't care as much if that'll slow down my relatives (neighbor) connection.
 
Last edited:
I've pushed another couple experiments to the develop branch for anyone willing to test them out:
  1. Now allow custom rate percentages as low as 1%. Was always 5% minimum in the FreshJR_QOS script.
  2. Recalculate burst and cburst when applying custom rates to ensure the HTB buckets are appropriately sized for the new rates.
  3. Always apply new quantum when modifying custom rates (old behavior would only apply quantum when it was large enough to cause the "quantum is big" messages).
  4. Set the minimum quantum at WAN MTU + 14 (this had been there before during beta but I removed it when someone reported an issue). Now the brave develop branch users can test it out.
If you want to try these experiments, run flexqos develop

If you switch but experience issues and you or your family members are panicking, return to the stable release with flexqos stable

Thanks.
 
So because of direct bandwidth limiter is not achievable with flexqos, my solution is put them in a class with limited bandwidth while still has high priority?
Do you have a reliable way to identify their devices by an IP range? Are you going to use YazFi to allocate a separate IP range for the Guest network?
 
Do you have a reliable way to identify their devices by an IP range? Are you going to use YazFi to allocate a separate IP range for the Guest network?
Yes. Outside of my household which I'm already assigned static IP, every other devices must be from my neighbour.
Originally, I use YazFi to separate it. But my neighbour devices don't show up in the adaptive qos menu. I don't know whether I didn't check it properly or my neighbour wasn't connected at that time.
So I set it to all of the dhcp range, the side effect is it affected every client in dhcp range. But its okay because the static IP I've assigned to is outside of that range.
 
hi dave so far so good with the dev branch giving it a whir to see what magic you have preformed this time.
 
I've pushed another couple experiments to the develop branch for anyone willing to test them out:
  1. Now allow custom rate percentages as low as 1%. Was always 5% minimum in the FreshJR_QOS script.
  2. Recalculate burst and cburst when applying custom rates to ensure the HTB buckets are appropriately sized for the new rates.
  3. Always apply new quantum when modifying custom rates (old behavior would only apply quantum when it was large enough to cause the "quantum is big" messages).
  4. Set the minimum quantum at WAN MTU + 14 (this had been there before during beta but I removed it when someone reported an issue). Now the brave develop branch users can test it out.
If you want to try these experiments, run flexqos develop

If you switch but experience issues and you or your family members are panicking, return to the stable release with flexqos stable

Thanks.
Set the minimum quantum at WAN MTU + 14 (this had been there before during beta but I removed it when someone reported an issue). Now the brave develop branch users can test it out.
does this mean the linux kernel adds 14 bytes of over head?
 
Had some strange FlexQOS stuff inside my log after disabling Trend Micro and the restart of my router.

Code:
Sep 21 09:01:52 FlexQoS: TC Modification delayed for 30 seconds
Sep 21 09:01:55 FlexQoS: Applying AppDB rules and TC rates
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
Sep 21 09:01:55 FlexQoS: Usage: ... qdisc add ... htb [default N] [r2q N]
Sep 21 09:01:55 FlexQoS:                       [direct_qlen P]
Sep 21 09:01:55 FlexQoS:  default  minor id of class to which unclassified packets are sent {0}
Sep 21 09:01:55 FlexQoS:  r2q      DRR quantums are computed as rate in Bps/r2q {10}
Sep 21 09:01:55 FlexQoS:  debug    string of 16 numbers each 0-3 {0}
Sep 21 09:01:55 FlexQoS:  direct_qlen  Limit of the direct queue {in packets}
Sep 21 09:01:55 FlexQoS: ... class add ... htb rate R1 [burst B1] [mpu B] [overhead O]
Sep 21 09:01:55 FlexQoS:                       [prio P] [slot S] [pslot PS]
Sep 21 09:01:55 FlexQoS:                       [ceil R2] [cburst B2] [mtu MTU] [quantum Q]
Sep 21 09:01:55 FlexQoS:  rate     rate allocated to this class (class can still borrow)
Sep 21 09:01:55 FlexQoS:  burst    max bytes burst which can be accumulated during idle period {computed}
Sep 21 09:01:55 FlexQoS:  mpu      minimum packet size used in rate computations
Sep 21 09:01:55 FlexQoS:  overhead per-packet size overhead used in rate computations
Sep 21 09:01:55 FlexQoS:  linklay  adapting to a linklayer e.g. atm
Sep 21 09:01:55 FlexQoS:  ceil     definite upper class rate (no borrows) {rate}
Sep 21 09:01:55 FlexQoS:  cburst   burst but for ceil {computed}
Sep 21 09:01:55 FlexQoS:  mtu      max packet size we create rate map for {1600}
Sep 21 09:01:55 FlexQoS:  prio     priority of leaf; lower are served first {0}
Sep 21 09:01:55 FlexQoS:  quantum  how much bytes to serve from leaf at once {use r2q}
Sep 21 09:01:55 FlexQoS: TC HTB version 3.3
Sep 21 09:01:55 FlexQoS: Command failed /tmp/flexqos_tcrules:21
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
Sep 21 09:01:55 FlexQoS: Usage: ... qdisc add ... htb [default N] [r2q N]
Sep 21 09:01:55 FlexQoS:                       [direct_qlen P]
Sep 21 09:01:55 FlexQoS:  default  minor id of class to which unclassified packets are sent {0}
Sep 21 09:01:55 FlexQoS:  r2q      DRR quantums are computed as rate in Bps/r2q {10}
Sep 21 09:01:55 FlexQoS:  debug    string of 16 numbers each 0-3 {0}
Sep 21 09:01:55 FlexQoS:  direct_qlen  Limit of the direct queue {in packets}
Sep 21 09:01:55 FlexQoS: ... class add ... htb rate R1 [burst B1] [mpu B] [overhead O]
Sep 21 09:01:55 FlexQoS:                       [prio P] [slot S] [pslot PS]
Sep 21 09:01:55 FlexQoS:                       [ceil R2] [cburst B2] [mtu MTU] [quantum Q]
Sep 21 09:01:55 FlexQoS:  rate     rate allocated to this class (class can still borrow)
Sep 21 09:01:55 FlexQoS:  burst    max bytes burst which can be accumulated during idle period {computed}
Sep 21 09:01:55 FlexQoS:  mpu      minimum packet size used in rate computations
Sep 21 09:01:55 FlexQoS:  overhead per-packet size overhead used in rate computations
Sep 21 09:01:55 FlexQoS:  linklay  adapting to a linklayer e.g. atm
Sep 21 09:01:55 FlexQoS:  ceil     definite upper class rate (no borrows) {rate}
Sep 21 09:01:55 FlexQoS:  cburst   burst but for ceil {computed}
Sep 21 09:01:55 FlexQoS:  mtu      max packet size we create rate map for {1600}
Sep 21 09:01:55 FlexQoS:  prio     priority of leaf; lower are served first {0}
Sep 21 09:01:55 FlexQoS:  quantum  how much bytes to serve from leaf at once {use r2q}
Sep 21 09:01:55 FlexQoS: TC HTB version 3.3
Sep 21 09:01:55 FlexQoS: Command failed /tmp/flexqos_tcrules:22
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
x bytes burst which can be accumulated during idle period {computed}
Sep 21 09:01:55 FlexQoS:  mpu      minimum packet size used in rate computations
Sep 21 09:01:55 FlexQoS:  overhead per-packet size overhead used in rate computations
Sep 21 09:01:55 FlexQoS:  linklay  adapting to a linklayer e.g. atm
Sep 21 09:01:55 FlexQoS:  ceil     definite upper class rate (no borrows) {rate}
Sep 21 09:01:55 FlexQoS:  cburst   burst but for ceil {computed}
Sep 21 09:01:55 FlexQoS:  mtu      max packet size we create rate map for {1600}
Sep 21 09:01:55 FlexQoS:  prio     priority of leaf; lower are served first {0}
Sep 21 09:01:55 FlexQoS:  quantum  how much bytes to serve from leaf at once {use r2q}
Sep 21 09:01:55 FlexQoS: TC HTB version 3.3
Sep 21 09:01:55 FlexQoS: Command failed /tmp/flexqos_tcrules:30
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
 
Had some strange FlexQOS stuff inside my log after disabling Trend Micro and the restart of my router.

Code:
Sep 21 09:01:52 FlexQoS: TC Modification delayed for 30 seconds
Sep 21 09:01:55 FlexQoS: Applying AppDB rules and TC rates
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
Sep 21 09:01:55 FlexQoS: Usage: ... qdisc add ... htb [default N] [r2q N]
Sep 21 09:01:55 FlexQoS:                       [direct_qlen P]
Sep 21 09:01:55 FlexQoS:  default  minor id of class to which unclassified packets are sent {0}
Sep 21 09:01:55 FlexQoS:  r2q      DRR quantums are computed as rate in Bps/r2q {10}
Sep 21 09:01:55 FlexQoS:  debug    string of 16 numbers each 0-3 {0}
Sep 21 09:01:55 FlexQoS:  direct_qlen  Limit of the direct queue {in packets}
Sep 21 09:01:55 FlexQoS: ... class add ... htb rate R1 [burst B1] [mpu B] [overhead O]
Sep 21 09:01:55 FlexQoS:                       [prio P] [slot S] [pslot PS]
Sep 21 09:01:55 FlexQoS:                       [ceil R2] [cburst B2] [mtu MTU] [quantum Q]
Sep 21 09:01:55 FlexQoS:  rate     rate allocated to this class (class can still borrow)
Sep 21 09:01:55 FlexQoS:  burst    max bytes burst which can be accumulated during idle period {computed}
Sep 21 09:01:55 FlexQoS:  mpu      minimum packet size used in rate computations
Sep 21 09:01:55 FlexQoS:  overhead per-packet size overhead used in rate computations
Sep 21 09:01:55 FlexQoS:  linklay  adapting to a linklayer e.g. atm
Sep 21 09:01:55 FlexQoS:  ceil     definite upper class rate (no borrows) {rate}
Sep 21 09:01:55 FlexQoS:  cburst   burst but for ceil {computed}
Sep 21 09:01:55 FlexQoS:  mtu      max packet size we create rate map for {1600}
Sep 21 09:01:55 FlexQoS:  prio     priority of leaf; lower are served first {0}
Sep 21 09:01:55 FlexQoS:  quantum  how much bytes to serve from leaf at once {use r2q}
Sep 21 09:01:55 FlexQoS: TC HTB version 3.3
Sep 21 09:01:55 FlexQoS: Command failed /tmp/flexqos_tcrules:21
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
Sep 21 09:01:55 FlexQoS: Usage: ... qdisc add ... htb [default N] [r2q N]
Sep 21 09:01:55 FlexQoS:                       [direct_qlen P]
Sep 21 09:01:55 FlexQoS:  default  minor id of class to which unclassified packets are sent {0}
Sep 21 09:01:55 FlexQoS:  r2q      DRR quantums are computed as rate in Bps/r2q {10}
Sep 21 09:01:55 FlexQoS:  debug    string of 16 numbers each 0-3 {0}
Sep 21 09:01:55 FlexQoS:  direct_qlen  Limit of the direct queue {in packets}
Sep 21 09:01:55 FlexQoS: ... class add ... htb rate R1 [burst B1] [mpu B] [overhead O]
Sep 21 09:01:55 FlexQoS:                       [prio P] [slot S] [pslot PS]
Sep 21 09:01:55 FlexQoS:                       [ceil R2] [cburst B2] [mtu MTU] [quantum Q]
Sep 21 09:01:55 FlexQoS:  rate     rate allocated to this class (class can still borrow)
Sep 21 09:01:55 FlexQoS:  burst    max bytes burst which can be accumulated during idle period {computed}
Sep 21 09:01:55 FlexQoS:  mpu      minimum packet size used in rate computations
Sep 21 09:01:55 FlexQoS:  overhead per-packet size overhead used in rate computations
Sep 21 09:01:55 FlexQoS:  linklay  adapting to a linklayer e.g. atm
Sep 21 09:01:55 FlexQoS:  ceil     definite upper class rate (no borrows) {rate}
Sep 21 09:01:55 FlexQoS:  cburst   burst but for ceil {computed}
Sep 21 09:01:55 FlexQoS:  mtu      max packet size we create rate map for {1600}
Sep 21 09:01:55 FlexQoS:  prio     priority of leaf; lower are served first {0}
Sep 21 09:01:55 FlexQoS:  quantum  how much bytes to serve from leaf at once {use r2q}
Sep 21 09:01:55 FlexQoS: TC HTB version 3.3
Sep 21 09:01:55 FlexQoS: Command failed /tmp/flexqos_tcrules:22
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
x bytes burst which can be accumulated during idle period {computed}
Sep 21 09:01:55 FlexQoS:  mpu      minimum packet size used in rate computations
Sep 21 09:01:55 FlexQoS:  overhead per-packet size overhead used in rate computations
Sep 21 09:01:55 FlexQoS:  linklay  adapting to a linklayer e.g. atm
Sep 21 09:01:55 FlexQoS:  ceil     definite upper class rate (no borrows) {rate}
Sep 21 09:01:55 FlexQoS:  cburst   burst but for ceil {computed}
Sep 21 09:01:55 FlexQoS:  mtu      max packet size we create rate map for {1600}
Sep 21 09:01:55 FlexQoS:  prio     priority of leaf; lower are served first {0}
Sep 21 09:01:55 FlexQoS:  quantum  how much bytes to serve from leaf at once {use r2q}
Sep 21 09:01:55 FlexQoS: TC HTB version 3.3
Sep 21 09:01:55 FlexQoS: Command failed /tmp/flexqos_tcrules:30
Sep 21 09:01:55 FlexQoS: Illegal "buffer"
flexqos needs asus adaptive qos to be enabled (which requires you to accept the trendmicro eula, iirc)
 
Had some strange FlexQOS stuff inside my log after disabling Trend Micro and the restart of my router.
Most likely your WAN interface name changed from eth0 to vlan2 after withdrawing Trend Micro EULA and rebooting. That’s not going to work since Adaptive QoS (and therefore FkexQoS) requires the Trend Micro DPI components enabled and part of NAT acceleration to be disabled.

To confirm, post the output of flexqos debug
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top