-
Notifications
You must be signed in to change notification settings - Fork 240
Description
Discussed in https://github.com/orgs/jamulussoftware/discussions/3621
Originally posted by rdica February 7, 2026
I thought I'd do some testing using the QoS argument. In reading the help output I see:
-Q, --qos set the QoS value. Default is 128. Disable with 0
(see the Jamulus website to enable QoS on Windows)
The default is applied when IPv6 is not enabled.
When specifying a value using ./jamulus -j -6 -Q 128 -i /home/jamulus/.config/Jamulus/sa.ini the programs outputs:
- disable auto Jack connections
- IPv6 enabled
- selected QoS value: 128
- initialization file name: /home/jamulus/.config/Jamulus/sa.ini
- allocated port number: 22134
but tcpdump captures still show differentiated services field as CS0 instead of the expected CS4 that the value of 128 would set.
This only happens when enabling IPv6.
I ran the above command with
strace -o ~/strace-qos.log -e trace=network ./jamulus -j -6 -Q 128 -i /home/jamulus/.config/Jamulus/sa.ini
This line from strace log seems to indicate a failure with setsockopt() trying to apply the QoS value:
setsockopt(15, SOL_IPV6, IPV6_TCLASS, "\200", 1) = -1 EINVAL (Invalid argument)
After speaking with some IPv6 networking associates it seems the issue may lie in IPV6_TCLASS should take an 'int', not 'char'.
I've attached a pcap and strace log to help illustrate the issue.
tcpdump capture args: tcpdump -i lo -w qos.pcap -c 1000 -v 'port 22124'
jamulus server connect attempt to [::1]:22124
Metadata
Metadata
Assignees
Labels
Type
Projects
Status