Help prioritizing games with alternative qdisc design

Hello??? is a little off the forum no??

A lot of people are doing family/holiday activities, and some of us involved in latency issues are working on a variable bandwidth feedback control system in a separate thread. Unfortunately I don't have any DSA devices or knowledge.

oook what would be the thread of what are you talking about? I precisely have latency problems in call of duty and no matter how much I play, I can't find the key to have a fluid game.

my impression is that a lot of people suffer in COD even with low latency. I think a big part of it is the game itself. If you are using the script here tuned properly it is unlikely that you can really do anything more to make your games better.

I am using your script, I have the ps4 by cable and an AP where I connect the rest of the devices, I have configured your script by default using pfifo but I do not notice an improvement. Instead using sqm with simple.qos I see some improvement but not how it should go .. I don't understand where the problem may be.

it is key to set the speeds appropriately. can you show the results of a waveform bufferbloat test?

This is my result, my connection is 1gb ftth and the script has 500/500 to achieve this result. I think it is quite good but I feel the game is very heavy even having games with ping of 30 / 40ms

My configuration is simple, I use script by default, my wan is eth1.2, my lan is eth0.1, in realtimeset4 my ps4 and in lowprioriset my AP. I follow all the steps that you indicate in the forum and the packages I have installed the ones you indicate, I don't know what else I can do.

Yes, there is nothing wrong with your network the problem is the game or server.

1 Like

Your results look pretty good.

If you refer to latency issues/variation by monitoring the latency meter in the newer cod titles this is probably not only network latency variation you are seeing.

When I remember correctly this meter shows:

Ping + Frame time + CPU Time

If you don’t know what Frame time is, here is a good explanation:

For example:
I live in Austria and my base Ping to the COD servers in Frankfurt (GER) is about 25 ms. I play on PC (not the best graphic card) and get about 120 Fps.

So, in an optimal scenario with not much variation of Frame and CPU Time, we calculate:

25 (Ping) + 8,3 (Frame Time at 120 FPS) + 2 (CPU Time) = at least 35,3 latency

If you play on console 60 FPS it looks like this:
25 (Ping) + 16,7 (Frame Time at 60 FPS) + 2 (CPU Time) = at least 43,7 latency

This is approx. what I’m seeing in game.

This is just a simple explanation… Frame and CPU time is more complex than this and also not linear (always changing), so unless you cap your framerate at a rate your PC always can achieve at the right time you will probably get some variation here. I’m explicitly writing “PC” as I don’t know any way of capping your frames on console.

That leads me to the problem you are facing (or at least think). If you are playing on a PS4 you are at a disadvantage because the newer Cods are pretty demanding for the hardware of an 8-year-old console. So, you will likely get some variation in your Frame Time and CPU Time which accumulates with the network latency (variation) you get to the server. You have 3 changing parts here (Ping, Frame Time and CPU Time) which leads to an inconsistent gaming experience. Especially in games where crossplay is turned on (like the newer cods) and you compete against pc players with better ping and hardware.

So, the best you can do (overall) is:

  1. Control latency in your Home Network (done by Daniels’s script)
  2. Get the best ISP – the best qos can only account for issues in your home network environment – so if your ISP sucks or is crowded or has bad routing to the server you are playing you can’t do much about it.
  3. Get a high refresh-rate monitor with low input lag
  4. Get as many FPS as you can and cap them at the limit of your monitor
  5. Get Input devices (Controller, mouse etc…) with extremely low input lag
    I’m not saying go out and spend a lot of money but these things can improve your gaming experience drastically.

Of course, there are other parts you can’t really control... For example, shitty servers, other players’ bad internet, bad netcode of the game and lag compensation.

If you play Warzone Vs the normal COD multiplayer you will probably also see more variation and higher latency in your in-game meter.
That’s because Warzone has a much bigger map and more players and is more demanding for your hardware and it is more likely you’ll get drops in your FPS and so the Frame time is always changing up and down.

Sorry for the long post but I hope this helps understanding the topic a bit more.

1 Like

Thank you very much for your reply. Since the script works well and my values ​​are correct then I owe my problem to the servers that I connect to .. which I don't understand because having friends who also reside near me it works differently for me ... I want to think that it is because of network saturation in my neighborhood. Regarding the routes ... I see that most of the cod servers in this case blackout are in France, Germany, London ... because I live in Spain I usually have low ping to those servers but the feeling of The game is bad ... do you think that with a VPN hosted by that area could I do better? Thank you very much and merry christmas.

Yea this of course could be an issue.

What is your base ping to Frankfurt and Paris ? And are your friends also on ps4?

I think a vpn would only help if

  1. the routing through a vpn would give you a faster/more stable route to the gaming server than the one your isp is providing you - you could give it a try but i doubt it will make any difference or is beneficial at all.. i tried it and at least i didn’t see any improvement
  2. If you want to counteract sbmm… there are special vpn providers who claim to disable skillbased matchmaking if you use their service but in reallity you can just use vpn policy routing in openwrt and almost any vpn provider (if you do it the right way)

Merry Christmas

Hi @dlakelan

Just a question, if my LAN device is eth0.1 and the preconfigured device in the initial configuration is eth0.1, why im getting this warning? I don't have veth in my config

Warning: Section @zone[0] (lan) cannot resolve device of network 'veth'

Thanks!

Hi, if someone has similar error, just remove veth from lan zone in firewall configuration.
Im not using veth, so in my case this entry is not needed.
BR

Sorry for posting here, but maybe someone has already experienced this.

I am using the SimpleHFSCgamerscript and after one hour I see in the system logs

2022-02-23 19:35:37 warning kernel: [1202174.462519] HFSC: fq_codel qdisc 808D: is non-work-conserving?

After this message, some tcp connections get stuck, non responsive.
After reapplying script, it's ok.

I have found this old kernel bug, but I am not sure if it's the same case.

root@turris:~# tc class show dev pppoe-wan
class hfsc 1:11 parent 1:1 leaf 10: rt m1 776Kbit d 75.0ms m2 520Kbit 
class hfsc 1: root 
class hfsc 1:1 parent 1: ls m1 0bit d 0us m2 800Kbit ul m1 0bit d 0us m2 800Kbit 
class hfsc 1:13 parent 1:1 leaf 8093: ls m1 160Kbit d 75.0ms m2 200Kbit 
class hfsc 1:12 parent 1:1 leaf 8092: ls m1 560Kbit d 75.0ms m2 320Kbit 
class hfsc 1:15 parent 1:1 leaf 8095: ls m1 24Kbit d 75.0ms m2 40Kbit 
class hfsc 1:14 parent 1:1 leaf 8094: ls m1 56Kbit d 75.0ms m2 80Kbit 
class fq_codel 8092:4a parent 8092: 
class fq_codel 8092:21d parent 8092: 
class fq_codel 8094:2c2 parent 8094: 
class fq_codel 8093:278 parent 8093: 
class fq_codel 8093:2c2 parent 8093: 
class fq_codel 8093:33c parent 8093: 
class fq_codel 8095:23d parent 8095: 
root@turris:~# tc qdisc show dev pppoe-wan
qdisc hfsc 1: root refcnt 2 default 13 
qdisc fq_codel 8092: parent 1:12 limit 10240p flows 1024 quantum 3000 target 9.0ms interval 111.0ms memory_limit 20000b ecn 
qdisc fq_codel 8094: parent 1:14 limit 10240p flows 1024 quantum 3000 target 9.0ms interval 111.0ms memory_limit 20000b ecn 
qdisc pfifo 10: parent 1:11 limit 12p
qdisc fq_codel 8093: parent 1:13 limit 10240p flows 1024 quantum 3000 target 9.0ms interval 111.0ms memory_limit 20000b ecn 
qdisc fq_codel 8095: parent 1:15 limit 10240p flows 1024 quantum 3000 target 9.0ms interval 111.0ms memory_limit 20000b ecn 
qdisc ingress ffff: parent ffff:fff1 ---------------- 
root@turris:~#

Thanks for this, not sure what's going on but the best place to report it is probably the same place as that other bug, see what the kernel devs think about it. Let us know!

@dlakelan Hi Daniel,

Could you please let us know if we could expect the update of your script for just released version of Openwrt with nftables?

Thanks!

As far as I can tell there are still a few things qosify can not do, like filtering on internal ip-address/port combinations. These are not always necessary, but when they are qosify might not be the right tool.

I could update it for nftables yes. Would probably just create my own tables separate from those the main firewall uses. I wonder if there a way to incrementally add tables using the scripting language (as opposed to a bunch of nft commands). I'll look into it.

3 Likes

Very good example, rules similar to this are why I'm avoiding the move to Qosify:

iptables -t mangle -A ${IFACE} -p udp -s 192.168.1.105 ! --dport 443 -m comment --comment "Switch Games AF41 VI" -j DSCP --set-dscp-class AF41

Unless I'm missing something, of course.