How come offload settings isnt enabled by default?

Looking through the offloading settings available in version VyOS 1.4-rolling-202306290317 I get this output:

   gro                  Enable Generic Receive Offload
   gso                  Enable Generic Segmentation Offload
   lro                  Enable Large Receive Offload
   rfs                  Enable Receive Flow Steering
   rps                  Enable Receive Packet Steering
   sg                   Enable Scatter-Gather
   tso                  Enable TCP Segmentation Offloading

So Im curious how come these are not enabled by default and what is your experience of which should be used vs which should be avoided and why?

Im thinking if for example “offload tso” is enabled and the hardware doesnt support it wouldnt that just be ignored even if it exists in the config?

Personal opinion here, not those of the Vyos team or developers.

Offload settings have themselves often introduced bugs and problems, where turning something on to give you a speed increase has caused some other problem or issue. Not always, of course, but for some chipets etc.

Thus why I think they’re turned off by default - it’s better to

a) Know your hardware supports the offload you’re turning on
and
b) Turn it on manually so you can monitor it

Rather than have a setting on by default when hardware might not support it, or if the platform does support it but does so badly, it will give a negative experience to a new user.

If I was a Vyos developer, that’d be my reason to keep them off by default.

7 Likes