Software-based LRO was deprecated in kernel 4.10: ipv4: Remove inet_lro library · torvalds/linux@7bbf3ca · GitHub
Regarding Hardware LRO, Ethernet-based NICs that do not support the new API (which allows merging packets before they enter the kernel, i.e., hardware) can only use GRO.
For most intents and purposes LRO functionality has been subsumed by GRO functionality in later kernels and this was kept in mind when the drivers for these devices were written. In some cases, older kernels prior to the 4.10 kernel can have the legacy LRO functions enabled through ethtool, and in those circumstances, more information on the ethtool syntax/usage can be found here:
https://docs.mellanox.com/display/MLNXOFEDv493150/Ethtool
I suspect that this is the case for your installation based on the kernel version you mentioned. If in doubt for future implementations, you can also confirm whether the LRO value is [fixed] by checking the output of “ethtool -k ”, in which case the option can’t be toggled:
For example, results on a 3.10 kernel system:
[root@LABSYSTEM0 ~]# ethtool -k enp3s0f0 | grep receive
generic-receive-offload: on
large-receive-offload: off
receive-hashing: on
[root@LABSYSTEM0 ~]# ethtool -K enp3s0f0 lro on
[root@LABSYSTEM0 ~]# ethtool -k enp3s0f0 | grep receive
generic-receive-offload: on
large-receive-offload: on
receive-hashing: on
Results on a 5.11 kernel system:
root@LABSYSTEM2:~# ethtool -k enp5s0f0 | grep large
large-receive-offload: off [fixed]
root@LABSYSTEM2:~#
root@LABSYSTEM2:~# ethtool -K enp5s0f0 lro on
Actual changes:
rx-lro: off [requested on]
Could not change any device features
-Nvidia Network Support