ah I didn't know but I still have bad latency in games, should I configure something else?
So conceptually all you can do on your side is:
0) configure sqm with shaper settings that give you low/acceptable bufferbloat measures at all times (you want to use your link for gaming)
Figure out how much traffic ypur game creates in both directions, looking at both longer term average rate and short term bursts
set up a prioritization schme in which you only prioritize gaming packets and you make sure that the game-priority tin/tier has a sufficiently guaranteed rate-share such that it comfortably will fit the average rate from 2) and that is also large enough to accept the burst measured in 2)
check whether there are signs of router exceeding its CPU capacity during gaming, if yes replace router with a more powerful unit.
As far as I can tell that is essentially all you can reasonably do at your router....
I assume you already controlled the non-router potential issues like:
your gaming computer being fast enough for the selected game and graphics quality setting
not playing over a sharwd WiFi or 100Mbps fast ethernet hub wirh other computers connected
not having any multicast storms affecting your gaming computer
decent routing/peering between your ISP and thevgaming servers (you might be able to affect/change/improve this routing by using a VPN that is both well connected with your ISP and the servers)
I have a rpi4b router so more powerful I do not think it is necessary something that I noticed is that when I download files of more than 2gb the bandwidth speed is not reduced or it does not go in bulk
therein lies the problem, i think maybe i need to configure something else
Sorry, I have not installed/tested qosify on any machine yet and will not be able to help here... My proposal however was not so much de-prioritising bulk traffic (albeit that might be a decent idea) but selectively only prioritizing your single game traffic (if that can be classified without too many false positives).
if you wanted to do something like this, how would you do it?
Fist figure out what identifying properties for your latency-sensitive gaming packets you can find. If it is port numbers you should be able to use qosify (as far as I understand) but make sure you start out with ONLY putting your gaming packets into a higher than best-effort priority tin, while leaving everything else in best-effort. (I would recommend to use diffserv4 and the Video tin as that will give you 50% of your total capacity for priority traffic (diffserv3 and diffserv4's Voice tin will only allow up to 25% of the total limit for high priority traffic, which might be too little if the link is slow and gaming traffic is bursty)). But really the trick is to start testing with only a single game's packets classified into high priority.
I use this class for now, the latency is good, but when everyone uses the network, the latency already varies a lot.
config class high_throughput_data option ingress AF12 option egress AF12 option dscp_prio AF11 option prio_max_avg_pkt_len 1200 option dscp_bulk LE option bulk_trigger_pps 700 option bulk_trigger_timeout 20
As far as I can tell all of these map either into the Bulk or the Best-effort tin, so you still need to move your game packets into the Video tin.
Yes, full saturation is a bit problematic, remind me again, what speed does your link allow?
config interface wan option name wan option disabled 0 option bandwidth_up 23mbit option bandwidth_down 103mbit option overhead_type docsis # for manual: option overhead 18 option overhead_mpu 64 option overhead_encap noatm option ingress 1 option egress 1 option mode diffserv4 option nat 0 option host_isolate 1 option autorate_ingress 1 option ingress_options "dual-dsthost" option egress_options "dual-srchost" option options "overhead 18"
OK, that is not as bad as I feared, but still try with your game's packets in the Video tin of cake's diffserv4 und no other traffic in either the Voice or the Video tin. At that point you will see whether prioritisation helps with your issue or not.
I already passed the port of my game to the video class and the same
So you confirmed that your incoming and outgoing game packets are correctly steered into cake's Video tin (and nothing else is), but your game still suffers from undesired high latency issues?
Where do I see if my game goes to video class?
I would do two things:
tc -s qdiscwhether there are actually packets in the two Video tins and that the number of packets matches what you expect your game to require
use a packet capture while playing and confirm that the game packets contain those DSCP marks as your qosify rules predict. You might need to play around with what interface on your router to get the capture from, because you need to get the packets ofter qosify's ebpf code had a chance to change/set the DSCPs.
now if the latency is good commenting everything and putting the port of my game in cs6
# DNS #tcp:53 voice #tcp:5353 voice #udp:53 voice #udp:5353 voice # NTP #udp:123 voice # SSH #tcp:22 +video # HTTP (TCP) #tcp:80 +high_throughput_data #tcp:443 +high_throughput_data # QUIC (UDP) #udp:80 +high_throughput_data #udp:443 +high_throughput_data #COD udp:3074 +CS6
only occasionally latency increases a bit but returns to normal
So this data showed packets in all 4 tins. This is not what I recommended you to test, so it seems your qosify rules are not yet correct.
The point about prioritization is that you really just shift the pain around for every high priority packet that gets queued less some other packet needs to gets delayed more, if you yry to prioritize too many packets at the same time there can be too few packets to delay and hence prioritisations will give diminishing returns.
For initial testing I really recommend to keep everything in the Bedt-Effort tin and ONLY move your game's packets into the Video tin. If that should work, you can then try to move the game to the voice tin, andbif that works you can start adding rules for other applications, like DNS (ports 53, 5353). Here I would also first try to move these the the Video tin and test.
I can offer no silver bullets here, but tedious trial-and-error work, sorry.
more or less so?
# DNS tcp:53 besteffort tcp:5353 besteffort udp:53 besteffort udp:5353 besteffort # NTP udp:123 besteffort # SSH tcp:22 +besteffort # HTTP (TCP) tcp:80 +besteffort tcp:443 +besteffort # QUIC (UDP) udp:80 +besteffort udp:443 +besteffort #COD udp:3074 +video
You have to set the ports range used by the server of the game. 3074 is for Xbox live but each game uses another ports for in match comunication.
For example, In my game: 30.000-32.000 UDP
Sorry for my English.