FreshJR
Very Senior Member
Contrary to what Vanic has said. Modifying the filters is possible and does change the sorting priority.
I used the following commands to change my "Default" identified traffic to go into category 3 which in my case was setup as "Others"
What I did was turn on adaptive qos, then issue these commands in SSH.
Typically the unclassified packets go to the 7th container, by changing the last digit of the flowid you can move them into any container. I moved them into the 3rd container.
Checkout screenshot.
Each test was 4 speed tests, while on face time, then launching a game. Speedtest.net gets identified as web surfing.
Sure it may be unapproved and not typical, but it works.
You may notice that a majority of my traffic, after the tweak was applied in the download section, was identified as VOIP instead of Others. Thats because I messed up when I originally changed the filter rules.
Unidentified traffic on the eth0 interface is marked as 0x4000000.
Unidentified traffic on the br0 interface is marked as 0x8000000.
I mistakenly copied the replacement filter command twice, changing only the interface instead of both the interface and packet mark. So in error both filters were setup as 0x4 instead of 0x4 and 0x8. Since then i updated it to the correct values and the traffic successfully goes to catagory3 on both download/upload.
You may also notice a small amount of data in the "default" category aswell after the tweak. That small ammount is there because it took a few seconds to apply the 4 SSH commands after enabling QOS.
If you are deleting and adding rules on your own router make sure the replacement dev, parent, prio, handle, and mark matches the original. The only thing you want to be changing from original rule is the flowid. I will describe how to read the rules so you know what you are looking at, incase it isn't the same across all asus routers.
One last thing I would like to add to my wall of text. This setup works for me since my unidentified traffic was primarily VOIP. I just needed Netflix and downloads to be last in my situation.
If in your case, your unidentified traffic is torrents or some other bandwidth hog, you will be in a world of pain moving if you are moving it up above websurfing and streaming. I do not know what torrents are recognized as, since I do not use them, but make sure your default category is relatively small before moving it up.
This workaround will be unnecessary if the filters improve.
Up next I am going to learn how to modify the class priority and see if it works as well. The current way it comes setup right now, bandwidth is rationed terribly. If a qos catagory can saturate the available bandwidth entirely, the classes below it get nothing.
I think the correct way would be to give each class the same priority. Guarantee each class a minimum bandwidth out of total available. When more bandwidth is available than the guaranteed rate, it would be rationed between the catagories in percents of that catagories guarenteed rate vs the other categories guarenteed rate. But maybe I won't mess with it since it's working perfect with this setup, and I don't care if low categories get cut off in the order I have it working.
IF THIS INFORMATION IS NOT ALLOWED, DELETE MY POST OR PM ME TO REMOVE IT.
I used the following commands to change my "Default" identified traffic to go into category 3 which in my case was setup as "Others"
What I did was turn on adaptive qos, then issue these commands in SSH.
Code:
tc filter del dev eth0 parent 1: handle 813::800 prio 1 protocol all u32
tc filter replace dev eth0 protocol all prio 1 handle 813::800 u32 match mark 0x40000000 0x4000ffff flowid 1:13
tc filter del dev br0 parent 1: handle 813::800 prio 1 protocol all u32
tc filter replace dev br0 protocol all prio 1 handle 813::800 u32 match mark 0x80000000 0x8000ffff flowid 1:13
Typically the unclassified packets go to the 7th container, by changing the last digit of the flowid you can move them into any container. I moved them into the 3rd container.
Checkout screenshot.
Each test was 4 speed tests, while on face time, then launching a game. Speedtest.net gets identified as web surfing.
Sure it may be unapproved and not typical, but it works.
You may notice that a majority of my traffic, after the tweak was applied in the download section, was identified as VOIP instead of Others. Thats because I messed up when I originally changed the filter rules.
Unidentified traffic on the eth0 interface is marked as 0x4000000.
Unidentified traffic on the br0 interface is marked as 0x8000000.
I mistakenly copied the replacement filter command twice, changing only the interface instead of both the interface and packet mark. So in error both filters were setup as 0x4 instead of 0x4 and 0x8. Since then i updated it to the correct values and the traffic successfully goes to catagory3 on both download/upload.
You may also notice a small amount of data in the "default" category aswell after the tweak. That small ammount is there because it took a few seconds to apply the 4 SSH commands after enabling QOS.
If you are deleting and adding rules on your own router make sure the replacement dev, parent, prio, handle, and mark matches the original. The only thing you want to be changing from original rule is the flowid. I will describe how to read the rules so you know what you are looking at, incase it isn't the same across all asus routers.
To see your currently active rules run.
Code:tc filter show dev eth0 tc filter show dev br0
Heres a sample of the code output so you know what you are looking at.
Code:filter parent 1: protocol all pref 1 u32 filter parent 1: protocol all pref 1 u32 fh 813: ht divisor 1 filter parent 1: protocol all pref 1 u32 fh 813::800 order 2048 key ht 813 bkt 0 flowid 1:17 mark 0x80000000 0x8000ffff (success 17) filter parent 1: protocol all pref 3 u32 filter parent 1: protocol all pref 3 u32 fh 802: ht divisor 1 filter parent 1: protocol all pref 3 u32 fh 802::800 order 2048 key ht 802 bkt 0 flowid 1:11 mark 0x80000000 0x803f0000 (success 0) filter parent 1: protocol all pref 4 u32 filter parent 1: protocol all pref 4 u32 fh 810: ht divisor 1 filter parent 1: protocol all pref 4 u32 fh 810::800 order 2048 key ht 810 bkt 0 flowid 1:16 mark 0x80010000 0x803f0000 (success 0)
Mark has two components for each filter.
The 2nd mark string for unidentified traffic ends in ffff.
The 2nd mark string for identified traffic categories is ends in 0000.
The 1rst mark string for identified traffic has a 4th digit that changes. It is used to read a packets catagory. This 4th digit is in hexadecimal, so you have to convert it to decimal if you want to reference it with RMerlins previously supplied categories. This isn't important since we are not modifying those rules, but i will explain how to read them anyway.
If 4th digit hexadecimal is 0, its decimal value is 0 which is instant message category.
If 4th digit hexadecimal is a, its decimal value is 11 which is tunneling and proxy services.
Anyway, what we are interested is that changing the flowid class of unidentified traffic, so we are looking for a rule where the 2nd string of mark ends in ffff. Mine was at the top.
On my router, the filters for eth0 started with 0x4000000, filters for br0 started with 0x8000000. They went into the 7th catagory as expected. I simply switched it to the 3rd catagory with the commands above.
One last thing I would like to add to my wall of text. This setup works for me since my unidentified traffic was primarily VOIP. I just needed Netflix and downloads to be last in my situation.
If in your case, your unidentified traffic is torrents or some other bandwidth hog, you will be in a world of pain moving if you are moving it up above websurfing and streaming. I do not know what torrents are recognized as, since I do not use them, but make sure your default category is relatively small before moving it up.
This workaround will be unnecessary if the filters improve.
Up next I am going to learn how to modify the class priority and see if it works as well. The current way it comes setup right now, bandwidth is rationed terribly. If a qos catagory can saturate the available bandwidth entirely, the classes below it get nothing.
I think the correct way would be to give each class the same priority. Guarantee each class a minimum bandwidth out of total available. When more bandwidth is available than the guaranteed rate, it would be rationed between the catagories in percents of that catagories guarenteed rate vs the other categories guarenteed rate. But maybe I won't mess with it since it's working perfect with this setup, and I don't care if low categories get cut off in the order I have it working.
IF THIS INFORMATION IS NOT ALLOWED, DELETE MY POST OR PM ME TO REMOVE IT.
Last edited: