How to configure DSCP ?

Mar 12, 2026
4
0
1
Hello everyone,

Following the latest release of Corosync, the totem.ip_dscp option was introduced. I would like to explore this feature and have implemented it on a 4-node cluster as follows:

I modified the /etc/corosync/corosync.conf file by adding
ip_dscp: 48 to the totem section. After that, I restarted the service because the logs indicated that this setting is not applied on the fly.

Next, I captured packets at the VLAN subinterface, the bridge, and the bond. None of these tcpdump captures showed my DSCP value of 48; strangely, it is set to 4.

1780317797267.png

Is there any official documentation from Proxmox on how to use DSCP with Corosync?

Thank you in advance.
 
Could it be due to the internal bit shift [0]?
ip_dscp This specifies the dscp (differentiated services code point) value to be used in the IP header's type of service (TOS) field according to RFC 2474. Allowed values are 0-63 and symbolic dscp names cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43 and ef. Value 0 disables the dscp support. Use of TOS field then depends on the used transport. If ip_dscp is set to a value not equal to zero, and an appropriate socket option (IP_TOS) is available, the value is put into the upper six bits of the TOS header field.

Could you test with ip_dscp 12? Remember to increase the config_version [1].

[0] https://manpages.debian.org/unstable/corosync/corosync.conf.5.en.html#ip_dscp
[1] https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pvecm_edit_corosync_conf
 
Of course, I had already increased the config_version.
1780320872561.png
I ran the test again with a value of 12. As you can see in the screenshot, Corosync does take the configuration into account, but when I look at my dump, I still see the same thing...
1780321045899.png