The class_id_max is wrong due to tmp.sort of Strings
If we have class 5 and class 10 we get sorted max value 5, expected 10
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
It causes of wrong "tc qdisc default" default_minor_id value https://github.com/vyos/vyos-1x/blob/e07b8b77930b92a09d1aac0b7de82aa0081ad3e5/python/vyos/qos/trafficshaper.py#L61-L62
>>> tmp = ['5', '10'] >>> tmp.sort() >>> tmp ['10', '5'] >>> >>> hex(5+1) '0x6' >>> >>> hex(10+1) '0xb' >>>
This way we get
tc qdisc replace dev eth1 root handle 1: htb r2q 444 default 6
But expect b
tc qdisc replace dev eth1 root handle 1: htb r2q 444 default b