Help prioritizing games with alternative qdisc design

Segal use the dchtags devel script its the one that said about fixed 3 typos about 2 days old i think
This dosent giver error mesage if your using the devl scripty gaming with it

1 Like

Thank you again dlakelan for explaing it cheers
And thanks moeller to for your help to

I have a technical question, is it possible to suppress the stream for TV and telephony with our ISPs? I wonder if these are streams that are priority by default and who could generate this latency?

But you will get IPv6 privacy extensions... to spoil the fun a bit. I note that these should be optional (but I am sure iOS and Android will use unusual definitions for optional)...

1 Like

iptables -t mangle -A INPUT -p icmp --icmp-type 0 -j DSCP --set-dscp-class EF 

iptables -t mangle -A OUTPUT -p icmp --icmp-type 8 -j DSCP --set-dscp-class EF 

iptables -t mangle -A INPUT -p icmp - -icmp-type 8 -j DSCP --set-dscp-class EF 

iptables -t mangle -A OUTPUT -p icmp --icmp-type 0 -j DSCP --set-dscp-class EF 

what are its command lines for ???

1 Like

please read this it might be helpfull info

im not sure if this has been coveed or not
so sorry if it has
cold war and modern warfare 2019 work like this
when the ga,e starts up it first conects you to a autheristaion server alwaus
at the same time it connects you to every data centre worldwide for a few seconds to see what your nearerst one is
once you connect to that data centre you will stay on that data centre untill you relogin again
then that date centre looks for games for you
one it finds a game that game will use two ports the 1st port is always the same
iether 3074 or 3075 depends on platform this is the source port ie your console

the second port will be in this range 30000 45000 udp only eg 32560 udp this is the destination
one the game ends itwill put you into a new lobby and it will fnd a new game with a new port
within this ramge 30000 45000 udp eg 43980 udp only

if you priotize these ports my hit detection was instantly better
i used to do this on another router

but im finding [ this coldwar uses tcp a lot more than we think
the evidence is shown below
from a few hours of gameplay
its using source is 50000 60000 tcp console destination 3074 tcp server

this is how i use to priortise them in another router
source 3074-3075 destination 30000-45000 udp only
source 50000 60000 destination 3074-3075

i just wanted to show that coldwar uses tcp even more than udp it looks like
i also seen this with my testing over the past year
123.15 K 29.91 MB DSCP udp * * 0.0.0.0/0 0.0.0.0/0 multiport sports 3074,30000:45000 DSCP set 0x08 -
125.73 K 31.04 MB DSCP udp * * 0.0.0.0/0 0.0.0.0/0 multiport dports 3074,30000:45000 DSCP set 0x08 -
2.24 M 131.16 MB DSCP tcp * * 0.0.0.0/0 0.0.0.0/0 multiport sports 3074,50000:65000 DSCP set 0x08 -
3.75 M 5.38 GB DSCP tcp * * 0.0.0.0/0 0.0.0.0/0 multiport dports 3074,50000:65000 DSCP set 0x08
154.94 K 19.73 MB DSCP udp * * 0.0.0.0/0 0.0.0.0/0 match-set realtimeset4 src DSCP set 0x28 -
226.43 K 226.31 MB DSCP udp * * 0.0.0.0/0 0.0.0.0/0 match-set realtimeset4 dst DSCP set 0x28

if any one wants to try it hers how to edit script with this
UDPBULKPT="3074,30000:45000"
TCPBULKPT="3074,50000:65000"
use 3074 ps4 use 3075 xbox i think

can you tell me what priority are the udp and tcp bulk in the devel script
because i think i want to put thee to prioraty

You dont need to prio the 30000:45000 range, the realtimeset4 prio all ports on that ip.
And if you use wireshark you will see 3074------30000:45000 and 30000:45000------3074 will be taged as CS5..

If @dlakelan can add some tool to add prio ports on the realtimeset4 because we dont need to prio all the ports 1-65535

OH=44 # number of bytes of Overhead on your line (37 is reasonable
      # starting point, better to be too big than too small) probably
      # likely values are between 20 and 50

Change this OH=44 will affect this:

case $LINKTYPE in
    "atm")
	tc qdisc replace dev "$DEV" handle 1: root stab mtu 2047 tsize 512 mpu 68 overhead ${OH} linklayer atm hfsc default 13

I have never once seen a packet capture where in game there was a bunch of extra UDP. So prioritizing all ports vs just a range of ports is going to make no difference for in game and be much less robust. There's just no need for port based rules on consoles... Gaming PC is maybe a different matter but only if you use your PC for other stuff at same time as gaming.

1 Like

If we can prioritize only the ports we need for game..then traffic like voice chat or what ever will de prioritize by default..it is useful that.

Maybe he means that when you are in game lobby..game uses a specific port for that lobby..any rest udp traffic doesnt matters.
The interesting thing is...so many traffic in tcp to these ports.

Have you seen this in packet captures, a bunch of extra UDP that you want deprioritized?

You will wind up with your friends complaining that they can't understand your voice... Besides if I remember the voice chat uses same port ranges?

Exactly. The captures show that the game does some big bursts every 1 second on TCP. I suspect it's a world update of some kind because it's always spiky bursts on a 1s clock for CoD

I know that when you are playing in a lobby game uses a specific port for that lobby and if prioritize this your hit detection is perfect...etc from 3074 ps4 to a random port 30000-45000.

Voice was corrupted with rule "above 450/sec".

It is something they call it "SBMM" ..skill based matchmaking which i think changes "game settings" in realtime.Maybe we need this "burst"?

maybe, but I think it was when we set a much lower limit than 450/sec, like maybe 200/s

Here's a capture one of you guys did recently:

Packet Rate: even 100% of the UDP is clearly less than 150 pps

Bitrate:

100% of UDP (both directions) is less than about 400kbps

When I look at the send rate (from the console) it's less than about 150kbps

So we're giving 400 up and 800 down typically, we can send all udp through priority with plenty of overhead space left.

And tcp?It is needed by the game?

Good evening everyone I hope you are doing well, I am currently testing a new router with a more powerful cpu for my arriving gigabit wan fiber, so I cannot test the dlakelan script as it is still an unofficial trial version of openwrt I played a bit for the moment with just rules and sqm the game behaves very well;) while waiting to be able to download the packages

[image] @Kinel my rules mangles ...

Capture d’écran 2021-01-07 à 17.32.58

with gigabit fiber everything gets dramatically easier :wink:

The green pulses are TCP packets.

Here's using a 1ms window:

You can see it's a very spiky stream, with 20 to 40Mbps bursts (I think this was on Juju's line)

The average though is not that high... Here's a 10 second window (so divide by 10 to get bits/s)

The overall rate is a little less than 150kbps

So can we combine in the same stream?CS5?

If you're using fq_codel in games, this might work fine. But it would be bad if you're using other qdiscs which are less forgiving of the bursts.

As of right now though these go into CS4, which is also low-latency just not quite realtime and not limited in speed at all.