To reproduce the bug:
touch /tmp/vyos.qos.debug set qos policy shaper SHAPE bandwidth '1000mbit' set qos policy shaper SHAPE class 100 bandwidth '100mbit' set qos policy shaper SHAPE class 100 burst '15k' set qos policy shaper SHAPE class 100 match V100 vif '100' set qos policy shaper SHAPE class 100 queue-type 'fair-queue' set qos policy shaper SHAPE default bandwidth '75%' set qos policy shaper SHAPE default burst '128k' set qos policy shaper SHAPE default ceiling '90%' set qos policy shaper SHAPE default queue-type 'fair-queue' set qos interface eth1 egress SHAPE
Commit:
DEBUG/QoS: tc qdisc replace dev eth1 root handle 1: htb r2q 625 default 65 DEBUG/QoS: tc class replace dev eth1 parent 1: classid 1:1 htb rate 1000000000 DEBUG/QoS: tc class replace dev eth1 parent 1:1 classid 1:64 htb rate 100000000 burst 15k quantum 1514 DEBUG/QoS: tc qdisc replace dev eth1 parent 1:64 sfq WARNING: Interface speed cannot be determined (assuming 10 Mbit/s) WARNING: Interface speed cannot be determined (assuming 10 Mbit/s) DEBUG/QoS: tc class replace dev eth1 parent 1:1 classid 1:65 htb rate -1000000 burst 128k quantum 1514 prio 20 ceil -1000000 DEBUG/QoS: tc qdisc replace dev eth1 parent 1:65 sfq {'bandwidth': '1000mbit', 'class': {'100': {'bandwidth': '100mbit', 'burst': '15k', 'codel_quantum': '1514', 'flows': '1024', 'interval': '100', 'match': {'V100': {'vif': '100'}}, 'queue_type': 'fair-queue', 'target': '5'}}, 'default': {'bandwidth': '75%', 'burst': '128k', 'ceiling': '90%', 'codel_quantum': '1514', 'flows': '1024', 'interval': '100', 'priority': '20', 'queue_type': 'fair-queue', 'target': '5'}} DEBUG/QoS: tc qdisc replace dev eth1 parent 1:64 sfq DEBUG/QoS: tc filter add dev eth1 parent 1: protocol all prio 1 action police rate 100000000 burst 15k flowid 1:64 VyOS had an issue completing a command. Report time: 2024-01-19 10:37:37 Image version: VyOS 1.5-rolling-202401190024 Release train: current Built by: autobuild@vyos.net Built on: Fri 19 Jan 2024 02:22 UTC Build UUID: 13700659-ad72-4f7d-ad21-3f2a4b80ab69 Build commit ID: 332e9ab04f168a Architecture: x86_64 Boot via: installed image System type: KVM guest Hardware vendor: QEMU Hardware model: Standard PC (Q35 + ICH9, 2009) Hardware S/N: Hardware UUID: 166cfd25-7d3a-4eca-9ef6-0b655c9acf0f Traceback (most recent call last): File "/usr/libexec/vyos/conf_mode/qos.py", line 240, in <module> apply(c) File "/usr/libexec/vyos/conf_mode/qos.py", line 231, in apply tmp.update(shaper_config, direction) File "/usr/lib/python3/dist-packages/vyos/qos/trafficshaper.py", line 118, in update super().update(config, direction) File "/usr/lib/python3/dist-packages/vyos/qos/base.py", line 320, in update self._cmd(filter_cmd) File "/usr/lib/python3/dist-packages/vyos/qos/base.py", line 74, in _cmd return cmd(command) ^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 155, in cmd raise OSError(code, feedback) PermissionError: [Errno 1] failed to run command: tc filter add dev eth1 parent 1: protocol all prio 1 action police rate 100000000 burst 15k flowid 1:64 returned: exit code: 1 noteworthy: cmd 'tc filter add dev eth1 parent 1: protocol all prio 1 action police rate 100000000 burst 15k flowid 1:64' returned (out): returned (err): Unknown filter "action", hence option "police" is unparsable [[qos]] failed Commit failed [edit] vyos@r4#
Expected TC:
tc qdisc add dev eth1 root handle 1: htb r2q 625 default 65 tc class add dev eth1 parent 1: classid 1:1 htb rate 1000000000 tc class add dev eth1 parent 1:1 classid 1:65 htb rate 750000000 ceil 900000000 burst 128k tc class add dev eth1 parent 1:1 classid 1:64 htb rate 100000000 burst 15k tc qdisc add dev eth1 parent 1:65 sfq tc qdisc add dev eth1 parent 1:64 sfq tc filter add dev eth1 parent 1: prio 1 protocol all basic match "meta(vlan mask 0xfff eq 100)" flowid 1:64
Of course, it causes migration to fails. The config is attached