To reproduce use `match ip` without `class selector`:
```
set qos interface eth1 ingress 'LIMITER'
set qos policy limiter LIMITER class 1 bandwidth '20mbit'
set qos policy limiter LIMITER class 1 burst '1mb'
set qos policy limiter LIMITER class 1 match ALL ip
set qos policy limiter LIMITER default bandwidth '20mbit'
set qos policy limiter LIMITER default burst '1mb'
commit
```
commit:
```
vyos@r4# commit
[ qos ]
DEBUG/QoS: tc qdisc add dev eth1 handle ffff: ingress
{'class': {'1': {'bandwidth': '20mbit',
'burst': '1mb',
'exceed': 'drop',
'match': {'ALL': {'ip': {}}},
'not_exceed': 'ok',
'priority': '20'}},
'default': {'bandwidth': '20mbit',
'burst': '1mb',
'exceed': 'drop',
'not_exceed': 'ok'}}
DEBUG/QoS: tc filter add dev eth1 parent ffff: prio 20 protocol all u32 flowid ffff:1
Report time: 2024-02-12 19:10:39
Image version: VyOS 1.5-rolling-202402120819
Release train: current
Built by:
[email protected]
Built on: Mon 12 Feb 2024 10:20 UTC
Build UUID: b1a917a9-cda4-49ad-a327-58321f1067dc
Build commit ID: 8c5299e1cf7c7b
Architecture: x86_64
Boot via: installed image
System type: KVM guest
Hardware vendor: QEMU
Hardware model: Standard PC (Q35 + ICH9, 2009)
Hardware S/N:
Hardware UUID: 166cfd25-7d3a-4eca-9ef6-0b655c9acf0f
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 306, in update
self._cmd(filter_cmd)
File "/usr/lib/python3/dist-packages/vyos/qos/base.py", line 75, in _cmd
return cmd(command)
^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 155, in cmd
raise OSError(code, feedback)
FileNotFoundError: [Errno 2] failed to run command: tc filter add dev eth1 parent ffff: prio 20 protocol all u32 flowid ffff:1
returned:
exit code: 2
returned (err):
Error: Cannot delete qdisc with handle of zero.
cmd 'tc filter add dev eth1 parent ffff: prio 20 protocol all u32 flowid ffff:1'
returned (out):
returned (err):
Error: cls_u32: Selector not specified.
We have an error talking to the kernel
```
If we add the correct class selector, the commit looks good, for example:
```
set qos policy limiter LIMITER class 1 match ALL ip protocol 'ip'
commit
```