Page MenuHomeVyOS Platform

QoS r2q wrong calculation
Closed, ResolvedPublicBUG

Description

The similar config for 1.3 generates r2q 444
For 1.5 the r2q 443
Something wrong with r2q-calculation

set qos policy shaper SHAPE bandwidth '710mbit'
set qos policy shaper SHAPE class 5 bandwidth '2%'
set qos policy shaper SHAPE class 5 match tiny4 ip tcp syn

set qos policy shaper SHAPE class 10 bandwidth '1%'
set qos policy shaper SHAPE class 10 match dns ip protocol 'udp'

set qos policy shaper SHAPE default bandwidth '95%'
set qos policy shaper SHAPE default ceiling '100%'
set qos policy shaper SHAPE default codel-quantum '8000'

set qos interface eth1 egress SHAPE
commit

Debug (r2q 443):

DEBUG/QoS: tc qdisc replace dev eth1 root handle 1: htb r2q 443 default 6
DEBUG/QoS: tc class replace dev eth1 parent 1: classid 1:1 htb rate 710000000
DEBUG/QoS: tc class replace dev eth1 parent 1:1 classid 1:5 htb rate 14200000 burst 15k quantum 1514
DEBUG/QoS: tc qdisc replace dev eth1 parent 1:5 sfq
DEBUG/QoS: tc class replace dev eth1 parent 1:1 classid 1:a htb rate 7100000 burst 15k quantum 1514
DEBUG/QoS: tc qdisc replace dev eth1 parent 1:a sfq
DEBUG/QoS: tc class replace dev eth1 parent 1:1 classid 1:6 htb rate 674500000 burst 15k quantum 8000 prio 20 ceil 710000000
DEBUG/QoS: tc qdisc replace dev eth1 parent 1:6 sfq
DEBUG/QoS: tc qdisc replace dev eth1 parent 1:5 fq_codel quantum 1514 flows 1024 interval 100 interval 100 target 5 noecn
DEBUG/QoS: tc filter add dev eth1 parent 1: protocol all prio 1 u32 match u8 0x2 0x2 at 33 flowid 1:5

DEBUG/QoS: tc filter add dev eth1 parent 1: protocol all prio 1 u32 match u8 0x2 0x2 at 33 flowid 1:5 action police rate 20000000 burst 15k flowid 1:5
DEBUG/QoS: tc qdisc replace dev eth1 parent 1:a fq_codel quantum 1514 flows 1024 interval 100 interval 100 target 5 noecn
DEBUG/QoS: tc filter add dev eth1 parent 1: protocol all prio 1 u32 match ip protocol 17 0xff flowid 1:a


DEBUG/QoS: tc filter add dev eth1 parent 1: protocol all prio 1 u32 match ip protocol 17 0xff flowid 1:a action police rate 10000000 burst 15k flowid 1:a
DEBUG/QoS: tc qdisc replace dev eth1 parent 1:b fq_codel quantum 8000 flows 1024 interval 100 interval 100 target 5 noecn

If we try to apply this config manually:

Warning: sch_htb: quantum of class 10001 is big. Consider r2q change.
Error: Specified class not found.

Working debug from 1.3 (r2q 444):

vyos@r15# commit
[ traffic-policy shaper SHAPE ]
qdisc add dev eth1 root handle 1: htb r2q 444 default b
class add dev eth1 parent 1: classid 1:1 htb rate 710000000

Details

Version
VyOS 1.5-rolling-202402060022
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)