Hi,
I am trying to reduce my bufferbloat as much as possible for gaming,
I would also like to put my gaming traffic into a fastlane. Ie sqm doesn't touch it. I have luci-app-sqm enabled with piece of cake on.
Here is my:
I update my settings to this and I am getting better results. I also turned on hardware acceleration. <-- This lowered bufferbloat to under 5ms up and down.
I was wondering if there is a way to customize my current settings to not touch certain ports that I would like to prioritize. Possible a script would do it? If so how would I go about doing so?
Thanks
That is not possible, and frankly not a great idea. Unless sqm sees all traffic on an interface it can not do its job.
But have you tried to switch to cake and configure it for per internal IP fairness? This might already carve out enough low latency capacity for your gaming traffic.
Alternative, sqm allow for some dscp baded prioritization, but that only works well for egress/upload traffic, as proper marking of ingress traffic is hard. Then again there are dedicated script developed here in the forum that tackle gaming isdues like ingress marking, maybe search the forums?
This essentially results in a hidden per packet overhead of 14 bytes.... Getting the per packet overhead correct seems unimportant, mostly because for typical bufferblost testing large packets are used, and one can compensate a wrong overhead by setting a lower rate. The problem is that if overhead is configured too small a link will show bufferbloat if saturated with small packets... that situation is unlikely but far from impossible. As a result we recommend to overestimate the overhead gently, if in doubt....
I have seen it before because netduma do it for their products I.e their traffic prioritization feature. But they use it for gaming traffic because its so small and won't change overall latency of the network.
What is it exactly what they do however? Do they prioretize somehow classified gaming traffic with-in their traffic shaper set-up or are they truly exempting that traffic from the traffic shaper? The former can work and boils down to the classification challenge, the latter is not robustly and reliably keepnig bufferbloat in check.
That is an assumption, a) nobody guarantees that a game is not accidentally going to flood the network with data packets, b) classification is based on heuristics like IP addresses, port numbers and can/will have false positives which might violate the assumption of limited rate. The robust way to do this is to create a high priority class in the traffic shaper that combines both highest priority and a hard rate limit... like for example done in this forum thread.
With-in sqm it might already help to switch from simple.qos/fq_codel to layer_cake.qos/cake and use a custom rule in the firewall to DSCP mark all packets from your gaming machines IP (and an appropriate port range) to DSCP EF, that will already give you priority for the uplink. For the downlink I would propose to follow the "sing and dance section" over here (which will carve out an equal share of the download capacity for all internal IP addresses, with ~100 Mbps you will need >=20 concurrently active machines before the gaming machine sees less than 5 Mbps ingress rate which for typical gaming traffic should be plenty).
Thanks for this.
Im using the second option with layer_cake and added nat dual-dsthost for ingress and nat dual-srchost for egress and i'm getting great results on ethernet, but the moment I run a speed test on wifi my ping goes crazy.
Because you configured cake to use eth0.2 (dev eth0.2) and OpenWrt uses fq_codel as default qdisc so all real ethernet interfaces, including eth0 get fq_codel. So that is as expected. Since cake on eth0.2 has a traffic shaper, while fq_codel on eth0 has not, there will be (almost) no packets queueing in eth0 and its qdisc does not matter much.
This might indicate that your router runs out of CPU cycles, that is there are not enough CPU cycles left for saturating WiFi when cake is running at full tilt. Maybe it is time to switch to a faster wired-only router and just use the Archer C7 as "dumb" AP?
Also another question, when I use fq_codel and any script my wifi latency is pretty stable but the moment I use cake with any script I get huge ping spikes on the download side (using wifi). What would be causing this?