How to set txqueuelen, NIC queues, and RSS in VyOS?

Hello,

Could you please tell me which VyOS CLI commands are equivalent to the following Linux commands?

ip link set eth0 txqueuelen 10000
ethtool -L eth0 combined 16

Also, could you please advise on the command or configuration method for setting up RSS? I need to configure 16 queues of one network interface pair (eth0 and eth1) to use socket 1, and 16 queues of another network interface pair (eth2 and eth3) to use socket 2.

Thank you.

It seems that there are no CLI commands for this in VyOS and that scripts have to be used instead.
To be honest, this is a bit surprising.
One of the reasons I wanted to move to VyOS was to avoid relying on custom scripts and use native CLI configuration instead. However, it seems I still need to use scripts for this.

Not everything is configurable as of yet. You can of course create a PR for it. But maybe you can add it to these files:

/config/scripts/vyos-postconfig-bootup.script
/config/scripts/vyos-preconfig-bootup.script

It’s not perfect, I know, but at least you have it in one place then.

Thank you for the suggestion, I will do it this way.
I’ve just started learning and testing VyOS, so I’m still getting familiar with how things work.

Maybe in the future I’ll be able to contribute and submit a PR for this.

Regarding txqueuelen I think you can use these parameters within VyOS-config:

And you have some other options when you continue scrolling at above.

When it comes to offloading for Intel NICs using e1000/e1000e its currently highly recommended to disable GSO and TSO offloading. The other offloading options can be used.

Another thing when it comes to NIC offloading is that if runned in VM then offloading should be set at the VM-host and not within the VM-guest.

txqueuelen and the ring buffer are different things and do not replace each other.

Thanks for the advice about GSO and TSO offloading.
However, my question was about something else - RSS (distribution of network interface interrupts across the cores of a specific physical CPU).

If not covered by previous links I posted your option is then to use the postconfig or post-hook scripting:

And file a feature-request over at https://vyos.dev if its something that should exist through vyos-configd.