What is wrong with QoS on latest rolling releases?

Most of the match rules results in:

returned (err):
Illegal "match"
[[qos]] failed
Commit failed

I’ve tried to setup simplest config I can imagine to be successfully committed.
Here it is:

vyos@host# show qos
 interface eth3 {
     egress TEST
 }
 policy {
     shaper TEST {
         bandwidth 61mbit
         class 100 {
             bandwidth 12mbit
         }
         default {
             bandwidth 20mbit
         }
     }
 }

But if I try to add simple match like:

set qos policy shaper TEST class 100 match TESTMATCH ip protocol udp

so we have:

vyos@host# show qos policy shaper TEST 
 bandwidth 61mbit
 class 100 {
     bandwidth 12mbit
+    match TESTMATCH {
+        ip {
+            protocol udp
+        }
+    }
 }
 default {
     bandwidth 20mbit
 }

Than commit returns:

Built on:         Tue 21 Mar 2023 15:23 UTC
Build UUID:       6aff375b-d17f-412b-8ca5-c2243173e3e3
Build commit ID:  4eda689e1fbc52

Architecture:     x86_64
Boot via:         installed image
System type:       guest

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/qos.py", line 271, in <module>
    apply(c)
  File "/usr/libexec/vyos/conf_mode/qos.py", line 260, in apply
    tmp.update(shaper_config, direction)
  File "/usr/lib/python3/dist-packages/vyos/qos/trafficshaper.py", line 100, in update
    super().update(config, direction)
  File "/usr/lib/python3/dist-packages/vyos/qos/base.py", line 266, in update
    self._cmd(filter_cmd)
  File "/usr/lib/python3/dist-packages/vyos/qos/base.py", line 36, in _cmd
    return cmd(command)
           ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 161, in cmd
    raise OSError(code, feedback)
PermissionError: [Errno 1] failed to run command: tc filter replace dev eth3 parent 1: protocol all u32 match ip protocol udp 0xff action police rate 12000000 burst 15k flowid 1:64
returned: 
exit code: 1

noteworthy:
cmd 'tc qdisc del dev lo parent ffff:'
returned (out):

returned (err):
Error: Cannot find specified qdisc on specified device.
cmd 'tc qdisc del dev lo root'
returned (out):

returned (err):
Error: Cannot delete qdisc with handle of zero.
cmd 'tc qdisc del dev eth0 parent ffff:'
returned (out):

returned (err):
Error: Cannot find specified qdisc on specified device.
cmd 'tc qdisc del dev eth0 root'
returned (out):

returned (err):
Error: Cannot delete qdisc with handle of zero.
cmd 'tc qdisc del dev eth1 parent ffff:'
returned (out):

returned (err):
Error: Cannot find specified qdisc on specified device.
cmd 'tc qdisc del dev eth1 root'
returned (out):

returned (err):
Error: Cannot delete qdisc with handle of zero.
cmd 'tc qdisc del dev eth2 parent ffff:'
returned (out):

returned (err):
Error: Cannot find specified qdisc on specified device.
cmd 'tc qdisc del dev eth2 root'
returned (out):

returned (err):
Error: Cannot delete qdisc with handle of zero.
cmd 'tc qdisc del dev eth3 parent ffff:'
returned (out):

returned (err):
Error: Cannot find specified qdisc on specified device.
cmd 'tc qdisc del dev wg01 parent ffff:'
returned (out):

returned (err):
Error: Cannot find specified qdisc on specified device.
cmd 'tc qdisc del dev wg01 root'
returned (out):

returned (err):
Error: Cannot delete qdisc with handle of zero.
cmd 'tc filter replace dev eth3 parent 1: protocol all u32 match ip protocol udp 0xff action police rate 12000000 burst 15k flowid 1:64'
returned (out):

returned (err):
Illegal "match"

[[qos]] failed
Commit failed
[edit]

Am I doing something wrong or it is a bug?

@May
Hello.
This is a bug.
https://vyos.dev/T5048
We will fix it in future rolling releases.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.