1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice

Welcome To SNBForums

SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.

If you'd like to post a question, simply register and have at it!

While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!

[Release] FreshJR Adaptive QOS (Improvements / Custom Rules / and Inner workings)

Discussion in 'Asuswrt-Merlin' started by FreshJR, Jan 12, 2017.

  1. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    Welcome to FreshJR's Adaptive QOS modification script!

    Issues with Adaptive QoS:
    Adaptive QOS works amazing, but I have decided to tweak it as I have a few issues with its performance out of the box.
    Some of the issues are as follows:

    Issue 1:
    The first issue is caused by the traffic groups. More specifically, the issue is caused by the existence of the default category. Unidentified traffic goes to the Default category. I would like it to go to Others instead.

    If you go to the QOS statistics, it shows you your traffic priorities and the last 3 seconds of each categories utilization. My setup is as follows.

    Class Total Rate Packet rate
    • Net Control Packets
    • VoIP and Instant Messaging
    • Gaming
    • Others
    • Web Surfing
    • Video and Audio Streaming
    • File Transferring
    • Default
    The issue is that VOIP, like wifi calling and facetime is currently unidentified. This will make it fall to the last category.

    This will cause correctly identified traffic like neflix, youtube, filedownloads, torrents, and web surfing to ALL have greater priority than my poor old VOIP traffic. I wanted to have VOIP get first priority, but it seems to be getting the wrong end of the stick.

    This negative effect extends to poor gaming performance as well. Many games are undetected and will also get the same wrong end of the stick.

    It's a shame that the default category does not have adjustable priority. My scripts fixes that! A workaround I have performed is to route unidentified traffic into the rarely used, but webUI adjustable, Others category. With this you can punish known bandwidth hogs to give them worse priority than unknown traffic. Use as desired!

    Issue 2:
    The largest issue with Asus's implementation of QOS is with their rate/ceil class values.

    UPDATE: I am happy to say Asus partially addressed the poorly configured rates in v382 and up! This is a step in the right direction, but I still do not find their new configuration optimal.

    The QOS categories each have an individual rate/ceil defined.

    So what is this rate or ceil you may ask?

    Rate = Minimum reserved bandwidth for a QOS container
    Ceiling = Maximum bandwidth allowed for a QOS container

    Note in this post: QOS container = QOS category = QOS Class. I will be using all terms interchangeably
    To understand how this could be a problem you have to know how rate/ciel work in practice. Here's a summary.

    Available bandwidth goes to container 1 until it hits rate. Then it will go to container 2 until rate, and so on up to container 7. At this point there will be a lot of unused bandwidth available. This bandwidth will go back to container 1 until it hits its ceil, then container 2 until ceil, and so on up to container 7. No bandwidth is wasted!

    Lets look at some examples, with a 100 mbps connection for easy numbers.

    Example Setup 1 (Okay):
    Code:
    Downloads       container 1     40 mbps rate / 100 mbps ciel      1000 mbps supplied by server.
    Web Surfing     container 2     10 mbps rate / 100 mbps ciel      5 mbps needed
    Streaming       container 3     20 mbps rate / 100 mbps ciel      30 mbps video stream
    
    What would happen is as follows:
    
    Downloads     75 mbps
    Web Surfing   5   mbp
    Streaming     20  mbps   <--- Suffering because of download priority
    
    Bad setup in my opinion because I do not agree in reducing streaming quality to speed up a file transfer.
    This is a non issue since it is a preference setup by the user.  They deem whats appropriate.
    

    Example Setup 2 (GOOD):

    Code:
    Same as above but with better container priorities
    
    Web Surfing     container 1      10 mbps rate / 100 mbps ciel    5mbps needed
    Streaming       container 2      20 mbps rate / 100 mbps ciel    30mbps video stream
    Downloads       container 3      40 mbps rate / 100 mbps ciel    1000 mbps supplied by server.
    
    What would happen is as follows:
    
    Web Surfing    5mbps used
    Streaming      30mbps used
    Downloads      65mbps used <-- Bandwidth taken from here if needed
    
    Optimal setup in my opinion since every category has reasonable guaranteed bandwidth, same as the last setup.
    The difference is that excess bandwidth is offered to categories in a logical order for my usage.
    
    Example Setup 3 (TERRIBLE):
    Code:
    Same as above but different is container rates (128 kbps each =  0.128 mbps)
    
    Web Surfing     container 1      0.128 mbps rate / 100 mbps ciel     5 mbps needed
    Downloads       container 2      0.128 mbps rate / 100 mbps ciel     1000 mbps supplied by server.
    Streaming       container 3      0.128 mbps rate / 100 mbps ciel     30 mbps video stream
    VOIP            container 4      0.128 mbps rate / 100 mbps ciel     2 mbps voice
    Gaming          container 5      0.128 mbps rate / 100 mbps ciel     1 mbps gaming
    
    What would happen is as follows:
    
    Web Surfing   5 mbps used
    Downloads     94.6 mbps used
    Streaming     0.128 mbps used <- DEAD
    VOIP          0.128 mbps used <- DEAD
    Gaming        0.128 mbps used <- DEAD
    
    Terrible setup in my opinion.
    I would never want traffic in any category to completely stall.
    There are no user options to correct this.
    
    I will leave it up to your imagination as to who implemented a 0.128 mbps guaranteed rate per QOS container. They have the knobs to adjust these numbers but instead decided not to allow users to adjust them while themselves messing up the initial positions.

    In my script these rates are defined as percentages of total download bandwidth and are adjustable to your liking. This means no matter how much the network is constrained, various types of traffic should still flow.

    There is one issue still outstanding that bugs me. Inside each container, that traffic has to go through the rate/ciel process again to divide up the available traffic per device requesting it. Once again, a certain manufacturer has setup guaranteed rates of 0.128 mbps per LAN client. This can lead to a situation where one user eats all the bandwidth within a container and starves everyone else if viewing a fast enough data source.

    As a result, I only recommend "default" device priority so everyone get's a sane allotment of bandwidth.
    Issue 3:
    No lengthy write up here. The issue is that we cannot create custom rules to fit any additional needs or deficiencies with the traffic definitions database!

    Overview of FreshJR QoS:
    The script builds on-top of adaptive QoS and brings various improvements to the underlying parameters and logic.


    Unidentified traffic priority is now adjustable in relation to other traffic groups.​

    Rates have been modified into more optimal defaults.

    Identified traffic can have its destination adjusted​

    Custom rules can be created by filtering on a variety of elements.

    Results of modifications can be seen in the tracked connections table.

    Improvements for Gaming along with a gaming rule can be applied to user-specified devices.

    Qos can be left alone and function great with improved defaults.

    Qos can be extensively customized if you have specific needs.
    FreshJR QOS v8.8
    (released 03/07/2019)

    [​IMG]
    Script Changes Unidentified traffic destination away from "Defaults" into "Others"
    Script Changes HTTPS traffic destination away from "Net Control" into "Web Surfing"
    Script Changes Guaranteed Bandwidth per QOS category into logical percentages of upload and download.

    Script Repurposes "Defaults" to contain "Game Downloads"
    "Game Downloads" container moved into 6th position
    "Lowest Defined" container moved into 7th position

    Script includes misc hardcoded rules
    (Wifi Calling) - UDP traffic on remote ports 500 & 4500 moved into VOIP
    (Facetime) - UDP traffic on local ports 16384 - 16415 moved into VOIP
    (Usenet) - TCP traffic on remote ports 119 & 563 moved into Downloads
    (Gaming) - Gaming TCP traffic from remote ports 80 & 443 moved into Game Downloads.
    (Snapchat) - Moved into Others
    (Speedtest.net) - Moved into Downloads
    (Google Play) - Moved into Downloads
    (Apple AppStore)- Moved into Downloads
    (Advertisement) - Moved into Downloads
    (VPN Fix) - Router VPN Client upload traffic moved into Downloads instead of whitelisted
    (VPN Fix) - Router VPN Client download traffic moved into Downloads instead of showing up in Uploads
    (Gaming) - Unidentified traffic for specified devices, not originating from ports 80/443, moved into "Gaming"

    Gaming Rule Note
    Gaming traffic originating from ports 80 & 443 is primarily downloads & patches (some lobby/login protocols mixed within)
    Manually configurable rule will take untracked traffic, not originating from 80/443, for specified devices and place it into Gaming
    Use of this gaming rule REQUIRES devices to have a continous static ip assignment && this range needs to be defined in the script
     
    Last edited: Mar 8, 2019
    sentinelvdx, Fnz, L&LD and 53 others like this.
  2. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    Installing:

    This following installation procedure is only applicable to users running RMerlin firmware.

    In your router you need Custom Scripts & SSH enabled.
    Code:
    (1) Administration -> System -> Enable JFFS custom scripts and configs -> YES -> Apply
    
    (2) Administration -> System -> Enable SSH -> LAN Only -> Apply
        You can disable SSH after installation if you do not want to leave it available for security reasons.
    
    For users on original AsusWRT firmware follow the manual install procedure at the end of this post. Read the technical notes for additional requirements.

    Windows - Easy (1-line) Install :
    1) Open Putty and connect to your router by IP
    2) Paste the command below and press enter
    Code:
    curl "https://raw.githubusercontent.com/FreshJR07/FreshJR_QOS/master/FreshJR_QOS.sh" -o /jffs/scripts/FreshJR_QOS --create-dirs && curl "https://raw.githubusercontent.com/FreshJR07/FreshJR_QOS/master/FreshJR_QoS_Stats.asp" -o /jffs/scripts/www_FreshJR_QoS_Stats.asp && sh /jffs/scripts/FreshJR_QOS -install
    
    3) Enable or Restart QOS for changes to take effect​

    Mac/Linux - Easy (1-line) Install :

    1) Open Terminal and type in (changing both the username and IP to match your router)
    Code:
    ssh [email protected]
    
    2) Paste the command below and then press enter
    Code:
    curl "https://raw.githubusercontent.com/FreshJR07/FreshJR_QOS/master/FreshJR_QOS.sh" -o /jffs/scripts/FreshJR_QOS --create-dirs && curl "https://raw.githubusercontent.com/FreshJR07/FreshJR_QOS/master/FreshJR_QoS_Stats.asp" -o /jffs/scripts/www_FreshJR_QoS_Stats.asp && sh /jffs/scripts/FreshJR_QOS -install
    
    3) Enable or Restart QOS for changes to take effect​

    QOS Recommended Setup:


    1) Use manual bandwidth with limits set to 85-95% of your non-throttled speedtest results

    To zone in on the ideal bandwidth within this range you need to be aware of these relations while testing with DSLreports Speedtest:

    If you are getting poor bufferbloat grade, reduce WebUI speeds
    If you are getting poor quality, increase WebUI speeds.

    With these effects in mind, zero in on the ideal speed to get highest overall grade as quality/bufferbloat have an inverse relationship.
    Always perform testing without other network activity so the results are consistent and not skewed.​
    Note: Do not use the Automatic bandwidth setting. It does not work !

    2) Keep all devices at default priority.

    Individual device priority is adjustable under the "Bandwidth Monitor" tab of adaptive QoS.
    Traffic allotted between devices of different categories does not produce sane results. As a result, keep all devices default priority.

    Dedicated VOIP lines are an exception and you can place them as high priority.
    (By this I mean real dedicated VOIP lines and not a multi-purpose device like your cellphone)
    3) I recommend the following QOS traffic priority list.

    VoIP
    Gaming
    Others
    Web Surfing
    Video and Audio Streaming
    File Transfers

    Keep in mind that "Unidentified traffic" will flow into "Others" with this script.
    4) sfq vs fq-codel ?

    I perfer the performance of fq-codel, but feel free to experiment in this area.

    Here are some results of my testing.

    - I get a significantly faster RAMP to max defined speed (a signature trait of CoDel) compared to sfq.
    - The initial bufferbloat spikes are reduced significantly faster with Fq-CoDel.
    - My bufferbloat is +10-20ms above average with Fq-Codel, vs +20-40ms with sfq.

    Results:

    [​IMG]

    [​IMG]


    5) (Optional) Enabling the Gaming Oriented Rule
    The optional gaming rule requires your console devices:

    1) to have a static IP assignment in Asus WebUI.
    1. Go to Router home page
    2. Click "LAN" on the left hand side
    3. Scroll down to "Manually Assigned IP around the DHCP list (Max Limit : 128)"
    4. Find your gaming devices in the drop down list and manually assign IP's
    2) this CIDR IP range of your gaming consoles has to be passed into the script.

    [​IMG]

    Uninstalling FreshJR QOS:


    An uninstall is NOT needed between updates.
    If you wish to remove FreshJR_QOS completely from your router use the following command:

    Code:
    /jffs/scripts/FreshJR_QOS -uninstall
    

    Alternative (Manual) Install:

    For a manual install you will have to download the script files onto your computer.


    Windows - Manual Install
    Windows users will also need download putty and pscp and place those executables into the folder containing the script files.

    The folder should look like this

    Code:
    C:\FreshJR_QOS\FreshJR_QOS.sh
    C:\FreshJR_QOS\FreshJR_QoS_Stats.asp
    C:\FreshJR_QOS\Manual Install - Windows - FreshJR QOS.bat
    C:\FreshJR_QOS\putty.exe
    C:\FreshJR_QOS\pscp.exe
    
    Once it does, you can simply open the "Manual Install" file and follow the instructions
    Mac - Manual Install
    Simply run "Manual Install" file within the extracted script files folder.​

    Linux - Manual Install

    General procedure for a manual install using the terminal
    Code:
    ssh [email protected]
    mkdir /jffs/scripts/
    exit
    
    scp /source_directory/FreshJR_QOS.sh [email protected]:/jffs/scripts/FreshJR_QOS
    scp /source_directory/FreshJR_QoS_Stats.asp [email protected]:/jffs/scripts/www_FreshJR_QoS_Stats.asp
    
    
    ssh [email protected]
    dos2unix /jffs/scripts/FreshJR_QOS
    sh /jffs/scripts/FreshJR_QOS -install
    exit
    
    
    Mote: User specific parameters used in the commands above have to be modified
    - username (admin) and IP (192.168.1.1) have to be changed to match those of your router.
    - the source directory be changed to point to where you have downloaded the files​


    Script Technical Notes:

    The script runs 5 minutes after any QOS settings have been initiated in the webUI.
    All custom settings in the script are applied after this wait period, with script status shown in the system log.

    It is possible to trigger a QOS environment reset without triggering the script’s subsequent modifications.
    Some examples of this are checking for QOS definition updates or changing AiProtect settings in the webUI.

    To overcome this, the script runs a persistence check everyday at 3:30 am to see if it has to be reapplied.

    Script modifications get reset when WebUI changes are made (normal behavior).
    For AsusWRT users it is not possible to trigger the script after WebUI changes.
    As a workaround, the script is triggered on usb/thumb/flashdrive mount.

    If using Stock / Default / Unmodified AsusWRT, you will have to leave a flash drive attached to the router 24/7.

    After making WebUI changes, the script will remain off until it’s daily check at 3:30AM or until system reboot
     
    Last edited: Mar 7, 2019
    randomName, indark, iaTa and 28 others like this.
  3. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    -------------- DONATIONS / SUPPORTING THIS PROJECT ---------------

    If this project has helped your internet experience then I am simply glad my work has provided benefit.
    If you would like to show your support then I would gladly accept a virtual beer/coffee via PayPal or Cryptocurrency.
    I have drank more than a fair share of each while supporting and developing this project. Hope you enjoy.

    Payal: paypal.me/FreshJR
    BTC:

    Thanks!
    #chris.at #Oleg Eremenko #Lacrocious #kernol #Therion87 #Stephen Harrington #Milan
    8LR18056RJ454181S + 1XG021192S3156702 + 0KC56779VF9744401 (send pm if unidentified)

    --------------COMMONLY ASKED QUESTIONS---------------

    1) How do I know the script/QOS is working?


    Execute

    Code:
    /jffs/scripts/FreshJR_QOS -debug
    
    and make sure

    Undf Prio is NOT 1:17

    2) How do identify IP's & Ports for use with Custom rules?

    Study the tracked connection table for patterns or follow this link for a detailed explanation between local & remote ports / ips and getting familiar with typically used numbers.


    3) What is a CIDR IP range?

    IP ranges used in iptable rules are defined with CIDR notation.

    The easiest way to see how different parameters will take effect is to google a CIDR calculators and see what ranges open per the inputted syntax.

    Example:

    Code:
    192.168.1.100/32 = 192.168.6.100 - 192.168.6.100
    192.168.1.100/30 = 192.168.6.100 - 192.168.6.103
    192.168.1.100/28 = 192.168.1.96 - 192.168.1.111
    
    
    4) In what order do custom rules take precedence?

    Rule on top of this list override rules towards bottom of this list

    Iptable -- 4th position
    Iptable -- 3rd position
    Iptable -- 2nd position
    Iptable -- 1rst position
    Iptable hardcoded
    Appdb -- 4th position
    Appdb -- 3rd position
    Appdb -- 2nd position
    Appdb -- 1rst position
    Appdb hardcoded
    5) Is this an issue?

    Code:
    HTB: quantum of class 10016 is big. Consider r2q change.
    
    No​

    6) Is this an issue?

    Code:
    ERR[parse_qos_conf:932] Can't set new QoS conf while QoS is started!
    ERR[ioctl_iqos_op_config:3592] parse qos_conf error!!
    ioctl_iqos_op_config() fail!
    ERR[qos_start:3344] QoS is already started!
    ioctl_iqos_op_switch(1) fail!
    
    Not unless the errors are continuously looping without stopping​


    ------------ADDITIONAL MISC INFORMATION------------

    License
    FreshJR_QOS is free to use under the GNU General Public License, version 3 (GPL-3.0).
    https://opensource.org/licenses/GPL-3.0

    Copyright (C) 2017-2019 FreshJR - All Rights Reserved

    Tested with ASUS AC-68U, FW384.9, using Adaptive QOS with Manual Bandwidth Settings


    App Database

    The entire qos app database can be viewed via

    Code:
    cat /tmp/bwdpi/bwdpi.app.db
    
    The app.db has marks identified via decimal numbers, while TC uses hex.
    Some conversion is necessary if crossreference, but a quick reference table has been attached.

    Code:
    pref 1         LAN               mark 0x0000
    pref 2         DEFAULT           mark 0x8000
    pref 3         VOIP              mark 0x8000       (0)
    pref 4         DOWNLOADS         mark 0x8001       (1)
    pref 6         DOWNLOADS         mark 0x8003       (3)
    pref 7         STREAMING         mark 0x8004       (4)
    pref 8         VOIP              mark 0x8005       (5)
    pref 9         VOIP              mark 0x8006       (6)
    pref 10        OTHERS            mark 0x8007       (7)
    pref 11        GAMING            mark 0x8008       (8)
    pref 12        NET               mark 0x8009       (9)
    pref 13        OTHERS            mark 0x800a       (10)
    pref 14        OTHERS            mark 0x800b       (11)
    pref 15        STREAMING         mark 0x800c       (12)
    pref 16        WEB               mark 0x800d       (13)
    pref 17        DOWNLOADS         mark 0x800e       (14)
    pref 18        VOIP              mark 0x800f       (15)
    pref 20        VOIP              mark 0x8011       (17)
    pref 21        NET               mark 0x8012       (18)
    pref 22        NET               mark 0x8013       (19)
    pref 23        NET               mark 0x8014       (20)
    pref 24        OTHERS            mark 0x8015       (21)
    pref 26        OTHERS            mark 0x8017       (23)
    pref 27        WEB               mark 0x8018       (24)
    
    This is the same table the -appdb function in the script to cross-reference, but appdb also does the above conversions itself.

    Appdb will always return the original traffic category and will not reflect any active script modifications.
    Identified Traffic Redirection (via App Analysis):

    It is possible to redirect currently identified traffic by QOS into another traffic container.
    This is typically done if you do not agree with the originally chosen traffic destination.
    (Eg. Remove "Snapchat" from VoIP )

    To see what traffic is currently being identified as do to the following:

    WebUI -> Adaptive QOS -> Bandwidth Monitor -> Make sure "AppAnalysis" is ON -> click on any device using traffic -> Write down or remember the name of the traffic you want to lookup or redirect.
    **Note: General means "Unidentified" **
    With the name known, you can look up the traffic's current mark and recommended prio for use with a custom script rule via the following command:


    /jffs/scripts/FreshJR_QOS -appdb "Snapchat"
    Refer to the existing rule in the script that redirects Snapchat as VOIP into OTHERS as an example /guideline.

    -----You can finally stop reading here and skip to the end of this thread-----
     
    Last edited: Mar 13, 2019
    Fnz, iaTa, kernol and 20 others like this.
  4. RMerlin

    RMerlin Super Moderator

    Joined:
    Apr 14, 2012
    Messages:
    30,214
    Location:
    Canada
    Pinging @vanic in case he might have a suggestion for you.
     
    Vexira likes this.
  5. nezolder

    nezolder New Around Here

    Joined:
    Jan 6, 2017
    Messages:
    4
  6. el pescador

    el pescador Senior Member

    Joined:
    Jan 15, 2016
    Messages:
    221
    Does this explain why im getting more consistent online gaming on tomato?
     
  7. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    If your game is not identified and your internet is maxing out, then adaptive QOS does more harm then good. Your game is getting last priority.

    If your game is identified, adaptive QOS is amazing. If you properly set up your limits your ping will not spike and you will not get buffer bloat with the game getting first priority.

    I do not know what QOS tomato has. Asus has traditional QOS as well if you want to set up your games manually. Then it should be equivalent to tomato.
     
    Vexira and beboptrumpet like this.
  8. vanic

    vanic Regular Contributor

    Joined:
    Mar 3, 2015
    Messages:
    151
    Location:
    Taiwan
    @Merlin and @FreshJR,

    What could I do for you?
    For this?
    No catagories can exist beyond level7(defaults). If that was possible, I was planning to move video streaming and file transfers to levels 8 and 9.
    => only prio 0 ~ prio 7, max numbers of catagories are 8.

    So my two plans were to find out what integer stood for unclassified traffic and move it up, or create two priority sets after the default priority didn't work.
    => As Merlin said, if you don't match any number as list, it will be unclassified traffic.
    => create two priority sets after the default priority didn't work : I don't know what you mean here, could you explain?
    => default rule / qdisc : always exists, you can see by command line "tc qdisc show"
    => even if no qos, qdisc still exists (actually, it means for default rule or default qdisc).

    Still can't believe that the function that identifies traffic does not return some integer to define unknown traffic.
    => So leave class 8 (prio7 is empty) for this purpose, is it what you want?

    Thanks,
    Vanic
     
  9. el pescador

    el pescador Senior Member

    Joined:
    Jan 15, 2016
    Messages:
    221
    Maybe a silly question but why would it not recognise gaming traffic?
     
  10. el pescador

    el pescador Senior Member

    Joined:
    Jan 15, 2016
    Messages:
    221
    Another question.
    I have triple vlans.

    One runs through the ONT....the telephone.
    2 run through the ASUS...internet and tv.

    Does changing the vlan priority make a difference?
    ie...voip vlan is recomended to be 5 (i think ) which when you compare the priortities it says that priority is for low ping.

    I have internet at default prority...but my gaming should be equal to voip or better imo....not at default.
     
  11. RMerlin

    RMerlin Super Moderator

    Joined:
    Apr 14, 2012
    Messages:
    30,214
    Location:
    Canada
    Because it simply doesn't know how to recognize it. All a router can do to identify a type of traffic is look at the connection ports, remote address, and maybe the content at the beginning of the connection. It has no idea what program is running on the PC itself. So if the signatures provided by Trend Micro doesn't have any definition for your specific game (or if your game recently changed something that Trend Micro were using to recognize it), it will be unrecognized traffic, and will fall in the default category.
     
  12. vanic

    vanic Regular Contributor

    Joined:
    Mar 3, 2015
    Messages:
    151
    Location:
    Taiwan
    vlan : using switch tag to bypass packet in switch port, not to go through CPU and qos / dpi engine can't see this packet.
     
  13. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    Vanic, I would like to give unclassified traffic higher priority. I was reading up on the tc command.

    This is the filter for unclassified traffic:
    Code:
    filter parent 1: protocol all pref 1 u32 fh 813::800 order 2048 key ht 813 bkt 0 flowid 1:17
      mark 0x40000000 0x4000ffff
    Can I change flowid so I can route it into a different priority class? 1:13 for example.
    After it gets into class 1:13, should i about how it is marked? Should I try to mark it as something else, example 0x400d0000 0x403f0000 would mark it as web browsing instead.

    If I can't edit the filter, can I change the priority of class 1:17? Prio = 3 for example.
    Code:
    class htb 1:17 parent 1:1 leaf 17: prio 7 rate 128Kbit ceil 8192Kbit burst 3200b cburst 9598b
    I still have to find the commands on how to modify filters or change class priority. I am very new to this.

    Thank you so much for checking in. I know it was a lot of text.
     
    Last edited: Jan 18, 2017
  14. vanic

    vanic Regular Contributor

    Joined:
    Mar 3, 2015
    Messages:
    151
    Location:
    Taiwan
    Hi @FreshJR,

    Actually, even if you know how to setup tc or iptables by yourself, you still can't break our rule in dpi engine, TrendMicro reserves the last priority for default rule / unclassified class, and their tc (traffic control) rule is created by kernel module, so ASUS can't modify anything on this, and you can't, too. Adaptive qos has its rule (powered by TrendMicro), I think we are hard to change anything if you want to use it. Sorry for that I can't disclose more detail technique on this.

    Thanks,
    Vanic
     
  15. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    Thanks for looking into it.

    If you are in a position to do so, maybe suggest to make unclassifed traffic available able to have configurable priority in future updates.

    In my case, most of traffic is marked correctly but T-Mobile wifi VIOP calling is uncatagorized and gets last priority. I would prefer for any undentified traffic to be above video streaming and downloads.

    Some other users on here wish the same.

    I don't know your involvement, but congratulations on the router design and QOS if you were apart of it. best I have ever used.
     
  16. Sar Mange

    Sar Mange New Around Here

    Joined:
    Jan 25, 2017
    Messages:
    1
    I am having similar issues with my Ooma VoIP. None of the packets are being sorted in the correct classification and all traffic is being set to default. I did see that perhaps AIProtection has to be enabled in order for the packets to be sorted. If this is true which parts have to be enabled? Thanks!
     
  17. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    Incorrect. If adaptive qos is enabled, packets are being sorted. There are no dependencies that also have to be toggled on.

    If they are being sorted into incorrect categories nothing really you can do except hope a definitions update will fix it in the future, or use traditional qos instead.

    Go to administration, firmware update, click check next to signature version. That's what updates the sorting filter if you are on an old one. I am on 1.142

    Also under bandwidth monitor, set the ooma box to highest priority, dragging the red label onto the ooma box. That should further increase its priority, but im guessing default traffic will still get the crap end of the stick.

    For me, I'm switching to traditional qos and explicitly defining T-Mobile wifi calls since that's the major thing I don't want to lag. But adaptive would be best since I could depriotize Netflix and downloads.
     
    Last edited: Jan 25, 2017
  18. el pescador

    el pescador Senior Member

    Joined:
    Jan 15, 2016
    Messages:
    221
    So how do we get FIFA 17 gaming packets in the correct category?
     
  19. FreshJR

    FreshJR Very Senior Member

    Joined:
    Oct 8, 2016
    Messages:
    1,302
    Short answer. You don't and we can't.

    The adaptive qos/packet sorting is done by trend micro for asus.

    Trend micros implementation is proprietary and closed off. In other words, it's a black box with zero modification allowed. It's supplied to asus and they just "plug" it in and turn it on. Not even they control it.

    Reverse engineering and hacking together a work around is outside my skill level.

    Your best bet is using traditional qos and manually defining the game.

    Otherside that, hope that in the future the sorting signatures will get corrected, or that uncatagorized packets get adjustable priority, or that hacks are done to adjust definitions/priority.
     
    zerodegrekelvin likes this.
  20. el pescador

    el pescador Senior Member

    Joined:
    Jan 15, 2016
    Messages:
    221
    Bad news.
    :(