after QoS config moved from traffic-policy
to qos policy
it fails to commit any match
rule.
what I’ve learned:
- there is different meaning of % in
bandwidth
parameter
was: “% Percentage of overall rate (default 100%)”
now: “% Percentage of interface link speed” - if I pass any
class
with any parameters exceptmatch
- it is ok. - if I add any
match
thancommit
causesIllegal “match”
andCommit 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):
- 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:
VyOS Community- 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.comWhen 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: currentBuilt on: Tue 21 Mar 2023 15:23 UTC
Build UUID: 6aff375b-d17f-412b-8ca5-c2243173e3e3
Build commit ID: 4eda689e1fbc52Architecture: x86_64
Boot via: installed image
System type: guestTraceback (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: 1noteworthy:
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:
- what am I doing wrong and how can I add
match
forclass
in new config structure? - is there any way to use
bandwidth
of class in%
from parent’s queuebandwidth
parameter?