QoS policy limiter broken,
To reproduce:
```
set qos policy limiter my-policy class 10 bandwidth '20mbit'
set qos policy limiter my-policy class 10 match LOCAL-NET ip destination address '192.0.2.0/24'
set qos policy limiter my-policy class 20 bandwidth '10mbit'
set qos policy limiter my-policy default bandwidth '30mbit'
set qos interface eth1 ingress my-policy
commit
```
commit:
```
vyos@r4# commit
[ qos ]
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
Error: Cannot find specified qdisc on specified device.
Error: Cannot delete qdisc with handle of zero.
VyOS had an issue completing a command.
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/limiter.py", line 27, in update
super().update(config, direction)
File "/usr/lib/python3/dist-packages/vyos/qos/base.py", line 328, 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 ffff: prio 20 protocol all u32 match ip dst 192.0.2.0/24 flowid ffff:a action police conform-exceed drop/ok rate 20000000 burst 15k flowid ffff:a basic flowid ffff:14
returned:
exit code: 1
noteworthy:
cmd 'tc filter add dev eth1 parent ffff: prio 20 protocol all u32 match ip dst 192.0.2.0/24 flowid ffff:a action police conform-exceed drop/ok rate 20000000 burst 15k flowid ffff:a basic flowid ffff:14'
returned (out):
returned (err):
What is "basic"?
Usage: ... u32 [ match SELECTOR ... ] [ link HTID ] [ classid CLASSID ]
[ action ACTION_SPEC ] [ offset OFFSET_SPEC ]
[ ht HTID ] [ hashkey HASHKEY_SPEC ]
[ sample SAMPLE ] [skip_hw | skip_sw]
or u32 divisor DIVISOR
Where: SELECTOR := SAMPLE SAMPLE ...
SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} | mark }
SAMPLE_ARGS [ divisor DIVISOR ]
FILTERID := X:Y:Z
NOTE: CLASSID is parsed at hexadecimal input.
[[qos]] failed
Commit failed
[edit]
vyos@r4#
```