For the future, I will make sure that it is more obvious when packages cannot be installed.
QoSmate is using ctinfo. In fact, it is only using ctinfo and not the other download traffic shaping methods. It became too confusing for new users, so I cleaned up and removed the other methods.
This looks very interesting, @Hudra! I've been happily using DSCP Classify by @yelreve, but I'm comparing features to see what more QoSmate brings to the table.
What would be a compelling reason to switch to QoSmate from DSCPClassify?
Update: @Hudra I gave QoSmate a try and hit an issue when setting up a rule for IPv6. Is this a known issue? I created a corresponding issue with the project on github.
Snippet from /etc/config/qosmate
config rule
option name 'NextDNS6'
option proto 'tcp'
list dest_ip '2001:19f0:5401:1d93:5400:2ff:fece:25e9'
list dest_ip '2605:380:57:613::5'
list dest_ip '2605:6c80:1:60::'
list dest_ip '2605:a880:0:7b:0:1:54d:2215'
list dest_ip '2a00:11c0:39:353::3'
list dest_ip '2a01:4ff:f0:ac5::1'
list dest_ip '2a07:a8c0::'
list dest_ip '2a07:a8c1::'
list dest_ip '2a0b:4342:1a32:f:5054:ff:fe48:d17f'
list dest_ip '2a0e:6902:2002:12b:5054:ff:fed7:6b78'
list dest_port '443'
option class 'cs5'
option counter '1'
option enabled '1'
Error Message
...
Automatically including '/usr/share/nftables.d/ruleset-post/dscptag.nft'
In file included from /dev/stdin:6562:1-57:
/usr/share/nftables.d/ruleset-post/dscptag.nft:121:30-67: Error: Could not resolve hostname: Name has no usable address
meta l4proto tcp ip daddr { 2001:19f0:5401:1d93:5400:2ff:fece:25e9,2605:380:57:613::5,2605:6c80:1:60::,2605:a880:0:7b:0:1:54d:2215,2a00:11c0:39:353::3,2a01:4ff:f0:ac5::1,2a07:a8c0::,2a07:a8c1::,2a0b:4342:1a32:f:5054:ff:fe48:d17f,2a0e:6902:2002:12b:5054:ff:fed7:6b78 } th dport 443 ip dscp set cs5 counter comment "NextDNS6";
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I believe ip daddr will need to be ip6 daddr for IPv6 addresses.
I believe that DSCPCLASSIFY has a more sophisticated logic for handling established connections (at least as far as I can recall) and it's currently not possible to create Ipsets in QoSmate. This could potentially be implemented if there is a need for it. One advantage of QoSmate, especially for resource-limited devices, is that it supports HFSC and CAKE as root qdiscs, with HFSC being significantly less CPU-intensive.
I don't think there's a clear "best" option for experienced users. I'd say just give it a try and go with whatever feels right for you.
Damn, I haven’t really been testing IPv6... I’ll check it out and get back to you.
Right on! Your update argument is pretty slick. Super easy and to the point.
Also, you nailed the issue. I was able to confirm after the update that my rule was processed correctly and syntactically happy with fw4. Thanks for the super-fast turnaround on that issue!
Hudra I posted here in our community here in Brazil for people to test, and everyone is liking it, I'm still testing it. Congratulations on the great work. My only question is whether to use it to automatically configure if I still need to set DSCP priorities on ports 22, 80, 443, 53, 853...etc. And I wanted to know by default where the DSCP priorities are going in Bulk, bestfford, video or voice.
Hudra, I reset my Archer C6 v3 router, installed QOSmate, and in the automatic search it is allocating everything in Disk Space: where my router has only 8mb, each automatic configuration it creates files in Disk Space:, and also does not complete any configuration.
If your primary focus is gaming, then I suggest to only prioritize your gaming traffic. If you later encounter issues with voice chat, streaming, or slow website loading, you can then selectively prioritize those services. As @moeller0 wisely noted a few times before:
So, remember to prioritize sparingly.
If you want to know the mappings to the different priority tins/classes just have a look at the "rules" tab in the UI:
HFSC Mapping:
High Priority [Realtime] (1:11)
EF, CS5, CS6, CS7
Fast Non-Realtime (1:12)
CS4, AF41, AF42
Normal (1:13)
CS0
Low Priority (1:14)
CS2
Bulk (1:15)
CS1
CAKE Mapping (diffserv4):
Voice (Highest Priority)
CS7, CS6, EF, VA, CS5, CS4
Video
CS3, AF4x, AF3x, CS2, TOS1
Best Effort
CS0, AF1x, AF2x, TOS0
Bulk (Lowest Priority)
CS1, LE
If you use CAKE, unmarked traffic will fall into the Best Effort category, while with HFSC, unmarked traffic will land in the Normal (1:13) class.
I'm not exactly sure what you mean. Perhaps you could use a better translator or try to express yourself more clearly?
Here are some basic details:
If you use the auto-setup function, one of the Speedtest packages from OpenWrt will be installed based on how much memory you have. This does take up some memory, but it shouldn't increase the more often you run auto-setup. You also don't have to use the auto-setup function—you can manually enter the values, and if you want to free up memory, you can uninstall the Speedtest packages afterward.
To see which Speedtest package is installed on your system, you can run the following command:
opkg list-installed | grep speedtest
Also the Auto-Setup creates a file under /tmp so if your memory is full the file probably can't be created and so the setup fails.
Hudra, thank you very much for the explanation, I know that the application is under construction, with my little knowledge in my opinion it is one of the best applications I have ever used, my games are running much better. Could you please authorize me to make a video on YouTube talking about the application.
out of curiosity, according to doc there are two rule formats:
config rule
option name 'gaming_traffic'
option proto 'udp'
option src_ip '192.168.1.100'
option dest_port '3074'
option class 'cs5'
option counter '1'
and
config rule
option name 'zoom_traffic'
option proto 'tcp udp'
list dest_port '3478-3479'
list dest_port '8801-8802'
option class 'af41'
option counter '1'
in qosmate.sh as i see you only use config_get dest_port "$config" dest_port command to fetch values from both option dest_port and list dest_port. in theory, config_list_foreach can parse a list. i admit have very little understanding of config handling, but config_list_foreach looks a good candidate to process a list, so why not using that?
and maybe i'd streamline options to keep 2nd format only, as a single item list is still a list
anyhow it is great to see so many qos related options, good work! thank you.
It's actually possible to use list even for single elements.
For example:
config rule
list name 'gaming_traffic'
list proto 'udp'
list src_ip '192.168.1.100'
list dest_port '3074'
list class 'cs5'
list counter '1'
Or even like this:
config rule
list name 'gaming_traffic'
list proto 'udp tcp'
list src_ip '192.168.1.100 192.168.1.101'
list dest_port '3074 3075'
list class 'cs5'
list counter '1'
The current implementation is quite flexible, and you can actually use list for everything with the current approach. However, you’re probably right that using config_list_foreach could be cleaner and more elegant. I’ll consider this and evaluate whether it would offer any advantages over the current implementation.
I have a query. If you need a WiFi AP, IP 192.168.0.126. Have Low Priority. Is it necessary to create a rule with CS2?
Or automatically all LAN connections go to Low priority class (1:14)?
And by the way, my online game improved a lot.
I appreciate your great work
hudra, when my ipv6 is on, QOSmate is not working, because it only works with IPV4, I have already tested with ipv6 on and ipv6 off, there is no chance of QOSmate working with ipv6 active.