DSCP Classify - a service for applying DSCP to connections

Good spot @hudra, I ran into the same myself this afternoon. The reload issue should be resolved now following my latest commit:

1 Like

ok i've tested both scenarios with this rule still no change in the video tin results.

This is really strange. What OpenWrt version are you on? What is the output of:

ubus call system board; 

and also:

ls -l /etc/dscpclassify.d

Have you restarted your router since you installed the package and are you sure eth1 is your wan interface?

{
	"kernel": "5.15.77",
	"hostname": "rpi4-dca6322600",
	"system": "ARMv8 Processor rev 3",
	"model": "Raspberry Pi 4 Model B Rev 1.1",
	"board_name": "raspberrypi,4-model-b",
	"rootfs_type": "ext4",
	"release": {
		"distribution": "OpenWrt",
		"version": "SNAPSHOT",
		"revision": "r21243-047d471317",
		"target": "bcm27xx/bcm2711",
		"description": "OpenWrt SNAPSHOT r21243-047d471317"
	}
}

ls -l /etc/dscpclassify.d

-rw-r--r--    1 root     root          4173 Feb 13 22:28 main.nft
-rw-r--r--    1 root     root          3261 Feb 13 22:41 maps.nft
-rw-r--r--    1 root     root           517 Feb 13 22:41 sets.nft
-rw-r--r--    1 root     root          3927 Feb 13 22:42 verdicts.nft

I dont think i've rebooted the router since installation.. ill give that a go and retry tests. eth1 is my wan yes :smiley:

same results again after reboot :frowning:

@yelreve made some commits today, maybe they will solve your issues.

Hey, this looks good. Can i use it as a replacement for Qosify, which have some bugs here and there ? :slight_smile: (I have tons of rules and of cause i need to adapt them)

1 Like

I don’t know your use case but basically you can use it as a replacement for qosify. Just try it out and if it doesn’t meet your expectations you can always go back to qosify.

Just a tip: If you have been using qosify before and want to try out dscpclassify it’s necessary to stop and disable the qosify service and then it’s best to reboot the router otherwise you probably will run into issues.

1 Like

both Qosify and DSCPCLASSIFY try to achieve the same goal with different methods and slightly different features ,so yeah you can go ahead and try it :+1:

1 Like

Unfortunately still not working with the latest updates :pensive:

Have you tried updating to a newer snapshot version?

If this doesn’t help, what is the output of:

fw4 -q zone lan
fw4 -q zone wan
nft -v

[root@dca632 / 69°]# fw4 -q zone lan
eth0
[root@dca632 / 67°]# fw4 -q zone wan
pppoe-wan
[root@dca632 / 67°]# nft -v
nftables v1.0.5 (Lester Gooch #4)

i wil ltry updating to a newer snapshot this week but just based on that output perhaps i need to set my wan somewhere?

set my cake sqm config to tunnel interface pppoe-wan and reloaded the dscpclassify with ping test.. it works!! thanks for all the support @Hudra!!

2 Likes

I tried it, but its not generating any nft rules so far..

And fw4 -q zone lan does not return anything (the wan part is fine)

PS: i have multiple "lans".. can i add a list of vlans somewhere ?

Edit:
Ok, when i overwrite the init script*, i can add ONE lan dev. Is there any way to add multiple LAN devs?

change:

lan="$(fw_zone_dev lan)" || return 0

to

lan="$(fw_zone_dev wiredclient)" || return 0

makes it working for one of my networks, which is a bit to less :smiley:

Edit2:
Another finding: icmp works fine for ipv4 but not for ipv6. So in Wireshark i can see cs5 for my ipv4 ping but not ipv6 :frowning:

That’s fantastic. Thank you.

Would you mind explaining how DSCPClassify decides whether a service is threaded?

How does it know which connections belong to steam or torrents?

I could see it for steam if you detect multiple connections to the same ip and port. But how does it work for torrents where it could be hundreds of IPs and random ports?

And what do you think is the likelyhood of having false positives (a non multi-thread connection being classified as bulk)?

I am cautious with these types of automations, because I used a QoSify config that ended up classifying my Geforce Now streams as bulk.

1 Like

hello everyone, can someone explain to me the point of ifb4wan on my belkin and using ct-info, honestly I have tested dscpclassify and I have mostly prioritized my ps5 and my player is clearly heavier than when I use elan's script on nftables which has done it for me, in the past

I thank you for the answer you could enlighten me :pray:

Linux does not allow to instantiate qdiscs on the ingress side of an interface, only on the egress side, an intermediary functional block device is a way which can be used to attach an "egress" to an ingress interface and instantiate a qdisc on. So in short ifb4wan is likely used to implement the ingress shaping component of sqm.

2 Likes

okay thank you for the answer always so clear and precise :wink: i had posted a topic some time ago i would really like to try instantiate ifb4wan in input but on this script cake qos script,

I think it doesn't take much time the rules are established maybe lynx having the experience could succeed :ok_hand:

i dont want deturn thé thread on dscpclassify

ok if i understand is same things with veth ?

With veths you can achieve the same goal, alllowing to pass your ingress traffic through qdiscs. The disadvantage of veths compared to the ifb solution is that it requires to set up routing tables, the advantage for qos purposes is that this veth typically lives inside your NAT so internal IPv4 addresses can be used for filtering.
Performance wise both solutions seem about equal, IIRC.

1 Like