I'm attempting to use DSCP matching in FireQOS 3.1.3. When I run debug mode to observe the tc commands, I see that FireQOS specifies the TOS value incorrectly.
For example, I have a class where I am doing match dscp AF31. The resulting tc command that FireQOS uses is: tc filter add dev eth2 parent 1:0 protocol ip prio 30 u32 match ip tos 0x68 0x68 flowid 1:13.
In particular, it seems the mask parameter given to tc is incorrect. When I run FireQOS in status mode, I see that packets with AF33 are being matched by this class, which is wrong.
A TOS value is an 8-bit number, but only the first 6 bits are the DSCP value. So the mask parameter given to tc should look at the first 6 bits and ignore the last 2 bits. Which I guess should be 0xfc.
The text was updated successfully, but these errors were encountered:
As a workaround, I tried configuring my class using match tos 0x68/0xfc instead of match dscp AF31. When I attempt this, the resulting tc command looks correct, but then when I run FireQOS status mode the entire utilization table just shows "ERROR" for all values. :-(