Qos policy fails to commit any match rule after changing config structure

after QoS config moved from traffic-policy to qos policy it fails to commit any match rule.

what I’ve learned:

  1. there is different meaning of % in bandwidth parameter
    was: “% Percentage of overall rate (default 100%)”
    now: “% Percentage of interface link speed”
  2. if I pass any class with any parameters except match - it is ok.
  3. if I add any match than commit causes Illegal “match” and Commit failed with something like:

try to add match for udp protocol

set qos policy shaper IN-SHAPER class 100 match UDP ip protocol udp
compare shows:
[qos policy shaper IN-SHAPER class 100]

+ match UDP {
+     ip {
+         protocol "udp"
+     }
+ }

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):

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-23 15:31:30
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
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

so here are two questions:

  1. what am I doing wrong and how can I add match for class in new config structure?
  2. is there any way to use bandwidth of class in % from parent’s queue bandwidth parameter?

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.