DSCP Classify - a service for applying DSCP to connections

What would be the right approach to prioritize my Online Gaming Traffic with my Xbox?

config rule
	option name 'XSX non-HTTP'
	option proto 'udp'
	list src_ip 'Internal-Xbox-ip'
	list dest_port '!80'
	list dest_port '!443'
	option class 'cs4'
	option counter '1'
	option enabled '1'

Would that rule and cs4 be enough? My Xbox is limited to ipv4 only...

I got another question.
Would it also make sense to create an Inbound rule for my Gaming Console?

config rule
	option name 'XSX Inbound non-HTTP'
	option proto 'udp'
	list dest_ip 'Internal-Xbox-ip'
	list src_port '!80'
	list src_port '!443'
	option class 'cs4'
	option counter '1'
	option enabled '1'

As far as I can tell, this rule would apply only after the packet already traversed the ingress cake instance, so would likely only affect WiFi WMM access class/priority selection.
The idea behind DSCP classify is the reverse, you mark egressing/outgoing traffic and DSCP classify will automagically apply the same DSCP to incoming packets of the same flow...

Thanks for your input. My Gaming Console is connected via Ethernet so I guess in this case it would be useless.

Well, simply define this rule as egress/outbound rule and DSCP classify should automagically apply the same priority to incoming packets in a way that cake will actually see these changed DSCPs...

Ok so the default "Game Console non-HTTP rule" should cover incoming and outgoing udp packets for my Game console right?

config rule # A rule which marks all non-HTTP UDP connections from a specific IP as cs4 and count new connection matches
	option name 'Game Console non-HTTP'
	option proto 'udp'
	list src_ip '192.168.1.111'
	list dest_port '!80'
	list dest_port '!443'
	option class 'cs4'
	option counter '1'
	option enabled '1'
1 Like

Yes as far as I can tell, but mind you, I am not using DSCP classify myself...

(In case you wonder, I use plain sqm-scripts with layer_cake.qos/cake, I currently have zero explicit DSCP setting rules, and mostly run layer_cake as an exercise in dog-fooding and to have an easy way to prioritise something should the need arise; I expect though that once that need arises I will want to use DSCXP classify's method of applying egress DSCPs to ingress packets of the same flow. I run a small family network shaped to 95/45 Mbps, with 3 more or less casual gamers and video conferencing and remote desktop, so far the default sqm-scripts behavior just worked well enough for all users)

2 Likes

I got almost the same bandwidth myself with VDSL2 and I also used layer_cake before.
Gave DSCP Classify a try because I wanted to tag incoming game packets for my game console and as far as I can tell it works fine and latency improved as well under full load.

Here is my current SQM config, VDSL Sync is 116800/42460kbps:

config queue 'eth1'
	option enabled '1'
	option interface 'pppoe-wan'
	option download '98947'
	option upload '34000'
	option qdisc 'cake'
	option script 'layer_cake_ct.qos'
	option qdisc_advanced '1'
	option ingress_ecn 'ECN'
	option egress_ecn 'ECN'
	option qdisc_really_really_advanced '1'
	option itarget 'auto'
	option etarget 'auto'
	option linklayer 'ethernet'
	option debug_logging '0'
	option verbosity '5'
	option squash_dscp '0'
	option squash_ingress '0'
	option iqdisc_opts 'nat dual-dsthost ingress diffserv4'
	option eqdisc_opts 'nat dual-srchost ack-filter diffserv4'
	option overhead '34'
	option linklayer_advanced '1'
	option tcMTU '2047'
	option tcTSIZE '128'
	option tcMPU '68'
	option linklayer_adaptation_mechanism 'default'
option overhead '34' 

isn't 44 better?

According to https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm-details 34 is right value for VDSL2 with PPPoE.

What would be the right approach to prioritize two gaming consoles at the same time?
Create two seperate rules or can I add two multibile IP addresses within the same rule and if I can add two IP addresses in one rule what would be the proper syntax?

Personally I would generate two individual rules, so that you can enable/disable them individually easily, if only for testing whether things work as expected. But what ever works for you is likely fine...

1 Like

ldir-EDB0's branch seems to be 2 commits ahead of yelreve:

Is it wise to install DSCP Classify from his repo and how can I uninstall DSCP Classify?

"The service will respect DSCP classification stored by an external service in a connection's conntrack bits, this could include services such as netifyd."

I have install the netifyd pack, what i have to do