Hello,
I noticed that the QoS configuration do not adapt "tc qdisc" settings for multi-queued interfaces.
For example, in my setup I have eth0 with 2 hardware queues:
admin@vyos:~$ ethtool -l eth0 Channel parameters for eth0: Pre-set maximums: RX: n/a TX: n/a Other: n/a Combined: 2 Current hardware settings: RX: n/a TX: n/a Other: n/a Combined: 2
By default, vyos/linux automatically configure multi-queued interfaces with the mq qdisc as root qdisc and creates a number of child qdiscs (in my case 2):
admin@vyos:~$ tc qdisc show dev eth0 qdisc mq 0: root qdisc pfifo 0: parent :2 limit 1000p qdisc pfifo 0: parent :1 limit 1000p
The problem I noticed is that if I change the qdisc in VyOS, it replaces the root qdisc on a multi-queued interface, when it actually should change the child qdiscs.
admin@vyos:~$ show configuration commands | match qos set qos interface eth0 egress 'CAKE' set qos policy cake CAKE
admin@vyos:~$ tc qdisc show dev eth0 qdisc cake 1: root refcnt 3 bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0