QoS with new config structure fails to commit simple match rules

,

Continuing the discussion from Qos policy fails to commit any match rule after changing config structure:

While testing 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
         }
     }
 }

Then 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
 }

and commit returns:

vyos@host# commit
[ qos ]
VyOS had an issue completing a command.

We are sorry that you encountered a problem while using VyOS.
There are a few things you can do to help us (and yourself):
- Contact us using the online help desk if you have a subscription:
  https://support.vyos.io/
- Make sure you are running the latest version of VyOS available at:
  https://vyos.net/get/
- Consult the community forum to see how to handle this issue:
  https://forum.vyos.io
- Join us on Slack where our users exchange help and advice:
  https://vyos.slack.com

When reporting problems, please include as much information as possible:
- do not obfuscate any data (feel free to contact us privately if your 
  business policy requires it)
- and include all the information presented below

Report time:      2023-03-24 10:49:59
Release train:    current

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?

but if I add other match like:

vyos@host# set qos policy shaper TEST class 100 match TESTMATCH mark 1024 
[edit]
vyos@host# compare 
[qos policy shaper TEST class 100]
+ match TESTMATCH {
+     mark "1024"
+ }

[edit]
vyos@host# show qos policy shaper TEST 
 bandwidth 61mbit
 class 100 {
     bandwidth 12mbit
+    match TESTMATCH {
+        mark 1024
+    }
 }
 default {
     bandwidth 20mbit
 }

commit goes well.

thanks to @a.apostoliuk:

This is a bug.
⚓ T5048 QoS doesn't work correctly root task

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